diff options
149 files changed, 26060 insertions, 769 deletions
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/* @@ -22,6 +22,7 @@ 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: @@ -74,6 +74,10 @@ committers: 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/' diff --git a/ansible/roles/configure_rabbitmq/tasks/main.yml b/ansible/roles/configure_rabbitmq/tasks/main.yml index 3ad60c1ea..4ff4222dc 100644 --- a/ansible/roles/configure_rabbitmq/tasks/main.yml +++ b/ansible/roles/configure_rabbitmq/tasks/main.yml @@ -12,6 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. --- +- name: Create rabbitmq configuration + template: + src: rabbitmq.config.j2 + dest: /etc/rabbitmq/rabbitmq.config + +- name: Define user definitions file + template: + src: user_definitions.json.j2 + dest: /etc/rabbitmq/definitions.json + - name: Restart rabbitmq service: name: rabbitmq-server @@ -20,11 +30,5 @@ - 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 +- name: Enable management plugin + shell: rabbitmq-plugins enable rabbitmq_management diff --git a/ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j2 b/ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j2 new file mode 100644 index 000000000..8f07edf5c --- /dev/null +++ b/ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j2 @@ -0,0 +1,5 @@ + [
+ {rabbitmq_management, [
+ {load_definitions, "/etc/rabbitmq/definitions.json"}
+ ]}
+].
\ No newline at end of file diff --git a/ansible/roles/configure_rabbitmq/templates/user_definitions.json.j2 b/ansible/roles/configure_rabbitmq/templates/user_definitions.json.j2 new file mode 100644 index 000000000..7c811f16d --- /dev/null +++ b/ansible/roles/configure_rabbitmq/templates/user_definitions.json.j2 @@ -0,0 +1,23 @@ + {
+ "users": [{
+ "name": "yardstick",
+ "password_hash": "XHp9fBOE3vjTEf7ktiUBHqefW2g=",
+ "hashing_algorithm": "rabbit_password_hashing_sha256",
+ "tags": ""
+ }],
+ "vhosts": [{
+ "name": "/"
+ }],
+ "permissions": [{
+ "user": "yardstick",
+ "vhost": "/",
+ "configure": ".*",
+ "write": ".*",
+ "read": ".*"
+ }],
+ "parameters": [],
+ "policies": [],
+ "queues": [],
+ "exchanges": [],
+ "bindings": []
+}
diff --git a/ansible/roles/download_samplevnfs/defaults/main.yml b/ansible/roles/download_samplevnfs/defaults/main.yml index c5e880e57..104f594f5 100644 --- a/ansible/roles/download_samplevnfs/defaults/main.yml +++ b/ansible/roles/download_samplevnfs/defaults/main.yml @@ -1,4 +1,16 @@ --- +# 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/fraser" +samplevnf_version: "3afd384b7e68a3cd29f4d2cdf39785f8441d0b6f" 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_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/docker/Dockerfile.aarch64.patch b/docker/Dockerfile.aarch64.patch index bad472007..6c32404ca 100644 --- a/docker/Dockerfile.aarch64.patch +++ b/docker/Dockerfile.aarch64.patch @@ -38,7 +38,7 @@ index 71ce6b58..fce7c116 100644 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 sed -i -e '/- configure_gui/d' ${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 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 daa4b8187..457b308ae 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -5,7 +5,7 @@ License OPNFV Fraser 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/>. +If not, see <https://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. @@ -17,11 +17,11 @@ OPNFV Fraser Release Note for Yardstick .. 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 @@ -149,9 +149,9 @@ Deliverables Documents --------- - - User Guide: http://docs.opnfv.org/en/stable-fraser/submodules/yardstick/docs/testing/user/userguide/index.html + - User Guide: :ref:`<yardstick:userguide>` - - Developer Guide: http://docs.opnfv.org/en/stable-fraser/submodules/yardstick/docs/testing/developer/devguide/index.html + - Developer Guide: :ref:`<yardstick:devguide>` Software Deliverables @@ -606,7 +606,7 @@ Useful links - wiki Yardstick Fraser release planing page: https://wiki.opnfv.org/display/yardstick/Release+Fraser - - 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 diff --git a/docs/release/results/euphrates_fraser_comparison.rst b/docs/release/results/euphrates_fraser_comparison.rst index 53dfb994f..1dd328bb7 100644 --- a/docs/release/results/euphrates_fraser_comparison.rst +++ b/docs/release/results/euphrates_fraser_comparison.rst @@ -2,7 +2,15 @@ .. 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 ======================================================= diff --git a/docs/release/results/images/tc014_pod_fraseer.png b/docs/release/results/images/tc014_pod_fraser.png Binary files differindex 697201d76..697201d76 100644 --- a/docs/release/results/images/tc014_pod_fraseer.png +++ b/docs/release/results/images/tc014_pod_fraser.png diff --git a/docs/release/results/overview.rst b/docs/release/results/overview.rst index 9fd74797c..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 ======================================= diff --git a/docs/release/results/results.rst b/docs/release/results/results.rst index 0ed92f867..f0c20360b 100644 --- a/docs/release/results/results.rst +++ b/docs/release/results/results.rst @@ -2,8 +2,17 @@ .. 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. + Results listed by test cases -========================== +---------------------------- .. _TOM: https://wiki.opnfv.org/display/testing/R+post-processing+of+the+Yardstick+results @@ -14,7 +23,7 @@ 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/ @@ -42,7 +51,7 @@ 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: @@ -54,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/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 91f2c2148..76ed7c651 100755 --- a/docs/testing/developer/devguide/devguide.rst +++ b/docs/testing/developer/devguide/devguide.rst @@ -47,7 +47,7 @@ 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`_. @@ -401,7 +401,7 @@ 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 @@ -449,6 +449,10 @@ 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 ++++++++++++++++++++++++ @@ -481,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 @@ -506,8 +510,8 @@ Yardstick committers and contributors to review your codes. :alt: Gerrit for code review You can find a list Yardstick people -`here <https://wiki.opnfv.org/display/yardstick/People>`_, or use the -``yardstick-reviewers`` and ``yardstick-committers`` groups in gerrit. +`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 ++++++++++++++++++++++++++++++++++++++ @@ -566,6 +570,142 @@ The process for backporting is as follows: 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 ------- diff --git a/docs/testing/developer/devguide/devguide_nsb_prox.rst b/docs/testing/developer/devguide/devguide_nsb_prox.rst index 79990055a..582668bc5 100755 --- a/docs/testing/developer/devguide/devguide_nsb_prox.rst +++ b/docs/testing/developer/devguide/devguide_nsb_prox.rst @@ -15,7 +15,7 @@ Prerequisites In order to integrate PROX tests into NSB, the following prerequisites are required. -.. _`dpdk wiki page`: http://dpdk.org/ +.. _`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 diff --git a/docs/testing/user/userguide/01-introduction.rst b/docs/testing/user/userguide/01-introduction.rst index 494b1ef3d..74e752d63 100755 --- a/docs/testing/user/userguide/01-introduction.rst +++ b/docs/testing/user/userguide/01-introduction.rst @@ -9,8 +9,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. @@ -70,7 +70,7 @@ This document consists of the following chapters: Yardstick - Network service benchmarking to test real world usecase for a given VNF. -* Chapter :doc:`13-nsb_installation` provides instructions to install +* 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* diff --git a/docs/testing/user/userguide/04-installation.rst b/docs/testing/user/userguide/04-installation.rst index a4846230e..6b3259299 100644 --- a/docs/testing/user/userguide/04-installation.rst +++ b/docs/testing/user/userguide/04-installation.rst @@ -3,6 +3,17 @@ .. 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. + ====================== Yardstick Installation ====================== @@ -444,6 +455,115 @@ These configuration files can be found in the ``samples`` directory. Default location for the output is ``/tmp/yardstick.out``. +Automatic installation of Yardstick using ansible +------------------------------------------------- + +Automatic installation can be used as an alternative to the manual. +Yardstick can be installed on the bare metal and to the container. Yardstick +container can be either pulled or built. + +Bare metal installation +^^^^^^^^^^^^^^^^^^^^^^^ + +Use ansible script ``install.yaml`` to install Yardstick on Ubuntu server: + +.. code-block:: console + + ansible-playbook -i install-inventory.ini install.yaml \ + -e YARDSTICK_DIR=<path to Yardstick folder> + +.. note:: By default ``INSTALLATION_MODE`` is ``baremetal``. + +.. note:: By default Ubuntu 16.04 is chosen (xenial). It can be changed to + Ubuntu 18.04 (bionic) by passing ``-e OS_RELEASE=bionic`` parameter. + +.. note:: To install Yardstick in virtual environment pass parameter + ``-e VIRTUAL_ENVIRONMENT=True``. + +To build Yardstick NSB image pass ``IMG_PROPERTY=nsb`` as input parameter: + +.. code-block:: console + + ansible-playbook -i install-inventory.ini install.yaml \ + -e IMAGE_PROPERTY=nsb \ + -e YARDSTICK_DIR=<path to Yardstick folder> + +.. note:: In this ``INSTALLATION_MODE`` mode either Yardstick image or SampleVNF + images will be built. Image type is defined by parameter ``IMAGE_PROPERTY``. + By default Yardstick image will be built. + +Container installation +^^^^^^^^^^^^^^^^^^^^^^ + +Use ansible script ``install.yaml`` 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 YARDSTICK_DIR=<path to Yardstick folder> \ + -e INSTALLATION_MODE=container_pull + +.. note:: In this ``INSTALLATION_MODE`` mode either Yardstick image or SampleVNF + images will be built. Image type is defined by variable ``IMG_PROPERTY`` in + file ``ansible/group_vars/all.yml``. By default Yardstick image will be + built. + +.. note:: Open question: How to know if Docker image is built on Ubuntu 16.04 and 18.04? + Do we need separate tag to be used? + +To build Yardstick image run: + +.. code-block:: console + + ansible-playbook -i install-inventory.ini install.yaml \ + -e YARDSTICK_DIR=<path to Yardstick folder> \ + -e INSTALLATION_MODE=container + +.. note:: In this ``INSTALLATION_MODE`` mode neither Yardstick image nor SampleVNF + image will be built. + +.. note:: By default Ubuntu 16.04 is chosen (xenial). It can be changed to + Ubuntu 18.04 (bionic) by passing ``-e OS_RELEASE=bionic`` parameter. + +Parameters for ``install.yaml`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Description of the parameters used with ``install.yaml`` script + + +-------------------------+-------------------------------------------------+ + | Parameters | Detail | + +=========================+=================================================+ + | -i install-inventory.ini| Installs package dependency to remote servers | + | | Mandatory parameter | + | | By default no remote servers are provided | + | | Needed packages will be installed on localhost | + +-------------------------+-------------------------------------------------+ + | -e YARDSTICK_DIR | Path to Yardstick folder | + | | Mandatory parameter | + +-------------------------+-------------------------------------------------+ + | -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 | + | | Default is Ubuntu 16.04 (xenial) | + +-------------------------+-------------------------------------------------+ + | -e IMAGE_PROPERTY | normal or nsb: Type of the VM image to be built | + | | Default image is Yardstick | + +-------------------------+-------------------------------------------------+ + | -e VIRTUAL_ENVIRONMENT | False or True: Whether install in virtualenv | + | | Default is False | + +-------------------------+-------------------------------------------------+ + + Deploy InfluxDB and Grafana using Docker ---------------------------------------- diff --git a/docs/testing/user/userguide/05-operation.rst b/docs/testing/user/userguide/05-operation.rst index f390d1643..82539c97f 100644 --- a/docs/testing/user/userguide/05-operation.rst +++ b/docs/testing/user/userguide/05-operation.rst @@ -183,7 +183,7 @@ Combining these elements together, a sample Heat context config looks like: .. literalinclude:: ../../../../yardstick/tests/integration/dummy-scenario-heat-context.yaml :start-after: --- - :empahsise-lines: 14- + :emphasize-lines: 14- Using exisiting HOT Templates ''''''''''''''''''''''''''''' diff --git a/docs/testing/user/userguide/08-grafana.rst b/docs/testing/user/userguide/08-grafana.rst index 29bc23a08..020a08a65 100644 --- a/docs/testing/user/userguide/08-grafana.rst +++ b/docs/testing/user/userguide/08-grafana.rst @@ -36,7 +36,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. diff --git a/docs/testing/user/userguide/09-api.rst b/docs/testing/user/userguide/09-api.rst index f0ae3980b..1a896699b 100644 --- a/docs/testing/user/userguide/09-api.rst +++ b/docs/testing/user/userguide/09-api.rst @@ -433,7 +433,7 @@ Example:: /api/v2/yardstick/tasks/<task_id> --------------------------------- +--------------------------------- Description: This API is used to do some work related to yardstick tasks. For Euphrates, it supports: diff --git a/docs/testing/user/userguide/12-nsb-overview.rst b/docs/testing/user/userguide/12-nsb-overview.rst index 71a5c1130..7b0d46804 100644 --- a/docs/testing/user/userguide/12-nsb-overview.rst +++ b/docs/testing/user/userguide/12-nsb-overview.rst @@ -10,7 +10,7 @@ Network Services Benchmarking (NSB) Abstract ======== -.. _Yardstick: https://wiki.opnfv.org/yardstick +.. _Yardstick: https://wiki.opnfv.org/display/yardstick This chapter provides an overview of the NSB, a contribution to OPNFV Yardstick_ from Intel. diff --git a/docs/testing/user/userguide/13-nsb-installation.rst b/docs/testing/user/userguide/13-nsb-installation.rst index fb68fbf21..363ad4852 100644 --- a/docs/testing/user/userguide/13-nsb-installation.rst +++ b/docs/testing/user/userguide/13-nsb-installation.rst @@ -3,12 +3,23 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, 2016-2017 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 -Installation ===================================== Abstract -======== +-------- The Network Service Benchmarking (NSB) extends the yardstick framework to do VNF characterization and benchmarking in three different execution @@ -27,7 +38,7 @@ The steps needed to run Yardstick with NSB testing are: Prerequisites -============= +------------- Refer chapter Yardstick Installation for more information on yardstick prerequisites @@ -46,7 +57,7 @@ Several prerequisites are needed for Yardstick (VNF testing): * intel-cmt-cat Hardware & Software Ingredients -------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUT requirements: @@ -85,7 +96,7 @@ Boot and BIOS settings: Install Yardstick (NSB Testing) -=============================== +------------------------------- Download the source code and install Yardstick from it @@ -168,8 +179,12 @@ 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: -================ +Another way to execute an installation for a Bare-Metal or a Standalone context +is to use ansible script ``install.yaml``. Refer chapter :doc:`04-installation` +for more details. + +System Topology +--------------- .. code-block:: console @@ -184,10 +199,10 @@ System Topology: 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 @@ -218,11 +233,11 @@ Add trex_path, trex_client_lib and bin_path in 'nsb' section. trex_client_lib=/opt/nsb_bin/trex_client/stl Run Yardstick - Network Service Testcases -========================================= +----------------------------------------- NS testing - using yardstick CLI --------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See :doc:`04-installation` @@ -235,13 +250,13 @@ NS testing - using yardstick CLI 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 +----------+ +----------+ @@ -254,7 +269,7 @@ Bare-Metal 2-Node setup trafficgen_1 vnf Bare-Metal 3-Node setup - Correlated Traffic -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: console +----------+ +----------+ +------------+ @@ -269,7 +284,7 @@ Bare-Metal 3-Node setup - Correlated Traffic Bare-Metal Config pod.yaml --------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~ Before executing Yardstick test cases, make sure that pod.yaml reflects the topology and update all the required fields.:: @@ -344,13 +359,13 @@ topology and update all the required fields.:: Network Service Benchmarking - Standalone Virtualization -======================================================== +-------------------------------------------------------- SR-IOV ------- +~~~~~~ SR-IOV Pre-requisites -^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++ On Host, where VM is created: a) Create and configure a bridge named ``br-int`` for VM to connect to external network. @@ -421,10 +436,10 @@ On Host, where VM is created: SR-IOV Config pod.yaml describing Topology -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++++++++++++++++++++++ -SR-IOV 2-Node setup: -^^^^^^^^^^^^^^^^^^^^ +SR-IOV 2-Node setup ++++++++++++++++++++ .. code-block:: console +--------------------+ @@ -452,7 +467,7 @@ SR-IOV 2-Node setup: SR-IOV 3-Node setup - Correlated Traffic -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++++++++++++++++++++ .. code-block:: console +--------------------+ @@ -488,7 +503,7 @@ topology and update all the required fields. .. note:: Update all the required fields like ip, user, password, pcis, etc... SR-IOV Config pod_trex.yaml -^^^^^^^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++++++++ .. code-block:: YAML @@ -517,7 +532,7 @@ SR-IOV Config pod_trex.yaml local_mac: "00:00.00:00:00:02" SR-IOV Config host_sriov.yaml -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++++++++++ .. code-block:: YAML @@ -533,7 +548,7 @@ 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 @@ -578,10 +593,10 @@ Update "contexts" section OVS-DPDK --------- +~~~~~~~~ OVS-DPDK Pre-requisites -^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~ On Host, where VM is created: a) Create and configure a bridge named ``br-int`` for VM to connect to external network. @@ -655,11 +670,10 @@ On Host, where VM is created: OVS-DPDK Config pod.yaml describing Topology -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++++++++++++++++++++++++ OVS-DPDK 2-Node setup -^^^^^^^^^^^^^^^^^^^^^ - ++++++++++++++++++++++ .. code-block:: console @@ -689,7 +703,7 @@ OVS-DPDK 2-Node setup OVS-DPDK 3-Node setup - Correlated Traffic -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++++++++++++++++++++++ .. code-block:: console @@ -729,7 +743,7 @@ topology and update all the required fields. .. note:: Update all the required fields like ip, user, password, pcis, etc... OVS-DPDK Config pod_trex.yaml -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++++++++++ .. code-block:: YAML @@ -757,7 +771,7 @@ OVS-DPDK Config pod_trex.yaml local_mac: "00:00.00:00:00:02" OVS-DPDK Config host_ovs.yaml -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++++++++++ .. code-block:: YAML @@ -773,7 +787,7 @@ 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 @@ -828,7 +842,7 @@ Update "contexts" section Network Service Benchmarking - 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 @@ -836,7 +850,7 @@ DevStack, with SR-IOV support. Single node OpenStack setup with external TG --------------------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: console @@ -867,7 +881,7 @@ Single node OpenStack setup with external TG Host pre-configuration -^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++ .. warning:: The following configuration requires sudo access to the system. Make sure that your user have the access. @@ -967,7 +981,7 @@ Setup SR-IOV ports on the host: DevStack installation -^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++ Use official `Devstack <https://docs.openstack.org/devstack/pike/>`_ documentation to install OpenStack on a host. Please note, that stable @@ -989,7 +1003,7 @@ Start the devstack installation on a host. TG host configuration -^^^^^^^^^^^^^^^^^^^^^ ++++++++++++++++++++++ Yardstick automatically install and configure Trex traffic generator on TG host based on provided POD file (see below). Anyway, it's recommended to check @@ -998,7 +1012,7 @@ the manual at 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/ @@ -1023,7 +1037,7 @@ context using steps described in `NS testing - using yardstick CLI`_ section. Multi node OpenStack TG and VNF setup (two nodes) -------------------------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: console @@ -1054,14 +1068,14 @@ Multi node OpenStack TG and VNF setup (two nodes) Controller/Compute pre-configuration -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++++++++++++++++ Pre-configuration of the controller and compute hosts are the same as described in `Host pre-configuration`_ section. Follow the steps in the section. DevStack configuration -^^^^^^^^^^^^^^^^^^^^^^ +++++++++++++++++++++++ Use official `Devstack <https://docs.openstack.org/devstack/pike/>`_ documentation to install OpenStack on a host. Please note, that stable @@ -1088,7 +1102,7 @@ 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. @@ -1105,10 +1119,10 @@ and the following yardtick command line arguments: 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) @@ -1149,7 +1163,7 @@ IxLoad ``<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. diff --git a/docs/testing/user/userguide/14-nsb-operation.rst b/docs/testing/user/userguide/14-nsb-operation.rst index a5f3a0cf6..b4adf7855 100644 --- a/docs/testing/user/userguide/14-nsb-operation.rst +++ b/docs/testing/user/userguide/14-nsb-operation.rst @@ -256,7 +256,7 @@ to the VNF. An example scale-up Heat testcase is: -.. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml +.. literalinclude:: /../samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml :language: yaml This testcase template requires specifying the number of VCPUs, Memory and Ports. @@ -271,7 +271,7 @@ In order to support ports scale-up, traffic and topology templates need to be us A example topology template is: -.. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml +.. literalinclude:: /../samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml :language: yaml This template has ``vports`` as an argument. To pass this argument it needs to @@ -293,7 +293,7 @@ For example: A example traffic profile template is: -.. literalinclude:: /submodules/yardstick/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml +.. literalinclude:: /../samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml :language: yaml There is an option to provide predefined config for SampleVNFs. Path to config @@ -457,5 +457,5 @@ Sample test case file 4. Modify ``networks/phy_port`` accordingly to the baremetal setup. 5. Run test from: -.. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml +.. literalinclude:: /../samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml :language: yaml diff --git a/docs/testing/user/userguide/15-list-of-tcs.rst b/docs/testing/user/userguide/15-list-of-tcs.rst index 0efecebd1..2f0a87144 100644 --- a/docs/testing/user/userguide/15-list-of-tcs.rst +++ b/docs/testing/user/userguide/15-list-of-tcs.rst @@ -118,17 +118,6 @@ StorPerf 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 ========= 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 be98aa6c0..6a153943c 100644 --- a/docs/testing/user/userguide/glossary.rst +++ b/docs/testing/user/userguide/glossary.rst @@ -13,6 +13,11 @@ Glossary API Application Programming Interface + 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. + DPI Deep Packet Inspection @@ -27,36 +32,80 @@ Glossary 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. + + 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 + 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 + + 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 + + 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 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..f9ca900fd 100644 --- a/docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst +++ b/docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst @@ -28,3 +28,8 @@ NSB PROX Test Case Descriptions tc_prox_context_load_balancer_port tc_prox_context_vpe_port tc_prox_context_lw_after_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 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/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_tc019.rst b/docs/testing/user/userguide/opnfv_yardstick_tc019.rst index 8d79e011a..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: | 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 a0c487c7b..23b98c8f4 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc042.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc042.rst @@ -9,7 +9,7 @@ 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_tc050.rst b/docs/testing/user/userguide/opnfv_yardstick_tc050.rst index 82a491b72..7d01cb99a 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc050.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc050.rst @@ -35,18 +35,18 @@ Yardstick Test Case Description TC050 | | 3) interface: the network interface to be turned off. | | | | | | The interface to be closed by the attacker can be set by the | -| | variable of "{{ interface_name }}" | +| | 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 }} | +| | 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 | @@ -56,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 | 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_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_tc057.rst b/docs/testing/user/userguide/opnfv_yardstick_tc057.rst index 1bb43c9e7..245a58e08 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc057.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc057.rst @@ -49,12 +49,15 @@ 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 | +| | | +| | 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. | 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 261a8bd95..8d025eecf 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc074.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc074.rst @@ -91,12 +91,15 @@ 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 | +| | | | | measurements. | +| | | | | * workloads={json maps} | | | This parameter supercedes the workload and calls the V2.0 | | | API in StorPerf. It allows for greater control of the | @@ -111,6 +114,17 @@ Yardstick Test Case Description TC074 | | 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. | | | | @@ -120,11 +134,13 @@ Yardstick Test Case Description TC074 | | | | | 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 | @@ -135,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 | diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc081.rst b/docs/testing/user/userguide/opnfv_yardstick_tc081.rst index 793c3fdd5..df2192313 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc081.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc081.rst @@ -14,8 +14,8 @@ Yardstick Test Case Description TC081 |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) | diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc084.rst b/docs/testing/user/userguide/opnfv_yardstick_tc084.rst index 2e7b28e25..b3d44c4bf 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc084.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc084.rst @@ -92,18 +92,19 @@ Yardstick Test Case Description TC084 +--------------+--------------------------------------------------------------+ |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) | +| | | +| | * 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 | diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc087.rst b/docs/testing/user/userguide/opnfv_yardstick_tc087.rst index 99bfeebfc..c11252606 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc087.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc087.rst @@ -41,6 +41,7 @@ Yardstick Test Case Description TC087 +--------------+--------------------------------------------------------------+ |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 | | | | @@ -58,6 +59,7 @@ Yardstick Test Case Description TC087 |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 | | | | @@ -74,11 +76,13 @@ Yardstick Test Case Description TC087 | | | +--------------+--------------------------------------------------------------+ |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 | @@ -95,7 +99,9 @@ Yardstick Test Case Description TC087 | | | +--------------+--------------------------------------------------------------+ |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 | @@ -126,7 +132,7 @@ Yardstick Test Case Description TC087 | | Neutron network. | | | | | | 2. Check connectivity from one VM to an external host on | -| | the Internet to verify SNAT functionality. +| | the Internet to verify SNAT functionality. | | | | | | Result: The monitor info will be collected. | | | | @@ -171,11 +177,14 @@ Yardstick Test Case Description TC087 |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_tc092.rst b/docs/testing/user/userguide/opnfv_yardstick_tc092.rst index 895074a85..9c833fa23 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc092.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc092.rst @@ -43,6 +43,7 @@ Yardstick Test Case Description TC092 +--------------+--------------------------------------------------------------+ |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 | | | | @@ -92,17 +93,20 @@ Yardstick Test Case Description TC092 | | | +--------------+--------------------------------------------------------------+ |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 | +| | 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 | | | | -| | 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. | +| | - 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 | @@ -168,11 +172,12 @@ Yardstick Test Case Description TC092 | | | +--------------+--------------------------------------------------------------+ |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. | +| | 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. | | | | diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc093.rst b/docs/testing/user/userguide/opnfv_yardstick_tc093.rst index 31fa5d3d3..4e22e8bf3 100644 --- a/docs/testing/user/userguide/opnfv_yardstick_tc093.rst +++ b/docs/testing/user/userguide/opnfv_yardstick_tc093.rst @@ -43,14 +43,15 @@ Yardstick Test Case Description TC093 +--------------+--------------------------------------------------------------+ |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 | +| | 1. fault_type: which is used for finding the attacker's | +| | scripts. It should be set to 'kill-process' in this test | | | | -| | 3. host: which is the name of the compute node where the | -| | Vswitch process is running | +| | 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" | @@ -60,16 +61,17 @@ Yardstick Test Case Description TC093 |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. | +| | 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. | +| | 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. | @@ -99,6 +101,7 @@ Yardstick Test Case Description TC093 +--------------+--------------------------------------------------------------+ |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 | @@ -173,12 +176,14 @@ Yardstick Test Case Description TC093 |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 | +| | * SDN Vswitch recovery | +| | | +| | * process_recover_time <= 30 sec | +| | | +| | * no impact on data plane connectivity during SDN | +| | Vswitch failure and recovery. | | | | -| | * no impact on data plane connectivity during SDN | -| | Vswitch failure and recovery. | -| | * packet_drop == 0 | +| | * packet_drop == 0 | | | | +--------------+--------------------------------------------------------------+ diff --git a/docs/testing/user/userguide/references.rst b/docs/testing/user/userguide/references.rst index 3e18c96e9..e6bc719fd 100644 --- a/docs/testing/user/userguide/references.rst +++ b/docs/testing/user/userguide/references.rst @@ -11,12 +11,12 @@ References OPNFV ===== -* Parser wiki: https://wiki.opnfv.org/parser -* Pharos wiki: https://wiki.opnfv.org/pharos +* 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 ============================= @@ -25,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 @@ -53,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/yardstick/nodes/standalone/pod_landslide.yaml b/etc/yardstick/nodes/standalone/pod_landslide.yaml new file mode 100644 index 000000000..c84aed142 --- /dev/null +++ b/etc/yardstick/nodes/standalone/pod_landslide.yaml @@ -0,0 +1,130 @@ +# 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. + + +nodes: +- + name: "tg__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..6b8db54c2 --- /dev/null +++ b/etc/yardstick/nodes/standalone/pod_landslide_network_dedicated.yaml @@ -0,0 +1,164 @@ +# 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. + + +nodes: +- + name: "tg__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..8467303e9 --- /dev/null +++ b/etc/yardstick/nodes/standalone/pod_vepc_sut.yaml @@ -0,0 +1,37 @@ +# 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. +--- +# 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/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/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_trex_2ports.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_2ports.yaml new file mode 100644 index 000000000..173880f08 --- /dev/null +++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_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/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: + - 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
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_64B_trex.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_64B_trex.yaml new file mode 100644 index 000000000..53935dec2 --- /dev/null +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_64B_trex.yaml @@ -0,0 +1,45 @@ +# 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:task:0.1 +scenarios: +- type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml + topology: agnostic_vnf_topology_trex_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: 10 + interval: 35 +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod.yaml diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia.yaml new file mode 100644 index 000000000..c054a985b --- /dev/null +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia.yaml @@ -0,0 +1,45 @@ +# 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:task:0.1 +scenarios: +- type: NSPerf + 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: 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/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/handle_l3fwd-2.cfg b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg index 80b29f349..35f3646e7 100644 --- a/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg +++ b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg @@ -22,12 +22,16 @@ 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") 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 09adbbe55..bd696c4b0 100644 --- a/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg +++ b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg @@ -22,18 +22,26 @@ 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") diff --git a/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml b/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml index 1390e4a67..dc1df4e57 100644 --- a/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml +++ b/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml @@ -22,7 +22,6 @@ nodes: 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" 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..d08cf0699 --- /dev/null +++ b/samples/vnf_samples/nsut/prox/prox_tg_bm.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. + +nodes: +- + name: "tg_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/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..2f5e6ea27 --- /dev/null +++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-2.yaml @@ -0,0 +1,97 @@ +# 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: "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: + 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 + user: "root" + password: "" + 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_sriov_l2fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-2.yaml new file mode 100644 index 000000000..97a3d5af3 --- /dev/null +++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-2.yaml @@ -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. + +--- +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: + 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 + user: "" + password: "" + 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/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..ee17df138 --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide.yaml @@ -0,0 +1,58 @@ +# 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: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: tg__0.traffic_gen + vnf__0: vnf__0.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..76567062a --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide_multi_dmf.yaml @@ -0,0 +1,57 @@ +# 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: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: tg__0.traffic_gen + vnf__0: vnf__0.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..65f58bd0d --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_network_dedicated_bearer_create_landslide.yaml @@ -0,0 +1,164 @@ +# 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: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: tg__0.traffic_gen + vnf__0: vnf__0.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..55a96f4e4 --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_network_service_request_landslide.yaml @@ -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. + +--- +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: tg__0.traffic_gen + vnf__0: vnf__0.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..cece2a747 --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_saegw_tput_relocation_landslide.yaml @@ -0,0 +1,62 @@ +# 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: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: tg__0.traffic_gen + vnf__0: vnf__0.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..81a4149f8 --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_ue_dedicated_bearer_create_landslide.yaml @@ -0,0 +1,74 @@ +# 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: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: tg__0.traffic_gen + vnf__0: vnf__0.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..eaf4ae99f --- /dev/null +++ b/samples/vnf_samples/nsut/vepc/tc_epc_ue_service_request_landslide.yaml @@ -0,0 +1,228 @@ +# 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: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: tg__0.traffic_gen + vnf__0: vnf__0.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/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..dcc11d55a 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,42 @@ 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: + 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 + attacker_tests: "False" # True : If attacker Test, False : Otherwise -#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: + http_no_requests: "1000" + http_concurency: "65000" + http_locator: "/1B.bin" + attacker_tests: "False" -#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/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/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"><rpf> <Ixia.Aptixia.StackManager.SMSession type="Ixia.Aptixia.StackManager.SMSession" objectid="ccbe6b23-38b0-4060-8a29-49ce17c75bb7" version="6.70.442"> <doWaitLinkUp type="Bool">0</doWaitLinkUp> <doGratArp type="Bool">0</doGratArp> <subscribeToGratArpNotifications type="Bool">0</subscribeToGratArpNotifications> <doInterfaceCheck type="Bool">0</doInterfaceCheck> <rebootPortsBeforeConfigure type="Bool">0</rebootPortsBeforeConfigure> <testDuration type="Int">10000</testDuration> <checkLinkState type="Bool">0</checkLinkState> <portGroupList type="ListNode"> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="865be042-32d5-426a-9e75-0908c943801f" version="6.70.442"> <name type="String">client network</name> <category type="String" /> <stack type="Ixia.Aptixia.StackManager.L1EthernetPlugin" objectid="1dcd6e1b-17cd-45a1-875a-cbea40d3468c" version="6.70.442"> <autoNegotiate type="Bool">1</autoNegotiate> <speed type="String">k100FD</speed> <advertise10Half type="Bool">1</advertise10Half> <advertise10Full type="Bool">1</advertise10Full> <advertise100Half type="Bool">1</advertise100Half> <advertise100Full type="Bool">1</advertise100Full> <advertise1000Full type="Bool">1</advertise1000Full> <advertise2500Full type="Bool">1</advertise2500Full> <advertise5000Full type="Bool">1</advertise5000Full> <advertise10000Full type="Bool">1</advertise10000Full> <cardDualPhy type="Ixia.Aptixia.StackManager.DualPhyPlugin" objectid="b458c333-b4d4-48ef-bd38-3b456f72f8c8" version="6.70.442"> <medium type="String">auto</medium> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </cardDualPhy> <cardElm type="Ixia.Aptixia.StackManager.EthernetELMPlugin" objectid="28c0383a-76a7-4750-8162-2ad946ddac97" version="6.70.442"> <negotiateMasterSlave type="Bool">1</negotiateMasterSlave> <negotiationType type="String">master</negotiationType> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </cardElm> <enableFlowControl type="Bool">0</enableFlowControl> <directedAddress type="String">01:80:C2:00:00:01</directedAddress> <dataCenter type="Ixia.Aptixia.StackManager.DataCenterSettings" objectid="b9a0be2e-3880-4100-9e29-9b474f9301f4" version="6.70.442"> <dcSupported type="Bool">1</dcSupported> <dcEnabled type="Bool">0</dcEnabled> <dcFlowControl type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType">0</dcFlowControl> <dcMode type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode">2</dcMode> <dcPfcMapping type="IntList" /> <dcPfcPauseEnable type="Bool">0</dcPfcPauseEnable> <dcPfcPauseDelay type="Int">1</dcPfcPauseDelay> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </dataCenter> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.L2EthernetPlugin type="Ixia.Aptixia.StackManager.L2EthernetPlugin" objectid="e0232591-010e-492c-8a28-75e436f4adb2" version="6.70.442"> <macRangeList type="ListNode"> <Ixia.Aptixia.StackManager.MacRange type="Ixia.Aptixia.StackManager.MacRange" objectid="3011c8a8-a9fd-4b76-a27d-91948113ed4f" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">MAC-R1</name> <mac type="String">00:0A:00:02:14:00</mac> <incrementBy type="String">00:00:00:00:00:01</incrementBy> <mtu type="Int">1500</mtu> <count type="Int">1</count> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="adb27552-7165-46a3-bc9e-04914adf40ac" version="6.70.442"> <name type="String">VLAN-R1</name> <enabled type="Bool">0</enabled> <firstId type="Int">1</firstId> <incrementStep type="Int">100</incrementStep> <increment type="Int">1</increment> <uniqueCount type="Int">4094</uniqueCount> <priority type="Int">0</priority> <tpid type="String">0x8100</tpid> <innerEnable type="Bool">0</innerEnable> <innerFirstId type="Int">1</innerFirstId> <innerIncrementStep type="Int">1</innerIncrementStep> <innerIncrement type="Int">1</innerIncrement> <innerUniqueCount type="Int">4094</innerUniqueCount> <innerPriority type="Int">0</innerPriority> <idIncrMode type="Int">1</idIncrMode> <innerTpid type="String">0x8100</innerTpid> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </vlanRange> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacRange> </macRangeList> <vlanRangeList type="ListNode"> <Ixia.Aptixia.StackManager.VlanIdRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="adb27552-7165-46a3-bc9e-04914adf40ac" version="6.70.442" /> </vlanRangeList> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Plugin type="Ixia.Aptixia.StackManager.IpV4V6Plugin" objectid="a916ae0f-0731-405d-ad19-eaade6c515f1" version="6.70.442"> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="a3559674-8d95-4020-90b3-b42eacaef105" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">IP-R1</name> <ipType type="String">IPv4</ipType> <ipAddress type="String">10.0.2.20</ipAddress> <prefix type="Int">24</prefix> <incrementBy type="String">0.0.0.1</incrementBy> <count type="Int">1</count> <autoCountEnabled type="Bool">0</autoCountEnabled> <gatewayAddress type="String">10.0.2.10</gatewayAddress> <gatewayIncrement type="String">0.0.0.0</gatewayIncrement> <gatewayIncrementMode type="String">perSubnet</gatewayIncrementMode> <enableGatewayArp type="Bool">0</enableGatewayArp> <generateStatistics type="Bool">0</generateStatistics> <mss type="Int">1460</mss> <randomizeAddress type="Bool">0</randomizeAddress> <randomizeSeed type="Int">2596329041</randomizeSeed> <autoMacGeneration type="Bool">1</autoMacGeneration> <macRange type="Ixia.Aptixia.StackManager.MacRange" objectid="3011c8a8-a9fd-4b76-a27d-91948113ed4f" version="6.70.442" /> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="adb27552-7165-46a3-bc9e-04914adf40ac" version="6.70.442" /> <atmRange type="Ixia.Aptixia.StackManager.AtmRange" objectid="00000000-0000-0000-0000-000000000000" /> <pvcRange type="Ixia.Aptixia.StackManager.PvcRange" objectid="00000000-0000-0000-0000-000000000000" /> <autoIpTypeEnabled type="Bool">0</autoIpTypeEnabled> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Range> </rangeList> <rangeGroups type="ListNode"> <Ixia.Aptixia.StackManager.RangeGroup type="Ixia.Aptixia.StackManager.RangeGroup" objectid="aa33a76b-9c7f-48d9-a537-8d6eeec03662" version="6.70.442"> <name type="String">DistGroup1</name> <distribType type="Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType">0</distribType> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="a3559674-8d95-4020-90b3-b42eacaef105" version="6.70.442" /> </rangeList> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.RangeGroup> </rangeGroups> <childrenList type="ListNode" /> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">IP-1</name> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Plugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">MAC/VLAN-1</name> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.L2EthernetPlugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">Ethernet-1</name> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </stack> <globalPluginList type="ListNode"> <Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type="Ixia.Aptixia.StackManager.IxLoadSettingsPlugin" objectid="9c6c8594-548e-4ea5-a478-0bfb6252c1ce" version="1.0.0"> <teardownInterfaceWithUser type="Bool">0</teardownInterfaceWithUser> <interfaceBehavior type="Int">0</interfaceBehavior> <name type="String">Settings-2</name> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSettingsPlugin> <Ixia.Aptixia.StackManager.DnsPlugin type="Ixia.Aptixia.StackManager.DnsPlugin" objectid="693c7b7b-327b-4d59-b187-57d7600308e3" version="6.70.442"> <domain type="String" /> <timeout type="Int">30000</timeout> <nameServerList type="ListNode" /> <searchList type="ListNode" /> <hostList type="ListNode" /> <name type="String">DNS-2</name> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.DnsPlugin> <Ixia.Aptixia.StackManager.FilterPlugin type="Ixia.Aptixia.StackManager.FilterPlugin" objectid="0f6ebdb4-7909-447a-b80a-e132dae33a9b" version="6.70.442"> <auto type="Bool">1</auto> <all type="Bool">0</all> <pppoecontrol type="Bool">0</pppoecontrol> <pppoenetwork type="Bool">0</pppoenetwork> <isis type="Bool">0</isis> <ip type="String" /> <tcp type="String" /> <udp type="String" /> <mac type="String" /> <icmp type="String" /> <name type="String">Filter-1</name> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.FilterPlugin> <Ixia.Aptixia.StackManager.TCPPlugin type="Ixia.Aptixia.StackManager.TCPPlugin" objectid="7a893f25-0ac6-41c7-ab5a-511c2068582a" version="6.70.442"> <bestPerfSettings type="Bool">0</bestPerfSettings> <accept_ra_all type="Bool">0</accept_ra_all> <tcp_abort_on_overflow type="Bool">0</tcp_abort_on_overflow> <tcp_adv_win_scale type="Int">2</tcp_adv_win_scale> <tcp_app_win type="Int">31</tcp_app_win> <tcp_bic type="Int">0</tcp_bic> <tcp_bic_fast_convergence type="Int">1</tcp_bic_fast_convergence> <tcp_bic_low_window type="Int">14</tcp_bic_low_window> <tcp_dsack type="Bool">1</tcp_dsack> <tcp_ecn type="Bool">0</tcp_ecn> <tcp_fack type="Bool">1</tcp_fack> <tcp_fin_timeout type="Int">60</tcp_fin_timeout> <tcp_frto type="Int">0</tcp_frto> <tcp_keepalive_intvl type="Int">7200</tcp_keepalive_intvl> <tcp_keepalive_probes type="Int">75</tcp_keepalive_probes> <tcp_keepalive_time type="Int">9</tcp_keepalive_time> <tcp_low_latency type="Int">0</tcp_low_latency> <tcp_max_orphans type="Int">8192</tcp_max_orphans> <tcp_max_syn_backlog type="Int">1024</tcp_max_syn_backlog> <tcp_max_tw_buckets type="Int">180000</tcp_max_tw_buckets> <tcp_mem_low type="Int">24576</tcp_mem_low> <tcp_mem_pressure type="Int">32768</tcp_mem_pressure> <tcp_mem_high type="Int">49152</tcp_mem_high> <tcp_moderate_rcvbuf type="Int">0</tcp_moderate_rcvbuf> <tcp_no_metrics_save type="Bool">0</tcp_no_metrics_save> <tcp_orphan_retries type="Int">0</tcp_orphan_retries> <tcp_reordering type="Int">3</tcp_reordering> <tcp_retrans_collapse type="Bool">1</tcp_retrans_collapse> <tcp_retries1 type="Int">3</tcp_retries1> <tcp_retries2 type="Int">15</tcp_retries2> <tcp_rfc1337 type="Bool">0</tcp_rfc1337> <tcp_rmem_min type="Int">4096</tcp_rmem_min> <tcp_rmem_default type="Int">1024</tcp_rmem_default> <tcp_rmem_max type="Int">262144</tcp_rmem_max> <tcp_sack type="Bool">1</tcp_sack> <tcp_stdurg type="Bool">0</tcp_stdurg> <tcp_synack_retries type="Int">5</tcp_synack_retries> <tcp_syn_retries type="Int">5</tcp_syn_retries> <tcp_timestamps type="Bool">1</tcp_timestamps> <tcp_tw_recycle type="Bool">1</tcp_tw_recycle> <tcp_tw_reuse type="Bool">0</tcp_tw_reuse> <tcp_vegas_alpha type="Int">2</tcp_vegas_alpha> <tcp_vegas_beta type="Int">6</tcp_vegas_beta> <tcp_vegas_cong_avoid type="Int">0</tcp_vegas_cong_avoid> <tcp_vegas_gamma type="Int">2</tcp_vegas_gamma> <tcp_westwood type="Int">0</tcp_westwood> <tcp_window_scaling type="Bool">0</tcp_window_scaling> <ip_no_pmtu_disc type="Bool">1</ip_no_pmtu_disc> <tcp_wmem_min type="Int">4096</tcp_wmem_min> <tcp_wmem_default type="Int">1024</tcp_wmem_default> <tcp_wmem_max type="Int">262144</tcp_wmem_max> <tcp_ipfrag_time type="Int">30</tcp_ipfrag_time> <tcp_port_min type="Int">1024</tcp_port_min> <tcp_port_max type="Int">65535</tcp_port_max> <tcp_rto_min type="Int">1000</tcp_rto_min> <tcp_rto_max type="Int">120000</tcp_rto_max> <tcp_tw_rfc1323_strict type="Bool">0</tcp_tw_rfc1323_strict> <udp_port_randomization type="Bool">0</udp_port_randomization> <disable_min_max_buffer_size type="Bool">1</disable_min_max_buffer_size> <llm_hdr_gap type="Int">8</llm_hdr_gap> <llm_hdr_gap_ns type="Int">10</llm_hdr_gap_ns> <inter_packet_granular_delay type="Double">0</inter_packet_granular_delay> <delayed_acks type="Bool">1</delayed_acks> <accept_ra_default type="Bool">0</accept_ra_default> <rps_needed type="Bool">0</rps_needed> <delayed_acks_segments type="Int">0</delayed_acks_segments> <delayed_acks_timeout type="Int">0</delayed_acks_timeout> <tcp_large_icwnd type="Int">0</tcp_large_icwnd> <tcp_mgmt_rmem type="Int">87380</tcp_mgmt_rmem> <tcp_mgmt_wmem type="Int">32768</tcp_mgmt_wmem> <adjust_tcp_buffers type="Bool">1</adjust_tcp_buffers> <name type="String">TCP-2</name> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.TCPPlugin> <Ixia.Aptixia.StackManager.GratArpPlugin type="Ixia.Aptixia.StackManager.GratArpPlugin" objectid="fc54eec4-41ef-4b6c-9415-bf639013b52d" version="6.70.442"> <enabled type="Bool">1</enabled> <forwardGratArp type="Bool">0</forwardGratArp> <rateControlEnabled type="Bool">0</rateControlEnabled> <maxFramesPerSecond type="Int">0</maxFramesPerSecond> <name type="String">GratARP-1</name> <ixLoadRestObjectId type="Int">5</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.GratArpPlugin> <Ixia.Aptixia.StackManager.MeshingPlugin type="Ixia.Aptixia.StackManager.MeshingPlugin" objectid="b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed" version="6.70.442"> <trafficMaps type="ListNode"> <Ixia.Aptixia.StackManager.MeshingTrafficMap type="Ixia.Aptixia.StackManager.MeshingTrafficMap" objectid="6628a634-d6ea-4f86-94a7-816e8fc2917e" version="6.70.442"> <name type="String">newClientActivity1!HTTP server_newServerActivity1</name> <configMapFilename type="String">newClientActivity1Script.configmap</configMapFilename> <sourceActivityId type="Int">0</sourceActivityId> <ipPreference type="Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference">2</ipPreference> <portRangesString type="String" /> <meshingType type="Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType">2</meshingType> <destinationActivityId type="Int">0</destinationActivityId> </Ixia.Aptixia.StackManager.MeshingTrafficMap> </trafficMaps> <activityRangeMapInfoList type="ListNode" /> <name type="String">Meshing-2</name> <ixLoadRestObjectId type="Int">6</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MeshingPlugin> </globalPluginList> <portList type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IPSecPortGroupData type="Ixia.Aptixia.StackManager.IPSecPortGroupData" objectid="df783f7c-615e-47c1-b7f0-1174985ea22e" version="6.80.2"> <role type="String">Initiator</role> <associates type="ListNode" /> <overrideGlobalOptions type="Bool">0</overrideGlobalOptions> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <maxInitiationRate type="Int">50</maxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <maxPendingTunnels type="Int">50</maxPendingTunnels> <teardownRate type="Int">10</teardownRate> <enableESPPerStreamStats type="Bool">0</enableESPPerStreamStats> <enableESPReplayStats type="Bool">0</enableESPReplayStats> <activities type="ListNode" /> <pcpuLogLevel type="String">0</pcpuLogLevel> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecPortGroupData> </typeSpecificData> <virtualMode type="Bool">0</virtualMode> <allowedVirtualModeTypes type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <doOwnership type="Bool">0</doOwnership> <branchToNicMap type="ListNode" /> <cpuAggregation type="Bool">0</cpuAggregation> <activePort type="String" /> <networkLayersManager type="Ixia.Aptixia.StackManager.NetworkLayersManager" objectid="3d3cf9ef-8aab-4388-9252-4baea80122d3" version="6.70.442"> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </networkLayersManager> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.PortGroup> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="c4ecfc60-64ac-4dc2-9410-e0f58d84f229" version="6.70.442"> <name type="String">server network</name> <category type="String" /> <stack type="Ixia.Aptixia.StackManager.L1EthernetPlugin" objectid="1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181" version="6.70.442"> <autoNegotiate type="Bool">1</autoNegotiate> <speed type="String">k100FD</speed> <advertise10Half type="Bool">1</advertise10Half> <advertise10Full type="Bool">1</advertise10Full> <advertise100Half type="Bool">1</advertise100Half> <advertise100Full type="Bool">1</advertise100Full> <advertise1000Full type="Bool">1</advertise1000Full> <advertise2500Full type="Bool">1</advertise2500Full> <advertise5000Full type="Bool">1</advertise5000Full> <advertise10000Full type="Bool">1</advertise10000Full> <cardDualPhy type="Ixia.Aptixia.StackManager.DualPhyPlugin" objectid="4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0" version="6.70.442"> <medium type="String">auto</medium> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </cardDualPhy> <cardElm type="Ixia.Aptixia.StackManager.EthernetELMPlugin" objectid="4dfec118-30e8-4494-b7c7-e28518e7848a" version="6.70.442"> <negotiateMasterSlave type="Bool">1</negotiateMasterSlave> <negotiationType type="String">master</negotiationType> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </cardElm> <enableFlowControl type="Bool">0</enableFlowControl> <directedAddress type="String">01:80:C2:00:00:01</directedAddress> <dataCenter type="Ixia.Aptixia.StackManager.DataCenterSettings" objectid="123fecc5-cb5e-43e9-92a1-b053dc56d0f3" version="6.70.442"> <dcSupported type="Bool">1</dcSupported> <dcEnabled type="Bool">0</dcEnabled> <dcFlowControl type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType">0</dcFlowControl> <dcMode type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode">2</dcMode> <dcPfcMapping type="IntList" /> <dcPfcPauseEnable type="Bool">0</dcPfcPauseEnable> <dcPfcPauseDelay type="Int">1</dcPfcPauseDelay> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </dataCenter> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.L2EthernetPlugin type="Ixia.Aptixia.StackManager.L2EthernetPlugin" objectid="35ff711b-53f7-4c74-9e8b-98d35adaa6bf" version="6.70.442"> <macRangeList type="ListNode"> <Ixia.Aptixia.StackManager.MacRange type="Ixia.Aptixia.StackManager.MacRange" objectid="f91c9f52-8150-4d0f-b657-498ed241835c" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">MAC-R2</name> <mac type="String">00:0A:00:03:14:00</mac> <incrementBy type="String">00:00:00:00:00:01</incrementBy> <mtu type="Int">1500</mtu> <count type="Int">1</count> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="57fa3f41-7695-42d7-ac26-68924bb1e8bb" version="6.70.442"> <name type="String">VLAN-R2</name> <enabled type="Bool">0</enabled> <firstId type="Int">1</firstId> <incrementStep type="Int">32</incrementStep> <increment type="Int">1</increment> <uniqueCount type="Int">4094</uniqueCount> <priority type="Int">0</priority> <tpid type="String">0x8100</tpid> <innerEnable type="Bool">0</innerEnable> <innerFirstId type="Int">1</innerFirstId> <innerIncrementStep type="Int">1</innerIncrementStep> <innerIncrement type="Int">1</innerIncrement> <innerUniqueCount type="Int">4094</innerUniqueCount> <innerPriority type="Int">0</innerPriority> <idIncrMode type="Int">1</idIncrMode> <innerTpid type="String">0x8100</innerTpid> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </vlanRange> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacRange> </macRangeList> <vlanRangeList type="ListNode"> <Ixia.Aptixia.StackManager.VlanIdRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="57fa3f41-7695-42d7-ac26-68924bb1e8bb" version="6.70.442" /> </vlanRangeList> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Plugin type="Ixia.Aptixia.StackManager.IpV4V6Plugin" objectid="b85b184d-9bb4-48c2-a029-e633fee7a3c8" version="6.70.442"> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="1d9bf537-0c3d-4fdf-9b85-0a622cc77649" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">IP-R2</name> <ipType type="String">IPv4</ipType> <ipAddress type="String">10.0.3.20</ipAddress> <prefix type="Int">24</prefix> <incrementBy type="String">0.0.0.1</incrementBy> <count type="Int">1</count> <autoCountEnabled type="Bool">0</autoCountEnabled> <gatewayAddress type="String">10.0.3.10</gatewayAddress> <gatewayIncrement type="String">0.0.0.0</gatewayIncrement> <gatewayIncrementMode type="String">perSubnet</gatewayIncrementMode> <enableGatewayArp type="Bool">0</enableGatewayArp> <generateStatistics type="Bool">0</generateStatistics> <mss type="Int">1460</mss> <randomizeAddress type="Bool">0</randomizeAddress> <randomizeSeed type="Int">463911585</randomizeSeed> <autoMacGeneration type="Bool">1</autoMacGeneration> <macRange type="Ixia.Aptixia.StackManager.MacRange" objectid="f91c9f52-8150-4d0f-b657-498ed241835c" version="6.70.442" /> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="57fa3f41-7695-42d7-ac26-68924bb1e8bb" version="6.70.442" /> <atmRange type="Ixia.Aptixia.StackManager.AtmRange" objectid="00000000-0000-0000-0000-000000000000" /> <pvcRange type="Ixia.Aptixia.StackManager.PvcRange" objectid="00000000-0000-0000-0000-000000000000" /> <autoIpTypeEnabled type="Bool">0</autoIpTypeEnabled> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Range> </rangeList> <rangeGroups type="ListNode"> <Ixia.Aptixia.StackManager.RangeGroup type="Ixia.Aptixia.StackManager.RangeGroup" objectid="b2c21c73-bfe3-4fbc-9804-b5a8b307d893" version="6.70.442"> <name type="String">DistGroup1</name> <distribType type="Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType">0</distribType> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="1d9bf537-0c3d-4fdf-9b85-0a622cc77649" version="6.70.442" /> </rangeList> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.RangeGroup> </rangeGroups> <childrenList type="ListNode" /> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">IP-2</name> <ixLoadRestObjectId type="Int">6</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Plugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">MAC/VLAN-2</name> <ixLoadRestObjectId type="Int">5</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.L2EthernetPlugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">Ethernet-2</name> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </stack> <globalPluginList type="ListNode"> <Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type="Ixia.Aptixia.StackManager.IxLoadSettingsPlugin" objectid="993e33c6-e1f7-4967-982e-82a032f8c61a" version="1.0.0"> <teardownInterfaceWithUser type="Bool">0</teardownInterfaceWithUser> <interfaceBehavior type="Int">0</interfaceBehavior> <name type="String">Settings-4</name> <ixLoadRestObjectId type="Int">7</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSettingsPlugin> <Ixia.Aptixia.StackManager.DnsPlugin type="Ixia.Aptixia.StackManager.DnsPlugin" objectid="36ca84d7-ff44-45b7-b75d-aec38b753161" version="6.70.442"> <domain type="String" /> <timeout type="Int">30000</timeout> <nameServerList type="ListNode" /> <searchList type="ListNode" /> <hostList type="ListNode" /> <name type="String">DNS-4</name> <ixLoadRestObjectId type="Int">8</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.DnsPlugin> <Ixia.Aptixia.StackManager.FilterPlugin type="Ixia.Aptixia.StackManager.FilterPlugin" objectid="25c5acdd-9dd3-4802-93b6-b10651820b66" version="6.70.442"> <auto type="Bool">1</auto> <all type="Bool">0</all> <pppoecontrol type="Bool">0</pppoecontrol> <pppoenetwork type="Bool">0</pppoenetwork> <isis type="Bool">0</isis> <ip type="String" /> <tcp type="String" /> <udp type="String" /> <mac type="String" /> <icmp type="String" /> <name type="String">Filter-2</name> <ixLoadRestObjectId type="Int">9</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.FilterPlugin> <Ixia.Aptixia.StackManager.TCPPlugin type="Ixia.Aptixia.StackManager.TCPPlugin" objectid="6259328b-97c2-4390-8ab1-f16bf3459219" version="6.70.442"> <bestPerfSettings type="Bool">0</bestPerfSettings> <accept_ra_all type="Bool">0</accept_ra_all> <tcp_abort_on_overflow type="Bool">0</tcp_abort_on_overflow> <tcp_adv_win_scale type="Int">2</tcp_adv_win_scale> <tcp_app_win type="Int">31</tcp_app_win> <tcp_bic type="Int">0</tcp_bic> <tcp_bic_fast_convergence type="Int">1</tcp_bic_fast_convergence> <tcp_bic_low_window type="Int">14</tcp_bic_low_window> <tcp_dsack type="Bool">1</tcp_dsack> <tcp_ecn type="Bool">0</tcp_ecn> <tcp_fack type="Bool">1</tcp_fack> <tcp_fin_timeout type="Int">60</tcp_fin_timeout> <tcp_frto type="Int">0</tcp_frto> <tcp_keepalive_intvl type="Int">7200</tcp_keepalive_intvl> <tcp_keepalive_probes type="Int">75</tcp_keepalive_probes> <tcp_keepalive_time type="Int">9</tcp_keepalive_time> <tcp_low_latency type="Int">0</tcp_low_latency> <tcp_max_orphans type="Int">8192</tcp_max_orphans> <tcp_max_syn_backlog type="Int">1024</tcp_max_syn_backlog> <tcp_max_tw_buckets type="Int">180000</tcp_max_tw_buckets> <tcp_mem_low type="Int">24576</tcp_mem_low> <tcp_mem_pressure type="Int">32768</tcp_mem_pressure> <tcp_mem_high type="Int">49152</tcp_mem_high> <tcp_moderate_rcvbuf type="Int">0</tcp_moderate_rcvbuf> <tcp_no_metrics_save type="Bool">0</tcp_no_metrics_save> <tcp_orphan_retries type="Int">0</tcp_orphan_retries> <tcp_reordering type="Int">3</tcp_reordering> <tcp_retrans_collapse type="Bool">1</tcp_retrans_collapse> <tcp_retries1 type="Int">3</tcp_retries1> <tcp_retries2 type="Int">15</tcp_retries2> <tcp_rfc1337 type="Bool">0</tcp_rfc1337> <tcp_rmem_min type="Int">4096</tcp_rmem_min> <tcp_rmem_default type="Int">1024</tcp_rmem_default> <tcp_rmem_max type="Int">262144</tcp_rmem_max> <tcp_sack type="Bool">1</tcp_sack> <tcp_stdurg type="Bool">0</tcp_stdurg> <tcp_synack_retries type="Int">5</tcp_synack_retries> <tcp_syn_retries type="Int">5</tcp_syn_retries> <tcp_timestamps type="Bool">1</tcp_timestamps> <tcp_tw_recycle type="Bool">1</tcp_tw_recycle> <tcp_tw_reuse type="Bool">0</tcp_tw_reuse> <tcp_vegas_alpha type="Int">2</tcp_vegas_alpha> <tcp_vegas_beta type="Int">6</tcp_vegas_beta> <tcp_vegas_cong_avoid type="Int">0</tcp_vegas_cong_avoid> <tcp_vegas_gamma type="Int">2</tcp_vegas_gamma> <tcp_westwood type="Int">0</tcp_westwood> <tcp_window_scaling type="Bool">0</tcp_window_scaling> <ip_no_pmtu_disc type="Bool">1</ip_no_pmtu_disc> <tcp_wmem_min type="Int">4096</tcp_wmem_min> <tcp_wmem_default type="Int">1024</tcp_wmem_default> <tcp_wmem_max type="Int">262144</tcp_wmem_max> <tcp_ipfrag_time type="Int">30</tcp_ipfrag_time> <tcp_port_min type="Int">1024</tcp_port_min> <tcp_port_max type="Int">65535</tcp_port_max> <tcp_rto_min type="Int">1000</tcp_rto_min> <tcp_rto_max type="Int">120000</tcp_rto_max> <tcp_tw_rfc1323_strict type="Bool">0</tcp_tw_rfc1323_strict> <udp_port_randomization type="Bool">0</udp_port_randomization> <disable_min_max_buffer_size type="Bool">1</disable_min_max_buffer_size> <llm_hdr_gap type="Int">8</llm_hdr_gap> <llm_hdr_gap_ns type="Int">10</llm_hdr_gap_ns> <inter_packet_granular_delay type="Double">0</inter_packet_granular_delay> <delayed_acks type="Bool">1</delayed_acks> <accept_ra_default type="Bool">0</accept_ra_default> <rps_needed type="Bool">0</rps_needed> <delayed_acks_segments type="Int">0</delayed_acks_segments> <delayed_acks_timeout type="Int">0</delayed_acks_timeout> <tcp_large_icwnd type="Int">0</tcp_large_icwnd> <tcp_mgmt_rmem type="Int">87380</tcp_mgmt_rmem> <tcp_mgmt_wmem type="Int">32768</tcp_mgmt_wmem> <adjust_tcp_buffers type="Bool">1</adjust_tcp_buffers> <name type="String">TCP-4</name> <ixLoadRestObjectId type="Int">10</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.TCPPlugin> <Ixia.Aptixia.StackManager.GratArpPlugin type="Ixia.Aptixia.StackManager.GratArpPlugin" objectid="3eedf749-efa4-43a0-87ae-e110a77c88d4" version="6.70.442"> <enabled type="Bool">1</enabled> <forwardGratArp type="Bool">0</forwardGratArp> <rateControlEnabled type="Bool">0</rateControlEnabled> <maxFramesPerSecond type="Int">0</maxFramesPerSecond> <name type="String">GratARP-2</name> <ixLoadRestObjectId type="Int">11</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.GratArpPlugin> <Ixia.Aptixia.StackManager.MeshingPlugin type="Ixia.Aptixia.StackManager.MeshingPlugin" objectid="284f9992-65d8-4027-a155-709f1965f892" version="6.70.442"> <trafficMaps type="ListNode" /> <activityRangeMapInfoList type="ListNode" /> <name type="String">Meshing-1</name> <ixLoadRestObjectId type="Int">12</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MeshingPlugin> </globalPluginList> <portList type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IPSecPortGroupData type="Ixia.Aptixia.StackManager.IPSecPortGroupData" objectid="f65f12f2-018c-46f5-a9c5-a1f6f7151909" version="6.80.2"> <role type="String">Initiator</role> <associates type="ListNode" /> <overrideGlobalOptions type="Bool">0</overrideGlobalOptions> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <maxInitiationRate type="Int">50</maxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <maxPendingTunnels type="Int">50</maxPendingTunnels> <teardownRate type="Int">10</teardownRate> <enableESPPerStreamStats type="Bool">0</enableESPPerStreamStats> <enableESPReplayStats type="Bool">0</enableESPReplayStats> <activities type="ListNode" /> <pcpuLogLevel type="String">0</pcpuLogLevel> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecPortGroupData> </typeSpecificData> <virtualMode type="Bool">0</virtualMode> <allowedVirtualModeTypes type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <doOwnership type="Bool">0</doOwnership> <branchToNicMap type="ListNode" /> <cpuAggregation type="Bool">0</cpuAggregation> <activePort type="String" /> <networkLayersManager type="Ixia.Aptixia.StackManager.NetworkLayersManager" objectid="60b1273d-78d3-4813-8cea-ec9a7101b8a3" version="6.70.442"> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </networkLayersManager> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.PortGroup> </portGroupList> <externalProperties type="Ixia.Aptixia.StackManager.ExternalPropertyManager" objectid="1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e" version="6.70.442"> <properties type="ListNode"> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="145671ff-93a5-4ecc-8c83-59b2c3c67be9" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatLTEUEUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="9f07a941-ad2f-46b0-8c75-911862a21039" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">SixRdRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a221ab5c-faae-4940-bfad-5d41d44f1427" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">L2tpRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DHCPServerRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="f252cff3-b919-4e74-9f62-9e9c5ab5d324" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MobileSubscribersRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="500dfc8b-2e6a-401f-84c0-f6907f60c00e" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPSgsnS3RangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="693cb176-f3d8-4073-8a02-fabdc0bdd3fb" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPRange_SGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="ec983bf9-07f0-46b2-99a0-354114f42501" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EmulatedRouterRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="5d0f0eb8-40af-4292-8ff2-a57e7903601d" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">PppoxRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="653fae09-ba19-443c-8f8b-9483c0b86b9a" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPNGAPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="c886be8c-c207-4bb4-90d5-17be54556d58" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatRNCIuPSUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="00e75214-5166-406b-90e5-2b83567ae5cf" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPNGUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="50d10ee7-45ce-46d2-ae8d-ecd3b1806067" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange_S5S8_SGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="c2f310a4-6ea4-4459-be3b-f3b3365c590a" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPGRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7e458bed-5e36-42d6-812d-3794be52766e" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPPcrfRange_S5S8_PGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7d225fda-6432-4de3-9750-c19bbc957703" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DSLiteRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="e25dd669-ffc5-493d-a2b5-fd5627bf2ee8" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPSGSNRangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">SlaacRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="25699a2c-ab22-417b-9072-894523e98008" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="482a10c3-0ac7-44d9-9fa9-b43ba3a9901d" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DHCPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a0f03753-923d-4421-8c4f-0ed78f00fc44" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">AtmRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="fb5cd68e-b4b0-4fd4-ae18-4100c0035642" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatMMEApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="62677b6a-080e-4cc3-919b-71fa90ae410f" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatENodeBUuApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="2e0fd6e3-470e-48df-ab8d-cc21b9d80393" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPSUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="175f3104-0d2a-44f9-b712-fed3b170f8cb" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IpV4V6Range</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d1f37e1e-db44-4bac-acb8-b242dee8e371" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MacRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="61ccdebc-84e6-464d-be14-2b3ddedab9d2" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DualStackIPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d0678cd8-998e-42ab-8f0d-bfcb5370eac2" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange_S2a_TWAN</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d8350364-51c6-4a1b-af9f-72c9c235a636" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatSGSNIuPSApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="613d02a1-db1e-415d-b4bb-8b73b4477cf4" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatENodeBSimUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="9a41f718-b55e-44c7-a0cc-b1fcf8204c20" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">S6dRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="4c26fe62-a63d-4c40-8e15-c58ad8fba8d0" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">UERangeBase</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="5c2ca63f-3335-4ab7-963e-440817448538" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPMmeS10RangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="51a5eccc-a68d-4730-8a48-32019c547c28" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">S6aRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="3010c4ad-f31e-4676-9e61-bb25cf9c1bbb" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">BmScRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="ef1677e4-f390-4a78-b61a-f7650cf5faea" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MBmsGwRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">PptpRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="3b7f72db-e223-46ac-b71d-75e47f78e682" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPPMIPHostRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> </properties> <values type="ListNode"> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="6804ae67-3bd7-471b-8796-ee1e4773c2f1" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="a3559674-8d95-4020-90b3-b42eacaef105" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="7efcd429-2c48-41bd-bdc5-489dbfcfc49a" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </value> <enabled type="Bool">1</enabled> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="a63d8276-65bc-4bc2-8202-6461c6399ef9" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="1d9bf537-0c3d-4fdf-9b85-0a622cc77649" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="09d7b134-2921-4759-bbdb-ff3a5a1966d7" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </value> <enabled type="Bool">1</enabled> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="0cd9f099-242e-4b03-965f-d343c60181e6" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.MacRange" objectid="3011c8a8-a9fd-4b76-a27d-91948113ed4f" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="503aa008-2481-419f-a223-c90b2c25c17e" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </value> <enabled type="Bool">0</enabled> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="0b8d2c01-19ac-4f28-924e-660676d978da" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.MacRange" objectid="f91c9f52-8150-4d0f-b657-498ed241835c" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="41c694b3-bb55-48fe-9604-8b003540242f" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </value> <enabled type="Bool">0</enabled> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> </values> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </externalProperties> <availableNetworkTimelines type="ListNode" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.MacSessionData type="Ixia.Aptixia.StackManager.MacSessionData" objectid="a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8" version="6.70.442"> <duplicateCheckingScope type="Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions">2</duplicateCheckingScope> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacSessionData> <Ixia.Aptixia.StackManager.IpSessionData type="Ixia.Aptixia.StackManager.IpSessionData" objectid="34a78d72-1fc5-4875-9fe1-b4db66b1b4c4" version="6.70.442"> <duplicateCheckingScope type="Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions">2</duplicateCheckingScope> <enableGatewayArp type="Bool">0</enableGatewayArp> <gatewayArpRequestRate type="Int">300</gatewayArpRequestRate> <maxOutstandingGatewayArpRequests type="Int">300</maxOutstandingGatewayArpRequests> <ignoreUnresolvedIPs type="Bool">0</ignoreUnresolvedIPs> <sendAllRequests type="Bool">0</sendAllRequests> <individualARPTimeOut type="Int">500</individualARPTimeOut> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpSessionData> <Ixia.Aptixia.StackManager.IxLoadSessionData type="Ixia.Aptixia.StackManager.IxLoadSessionData" objectid="1e24447f-69f1-4030-8b2d-25a18c7160ca" version="1.0.0"> <portGroupList type="ListNode"> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="865be042-32d5-426a-9e75-0908c943801f" version="6.70.442" /> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="c4ecfc60-64ac-4dc2-9410-e0f58d84f229" version="6.70.442" /> </portGroupList> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSessionData> <Ixia.Aptixia.StackManager.ImpairSessionData type="Ixia.Aptixia.StackManager.ImpairSessionData" objectid="94b53c2c-0747-41c2-838d-0e0e15f31766" version="6.70.13"> <profiles type="ListNode"> <Ixia.Aptixia.StackManager.ImpairProfile type="Ixia.Aptixia.StackManager.ImpairProfile" objectid="90dd3511-93c1-49fa-8e38-db774db9fe17" version="6.70.13"> <name type="String">DefaultProfile</name> <defaultp type="Bool">1</defaultp> <seed type="Int">0</seed> <addDelay type="Bool">1</addDelay> <delay type="Int">20</delay> <jitter type="Int">0</jitter> <addDrop type="Bool">0</addDrop> <drop type="Double">10</drop> <addDropSequence type="Bool">0</addDropSequence> <dropSequenceSkip type="Int">10</dropSequenceSkip> <dropSequenceLength type="Int">1</dropSequenceLength> <addReorder type="Bool">0</addReorder> <gap type="Int">10</gap> <reorder type="Int">20</reorder> <reorderLength type="Int">1</reorderLength> <addReorderPI type="Bool">0</addReorderPI> <reorderPISkip type="Int">10</reorderPISkip> <reorderPILength type="Int">1</reorderPILength> <reorderPIInterval type="Int">1</reorderPIInterval> <reorderPITimeout type="Int">1000</reorderPITimeout> <addDuplicate type="Bool">0</addDuplicate> <duplicate type="Double">10</duplicate> <addFragment type="Bool">0</addFragment> <fragment type="Double">10</fragment> <mtu type="Int">1000</mtu> <addFragmentSequence type="Bool">0</addFragmentSequence> <fragmentSequenceSkip type="Int">10</fragmentSequenceSkip> <fragmentSequenceLength type="Int">1</fragmentSequenceLength> <mtuSequence type="Int">1000</mtuSequence> <sendFragmentsInReverseOrder type="Bool">0</sendFragmentsInReverseOrder> <sendFirstFragmentOnly type="Bool">0</sendFirstFragmentOnly> <sendOverlappingFragments type="Bool">0</sendOverlappingFragments> <addBandwidth type="Bool">0</addBandwidth> <bandwidth type="Double">1</bandwidth> <bandwidthUnits type="String">mbps</bandwidthUnits> <addBandwidthIn type="Bool">0</addBandwidthIn> <bandwidthIn type="Double">1</bandwidthIn> <bandwidthUnitsIn type="String">mbps</bandwidthUnitsIn> <destinationIp type="String">any</destinationIp> <sourceIp type="String">any</sourceIp> <sourcePort type="Int">0</sourcePort> <destinationPort type="Int">0</destinationPort> <protocol type="String">any</protocol> <typeOfService type="String">any</typeOfService> <addTcpFlagsFilter type="Bool">0</addTcpFlagsFilter> <selectTcpFlags type="String">SYN;RST;ACK</selectTcpFlags> <expectTcpFlags type="String">SYN</expectTcpFlags> <impairOrder type="String">Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth</impairOrder> </Ixia.Aptixia.StackManager.ImpairProfile> </profiles> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ImpairSessionData> <Ixia.Aptixia.StackManager.IPSecSessionData type="Ixia.Aptixia.StackManager.IPSecSessionData" objectid="bd2f0ea4-4278-49c8-9600-18cd2c8ed639" version="6.80.2"> <ipsecTunnelSetup type="Ixia.Aptixia.StackManager.IPSecTunnelSetup" objectid="1bacc8a0-dda0-4e0c-b013-4d8618dc80b6" version="6.80.2"> <tunnelSetupTimeout type="Int">30</tunnelSetupTimeout> <tunnelRetransmissionTimeout type="Int">30</tunnelRetransmissionTimeout> <numRetries type="Int">0</numRetries> <retryInterval type="Int">10</retryInterval> <retryDelay type="Int">10</retryDelay> <testType type="String">P2D</testType> <logLevel type="String">3</logLevel> <sendCiscoVid type="Bool">0</sendCiscoVid> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <enableRekey type="Bool">1</enableRekey> <rekeyRetries type="Int">3</rekeyRetries> <rekeyFuzzPercentage type="Int">0</rekeyFuzzPercentage> <rekeyMargin type="Int">10</rekeyMargin> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </ipsecTunnelSetup> <ipsecCertificates type="Ixia.Aptixia.StackManager.IPSecCertificates" objectid="2e324324-bf74-4ad3-afbb-62e44f01c31a" version="6.80.2"> <uniqueCert type="Bool">0</uniqueCert> <certSource type="String">kNewCert</certSource> <caURL type="String" /> <caDN type="String" /> <certSubjectDN type="String" /> <certSubjectAltDN type="String" /> <remoteIkeId type="String" /> <bitSize type="String">k512</bitSize> <saveCert type="Bool">1</saveCert> <cacheCertFolder type="String">C:\Program Files\Ixia\CachedCerts</cacheCertFolder> <certParentFolder type="String">C:\Program Files\Ixia\CachedCerts</certParentFolder> <certNumber type="String" /> <caCertNumber type="String" /> <earlyExpDate type="String" /> <lateExpDate type="String" /> <usePerRangeCertNameExp type="Bool">0</usePerRangeCertNameExp> <checkCrl type="Bool">0</checkCrl> <crlOverrideEnable type="Bool">0</crlOverrideEnable> <crlOverrideUrl type="String" /> <checkOcsp type="Bool">0</checkOcsp> <ocspOverrideEnable type="Bool">0</ocspOverrideEnable> <ocspOverrideUrl type="String" /> <unknownIsRevoked type="Bool">0</unknownIsRevoked> <certProto type="String">kSCEP</certProto> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </ipsecCertificates> <ipsecCertManager type="Ixia.Aptixia.StackManager.IPSecCertManager" objectid="f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897" version="6.80.2"> <caURL type="String" /> <caDN type="String">CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com</caDN> <certSubjectDN type="String">CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia</certSubjectDN> <keyGenAlgo type="String">kRSA_512</keyGenAlgo> <cacheCertFolder type="String">C:\Program Files\Ixia\CachedCerts</cacheCertFolder> <caKeyFile type="String">C:\Program Files\Ixia\ca-priv.key</caKeyFile> <caCrtFile type="String">C:\Program Files\Ixia\ca-cert.crt</caCrtFile> <certNumber type="Int">1</certNumber> <certProto type="String">kSCEP</certProto> <createRootCA type="Bool">0</createRootCA> <uniqueCert type="Bool">0</uniqueCert> <descFilePath type="String">C:\Program Files\Ixia\CachedCerts\sample.desc</descFilePath> <useDescFile type="Bool">0</useDescFile> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </ipsecCertManager> <eapSimTuples type="ListNode" /> <eapAkaTuples type="ListNode" /> <maxInitiationRate type="Int">50</maxInitiationRate> <maxPendingTunnels type="Int">50</maxPendingTunnels> <negotiationStartDelay type="Int">0</negotiationStartDelay> <teardownRate type="Int">10</teardownRate> <burstInitiation type="Bool">0</burstInitiation> <parallelInitiation type="Bool">0</parallelInitiation> <enableWildcardTsi type="Bool">0</enableWildcardTsi> <enableWildcardTsr type="Bool">0</enableWildcardTsr> <enablePlutoWildcardTsi type="Bool">0</enablePlutoWildcardTsi> <enablePlutoModeCfgWildcardTsr type="Bool">1</enablePlutoModeCfgWildcardTsr> <enablePlutoS2SWildcardTsr type="Bool">0</enablePlutoS2SWildcardTsr> <payloadAttrTypes type="ListNode" /> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecSessionData> </typeSpecificData> <statViewManager type="Ixia.Aptixia.StackManager.StatViewManager" objectid="7256ce27-286c-475d-b198-09b4ae306f73" version="6.70.442"> <enableStats type="Bool">1</enableStats> <enableOverviewStats type="Bool">1</enableOverviewStats> <enablePerSessionStats type="Bool">1</enablePerSessionStats> </statViewManager> <waitForLinkUp type="Bool">0</waitForLinkUp> <overloadProtection type="Bool">1</overloadProtection> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.SMSession> </rpf></xml> + <xml type="str"><rpf> <Ixia.Aptixia.StackManager.SMSession type="Ixia.Aptixia.StackManager.SMSession" objectid="72e85c05-6776-493c-9970-832db25a81b7" version="6.70.442"> <doWaitLinkUp type="Bool">0</doWaitLinkUp> <doGratArp type="Bool">0</doGratArp> <subscribeToGratArpNotifications type="Bool">0</subscribeToGratArpNotifications> <doInterfaceCheck type="Bool">0</doInterfaceCheck> <rebootPortsBeforeConfigure type="Bool">0</rebootPortsBeforeConfigure> <testDuration type="Int">10000</testDuration> <checkLinkState type="Bool">0</checkLinkState> <portGroupList type="ListNode"> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="865be042-32d5-426a-9e75-0908c943801f" version="6.70.442"> <name type="String">uplink_0</name> <category type="String" /> <stack type="Ixia.Aptixia.StackManager.L1EthernetPlugin" objectid="1dcd6e1b-17cd-45a1-875a-cbea40d3468c" version="6.70.442"> <autoNegotiate type="Bool">1</autoNegotiate> <speed type="String">k100FD</speed> <advertise10Half type="Bool">1</advertise10Half> <advertise10Full type="Bool">1</advertise10Full> <advertise100Half type="Bool">1</advertise100Half> <advertise100Full type="Bool">1</advertise100Full> <advertise1000Full type="Bool">1</advertise1000Full> <advertise2500Full type="Bool">1</advertise2500Full> <advertise5000Full type="Bool">1</advertise5000Full> <advertise10000Full type="Bool">1</advertise10000Full> <cardDualPhy type="Ixia.Aptixia.StackManager.DualPhyPlugin" objectid="b458c333-b4d4-48ef-bd38-3b456f72f8c8" version="6.70.442"> <medium type="String">auto</medium> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </cardDualPhy> <cardElm type="Ixia.Aptixia.StackManager.EthernetELMPlugin" objectid="28c0383a-76a7-4750-8162-2ad946ddac97" version="6.70.442"> <negotiateMasterSlave type="Bool">1</negotiateMasterSlave> <negotiationType type="String">master</negotiationType> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </cardElm> <enableFlowControl type="Bool">0</enableFlowControl> <directedAddress type="String">01:80:C2:00:00:01</directedAddress> <dataCenter type="Ixia.Aptixia.StackManager.DataCenterSettings" objectid="b9a0be2e-3880-4100-9e29-9b474f9301f4" version="6.70.442"> <dcSupported type="Bool">1</dcSupported> <dcEnabled type="Bool">0</dcEnabled> <dcFlowControl type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType">0</dcFlowControl> <dcMode type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode">2</dcMode> <dcPfcMapping type="IntList" /> <dcPfcPauseEnable type="Bool">0</dcPfcPauseEnable> <dcPfcPauseDelay type="Int">1</dcPfcPauseDelay> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </dataCenter> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.L2EthernetPlugin type="Ixia.Aptixia.StackManager.L2EthernetPlugin" objectid="e0232591-010e-492c-8a28-75e436f4adb2" version="6.70.442"> <macRangeList type="ListNode"> <Ixia.Aptixia.StackManager.MacRange type="Ixia.Aptixia.StackManager.MacRange" objectid="3011c8a8-a9fd-4b76-a27d-91948113ed4f" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">MAC-R1</name> <mac type="String">00:0A:00:02:14:00</mac> <incrementBy type="String">00:00:00:00:00:01</incrementBy> <mtu type="Int">1500</mtu> <count type="Int">1</count> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="adb27552-7165-46a3-bc9e-04914adf40ac" version="6.70.442"> <name type="String">VLAN-R1</name> <enabled type="Bool">0</enabled> <firstId type="Int">1</firstId> <incrementStep type="Int">100</incrementStep> <increment type="Int">1</increment> <uniqueCount type="Int">4094</uniqueCount> <priority type="Int">0</priority> <tpid type="String">0x8100</tpid> <innerEnable type="Bool">0</innerEnable> <innerFirstId type="Int">1</innerFirstId> <innerIncrementStep type="Int">1</innerIncrementStep> <innerIncrement type="Int">1</innerIncrement> <innerUniqueCount type="Int">4094</innerUniqueCount> <innerPriority type="Int">0</innerPriority> <idIncrMode type="Int">1</idIncrMode> <innerTpid type="String">0x8100</innerTpid> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </vlanRange> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacRange> </macRangeList> <vlanRangeList type="ListNode"> <Ixia.Aptixia.StackManager.VlanIdRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="adb27552-7165-46a3-bc9e-04914adf40ac" version="6.70.442" /> </vlanRangeList> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Plugin type="Ixia.Aptixia.StackManager.IpV4V6Plugin" objectid="a916ae0f-0731-405d-ad19-eaade6c515f1" version="6.70.442"> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="a3559674-8d95-4020-90b3-b42eacaef105" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">IP-R1</name> <ipType type="String">IPv4</ipType> <ipAddress type="String">10.0.2.20</ipAddress> <prefix type="Int">24</prefix> <incrementBy type="String">0.0.0.1</incrementBy> <count type="Int">1</count> <autoCountEnabled type="Bool">0</autoCountEnabled> <gatewayAddress type="String">10.0.2.10</gatewayAddress> <gatewayIncrement type="String">0.0.0.0</gatewayIncrement> <gatewayIncrementMode type="String">perSubnet</gatewayIncrementMode> <enableGatewayArp type="Bool">0</enableGatewayArp> <generateStatistics type="Bool">0</generateStatistics> <mss type="Int">1460</mss> <randomizeAddress type="Bool">0</randomizeAddress> <randomizeSeed type="Int">2596329041</randomizeSeed> <autoMacGeneration type="Bool">1</autoMacGeneration> <macRange type="Ixia.Aptixia.StackManager.MacRange" objectid="3011c8a8-a9fd-4b76-a27d-91948113ed4f" version="6.70.442" /> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="adb27552-7165-46a3-bc9e-04914adf40ac" version="6.70.442" /> <atmRange type="Ixia.Aptixia.StackManager.AtmRange" objectid="00000000-0000-0000-0000-000000000000" /> <pvcRange type="Ixia.Aptixia.StackManager.PvcRange" objectid="00000000-0000-0000-0000-000000000000" /> <autoIpTypeEnabled type="Bool">0</autoIpTypeEnabled> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Range> </rangeList> <rangeGroups type="ListNode"> <Ixia.Aptixia.StackManager.RangeGroup type="Ixia.Aptixia.StackManager.RangeGroup" objectid="aa33a76b-9c7f-48d9-a537-8d6eeec03662" version="6.70.442"> <name type="String">DistGroup1</name> <distribType type="Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType">0</distribType> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="a3559674-8d95-4020-90b3-b42eacaef105" version="6.70.442" /> </rangeList> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.RangeGroup> </rangeGroups> <childrenList type="ListNode" /> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">IP-1</name> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Plugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">MAC/VLAN-1</name> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.L2EthernetPlugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">Ethernet-1</name> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </stack> <globalPluginList type="ListNode"> <Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type="Ixia.Aptixia.StackManager.IxLoadSettingsPlugin" objectid="9c6c8594-548e-4ea5-a478-0bfb6252c1ce" version="1.0.0"> <teardownInterfaceWithUser type="Bool">0</teardownInterfaceWithUser> <interfaceBehavior type="Int">0</interfaceBehavior> <name type="String">Settings-2</name> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSettingsPlugin> <Ixia.Aptixia.StackManager.DnsPlugin type="Ixia.Aptixia.StackManager.DnsPlugin" objectid="693c7b7b-327b-4d59-b187-57d7600308e3" version="6.70.442"> <domain type="String" /> <timeout type="Int">30000</timeout> <nameServerList type="ListNode" /> <searchList type="ListNode" /> <hostList type="ListNode" /> <name type="String">DNS-2</name> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.DnsPlugin> <Ixia.Aptixia.StackManager.FilterPlugin type="Ixia.Aptixia.StackManager.FilterPlugin" objectid="0f6ebdb4-7909-447a-b80a-e132dae33a9b" version="6.70.442"> <auto type="Bool">1</auto> <all type="Bool">0</all> <pppoecontrol type="Bool">0</pppoecontrol> <pppoenetwork type="Bool">0</pppoenetwork> <isis type="Bool">0</isis> <ip type="String" /> <tcp type="String" /> <udp type="String" /> <mac type="String" /> <icmp type="String" /> <name type="String">Filter-1</name> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.FilterPlugin> <Ixia.Aptixia.StackManager.TCPPlugin type="Ixia.Aptixia.StackManager.TCPPlugin" objectid="7a893f25-0ac6-41c7-ab5a-511c2068582a" version="6.70.442"> <bestPerfSettings type="Bool">0</bestPerfSettings> <accept_ra_all type="Bool">0</accept_ra_all> <tcp_abort_on_overflow type="Bool">0</tcp_abort_on_overflow> <tcp_adv_win_scale type="Int">2</tcp_adv_win_scale> <tcp_app_win type="Int">31</tcp_app_win> <tcp_bic type="Int">0</tcp_bic> <tcp_bic_fast_convergence type="Int">1</tcp_bic_fast_convergence> <tcp_bic_low_window type="Int">14</tcp_bic_low_window> <tcp_dsack type="Bool">1</tcp_dsack> <tcp_ecn type="Bool">0</tcp_ecn> <tcp_fack type="Bool">1</tcp_fack> <tcp_fin_timeout type="Int">60</tcp_fin_timeout> <tcp_frto type="Int">0</tcp_frto> <tcp_keepalive_intvl type="Int">7200</tcp_keepalive_intvl> <tcp_keepalive_probes type="Int">75</tcp_keepalive_probes> <tcp_keepalive_time type="Int">9</tcp_keepalive_time> <tcp_low_latency type="Int">0</tcp_low_latency> <tcp_max_orphans type="Int">8192</tcp_max_orphans> <tcp_max_syn_backlog type="Int">1024</tcp_max_syn_backlog> <tcp_max_tw_buckets type="Int">180000</tcp_max_tw_buckets> <tcp_mem_low type="Int">24576</tcp_mem_low> <tcp_mem_pressure type="Int">32768</tcp_mem_pressure> <tcp_mem_high type="Int">49152</tcp_mem_high> <tcp_moderate_rcvbuf type="Int">0</tcp_moderate_rcvbuf> <tcp_no_metrics_save type="Bool">0</tcp_no_metrics_save> <tcp_orphan_retries type="Int">0</tcp_orphan_retries> <tcp_reordering type="Int">3</tcp_reordering> <tcp_retrans_collapse type="Bool">1</tcp_retrans_collapse> <tcp_retries1 type="Int">3</tcp_retries1> <tcp_retries2 type="Int">15</tcp_retries2> <tcp_rfc1337 type="Bool">0</tcp_rfc1337> <tcp_rmem_min type="Int">4096</tcp_rmem_min> <tcp_rmem_default type="Int">1024</tcp_rmem_default> <tcp_rmem_max type="Int">262144</tcp_rmem_max> <tcp_sack type="Bool">1</tcp_sack> <tcp_stdurg type="Bool">0</tcp_stdurg> <tcp_synack_retries type="Int">5</tcp_synack_retries> <tcp_syn_retries type="Int">5</tcp_syn_retries> <tcp_timestamps type="Bool">1</tcp_timestamps> <tcp_tw_recycle type="Bool">1</tcp_tw_recycle> <tcp_tw_reuse type="Bool">0</tcp_tw_reuse> <tcp_vegas_alpha type="Int">2</tcp_vegas_alpha> <tcp_vegas_beta type="Int">6</tcp_vegas_beta> <tcp_vegas_cong_avoid type="Int">0</tcp_vegas_cong_avoid> <tcp_vegas_gamma type="Int">2</tcp_vegas_gamma> <tcp_westwood type="Int">0</tcp_westwood> <tcp_window_scaling type="Bool">0</tcp_window_scaling> <ip_no_pmtu_disc type="Bool">1</ip_no_pmtu_disc> <tcp_wmem_min type="Int">4096</tcp_wmem_min> <tcp_wmem_default type="Int">1024</tcp_wmem_default> <tcp_wmem_max type="Int">262144</tcp_wmem_max> <tcp_ipfrag_time type="Int">30</tcp_ipfrag_time> <tcp_port_min type="Int">1024</tcp_port_min> <tcp_port_max type="Int">65535</tcp_port_max> <tcp_rto_min type="Int">1000</tcp_rto_min> <tcp_rto_max type="Int">120000</tcp_rto_max> <tcp_tw_rfc1323_strict type="Bool">0</tcp_tw_rfc1323_strict> <udp_port_randomization type="Bool">0</udp_port_randomization> <disable_min_max_buffer_size type="Bool">1</disable_min_max_buffer_size> <llm_hdr_gap type="Int">8</llm_hdr_gap> <llm_hdr_gap_ns type="Int">10</llm_hdr_gap_ns> <inter_packet_granular_delay type="Double">0</inter_packet_granular_delay> <delayed_acks type="Bool">1</delayed_acks> <accept_ra_default type="Bool">0</accept_ra_default> <rps_needed type="Bool">0</rps_needed> <delayed_acks_segments type="Int">0</delayed_acks_segments> <delayed_acks_timeout type="Int">0</delayed_acks_timeout> <tcp_large_icwnd type="Int">0</tcp_large_icwnd> <tcp_mgmt_rmem type="Int">87380</tcp_mgmt_rmem> <tcp_mgmt_wmem type="Int">32768</tcp_mgmt_wmem> <adjust_tcp_buffers type="Bool">1</adjust_tcp_buffers> <name type="String">TCP-2</name> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.TCPPlugin> <Ixia.Aptixia.StackManager.GratArpPlugin type="Ixia.Aptixia.StackManager.GratArpPlugin" objectid="fc54eec4-41ef-4b6c-9415-bf639013b52d" version="6.70.442"> <enabled type="Bool">1</enabled> <forwardGratArp type="Bool">0</forwardGratArp> <rateControlEnabled type="Bool">0</rateControlEnabled> <maxFramesPerSecond type="Int">0</maxFramesPerSecond> <name type="String">GratARP-1</name> <ixLoadRestObjectId type="Int">5</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.GratArpPlugin> <Ixia.Aptixia.StackManager.MeshingPlugin type="Ixia.Aptixia.StackManager.MeshingPlugin" objectid="b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed" version="6.70.442"> <trafficMaps type="ListNode"> <Ixia.Aptixia.StackManager.MeshingTrafficMap type="Ixia.Aptixia.StackManager.MeshingTrafficMap" objectid="6628a634-d6ea-4f86-94a7-816e8fc2917e" version="6.70.442"> <name type="String">newClientActivity1!HTTP server_newServerActivity1</name> <configMapFilename type="String">newClientActivity1Script.configmap</configMapFilename> <sourceActivityId type="Int">0</sourceActivityId> <ipPreference type="Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference">2</ipPreference> <portRangesString type="String" /> <meshingType type="Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType">2</meshingType> <destinationActivityId type="Int">0</destinationActivityId> </Ixia.Aptixia.StackManager.MeshingTrafficMap> </trafficMaps> <activityRangeMapInfoList type="ListNode" /> <name type="String">Meshing-2</name> <ixLoadRestObjectId type="Int">6</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MeshingPlugin> </globalPluginList> <portList type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IPSecPortGroupData type="Ixia.Aptixia.StackManager.IPSecPortGroupData" objectid="df783f7c-615e-47c1-b7f0-1174985ea22e" version="6.80.2"> <role type="String">Initiator</role> <associates type="ListNode" /> <overrideGlobalOptions type="Bool">0</overrideGlobalOptions> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <maxInitiationRate type="Int">50</maxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <maxPendingTunnels type="Int">50</maxPendingTunnels> <teardownRate type="Int">10</teardownRate> <enableESPPerStreamStats type="Bool">0</enableESPPerStreamStats> <enableESPReplayStats type="Bool">0</enableESPReplayStats> <activities type="ListNode" /> <pcpuLogLevel type="String">0</pcpuLogLevel> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecPortGroupData> </typeSpecificData> <virtualMode type="Bool">0</virtualMode> <allowedVirtualModeTypes type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <doOwnership type="Bool">0</doOwnership> <branchToNicMap type="ListNode" /> <cpuAggregation type="Bool">0</cpuAggregation> <activePort type="String" /> <networkLayersManager type="Ixia.Aptixia.StackManager.NetworkLayersManager" objectid="3d3cf9ef-8aab-4388-9252-4baea80122d3" version="6.70.442"> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </networkLayersManager> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.PortGroup> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="c4ecfc60-64ac-4dc2-9410-e0f58d84f229" version="6.70.442"> <name type="String">downlink_0</name> <category type="String" /> <stack type="Ixia.Aptixia.StackManager.L1EthernetPlugin" objectid="1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181" version="6.70.442"> <autoNegotiate type="Bool">1</autoNegotiate> <speed type="String">k100FD</speed> <advertise10Half type="Bool">1</advertise10Half> <advertise10Full type="Bool">1</advertise10Full> <advertise100Half type="Bool">1</advertise100Half> <advertise100Full type="Bool">1</advertise100Full> <advertise1000Full type="Bool">1</advertise1000Full> <advertise2500Full type="Bool">1</advertise2500Full> <advertise5000Full type="Bool">1</advertise5000Full> <advertise10000Full type="Bool">1</advertise10000Full> <cardDualPhy type="Ixia.Aptixia.StackManager.DualPhyPlugin" objectid="4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0" version="6.70.442"> <medium type="String">auto</medium> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </cardDualPhy> <cardElm type="Ixia.Aptixia.StackManager.EthernetELMPlugin" objectid="4dfec118-30e8-4494-b7c7-e28518e7848a" version="6.70.442"> <negotiateMasterSlave type="Bool">1</negotiateMasterSlave> <negotiationType type="String">master</negotiationType> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </cardElm> <enableFlowControl type="Bool">0</enableFlowControl> <directedAddress type="String">01:80:C2:00:00:01</directedAddress> <dataCenter type="Ixia.Aptixia.StackManager.DataCenterSettings" objectid="123fecc5-cb5e-43e9-92a1-b053dc56d0f3" version="6.70.442"> <dcSupported type="Bool">1</dcSupported> <dcEnabled type="Bool">0</dcEnabled> <dcFlowControl type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType">0</dcFlowControl> <dcMode type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode">2</dcMode> <dcPfcMapping type="IntList" /> <dcPfcPauseEnable type="Bool">0</dcPfcPauseEnable> <dcPfcPauseDelay type="Int">1</dcPfcPauseDelay> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </dataCenter> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.L2EthernetPlugin type="Ixia.Aptixia.StackManager.L2EthernetPlugin" objectid="35ff711b-53f7-4c74-9e8b-98d35adaa6bf" version="6.70.442"> <macRangeList type="ListNode"> <Ixia.Aptixia.StackManager.MacRange type="Ixia.Aptixia.StackManager.MacRange" objectid="f91c9f52-8150-4d0f-b657-498ed241835c" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">MAC-R2</name> <mac type="String">00:0A:00:03:14:00</mac> <incrementBy type="String">00:00:00:00:00:01</incrementBy> <mtu type="Int">1500</mtu> <count type="Int">1</count> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="57fa3f41-7695-42d7-ac26-68924bb1e8bb" version="6.70.442"> <name type="String">VLAN-R2</name> <enabled type="Bool">0</enabled> <firstId type="Int">1</firstId> <incrementStep type="Int">32</incrementStep> <increment type="Int">1</increment> <uniqueCount type="Int">4094</uniqueCount> <priority type="Int">0</priority> <tpid type="String">0x8100</tpid> <innerEnable type="Bool">0</innerEnable> <innerFirstId type="Int">1</innerFirstId> <innerIncrementStep type="Int">1</innerIncrementStep> <innerIncrement type="Int">1</innerIncrement> <innerUniqueCount type="Int">4094</innerUniqueCount> <innerPriority type="Int">0</innerPriority> <idIncrMode type="Int">1</idIncrMode> <innerTpid type="String">0x8100</innerTpid> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </vlanRange> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacRange> </macRangeList> <vlanRangeList type="ListNode"> <Ixia.Aptixia.StackManager.VlanIdRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="57fa3f41-7695-42d7-ac26-68924bb1e8bb" version="6.70.442" /> </vlanRangeList> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Plugin type="Ixia.Aptixia.StackManager.IpV4V6Plugin" objectid="b85b184d-9bb4-48c2-a029-e633fee7a3c8" version="6.70.442"> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="1d9bf537-0c3d-4fdf-9b85-0a622cc77649" version="6.70.442"> <enabled type="Bool">1</enabled> <name type="String">IP-R2</name> <ipType type="String">IPv4</ipType> <ipAddress type="String">10.0.3.20</ipAddress> <prefix type="Int">24</prefix> <incrementBy type="String">0.0.0.1</incrementBy> <count type="Int">1</count> <autoCountEnabled type="Bool">0</autoCountEnabled> <gatewayAddress type="String">10.0.3.10</gatewayAddress> <gatewayIncrement type="String">0.0.0.0</gatewayIncrement> <gatewayIncrementMode type="String">perSubnet</gatewayIncrementMode> <enableGatewayArp type="Bool">0</enableGatewayArp> <generateStatistics type="Bool">0</generateStatistics> <mss type="Int">1460</mss> <randomizeAddress type="Bool">0</randomizeAddress> <randomizeSeed type="Int">463911585</randomizeSeed> <autoMacGeneration type="Bool">1</autoMacGeneration> <macRange type="Ixia.Aptixia.StackManager.MacRange" objectid="f91c9f52-8150-4d0f-b657-498ed241835c" version="6.70.442" /> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="57fa3f41-7695-42d7-ac26-68924bb1e8bb" version="6.70.442" /> <atmRange type="Ixia.Aptixia.StackManager.AtmRange" objectid="00000000-0000-0000-0000-000000000000" /> <pvcRange type="Ixia.Aptixia.StackManager.PvcRange" objectid="00000000-0000-0000-0000-000000000000" /> <autoIpTypeEnabled type="Bool">0</autoIpTypeEnabled> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Range> </rangeList> <rangeGroups type="ListNode"> <Ixia.Aptixia.StackManager.RangeGroup type="Ixia.Aptixia.StackManager.RangeGroup" objectid="b2c21c73-bfe3-4fbc-9804-b5a8b307d893" version="6.70.442"> <name type="String">DistGroup1</name> <distribType type="Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType">0</distribType> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="1d9bf537-0c3d-4fdf-9b85-0a622cc77649" version="6.70.442" /> </rangeList> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.RangeGroup> </rangeGroups> <childrenList type="ListNode" /> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">IP-2</name> <ixLoadRestObjectId type="Int">6</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Plugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">MAC/VLAN-2</name> <ixLoadRestObjectId type="Int">5</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.L2EthernetPlugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">Ethernet-2</name> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </stack> <globalPluginList type="ListNode"> <Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type="Ixia.Aptixia.StackManager.IxLoadSettingsPlugin" objectid="993e33c6-e1f7-4967-982e-82a032f8c61a" version="1.0.0"> <teardownInterfaceWithUser type="Bool">0</teardownInterfaceWithUser> <interfaceBehavior type="Int">0</interfaceBehavior> <name type="String">Settings-4</name> <ixLoadRestObjectId type="Int">7</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSettingsPlugin> <Ixia.Aptixia.StackManager.DnsPlugin type="Ixia.Aptixia.StackManager.DnsPlugin" objectid="36ca84d7-ff44-45b7-b75d-aec38b753161" version="6.70.442"> <domain type="String" /> <timeout type="Int">30000</timeout> <nameServerList type="ListNode" /> <searchList type="ListNode" /> <hostList type="ListNode" /> <name type="String">DNS-4</name> <ixLoadRestObjectId type="Int">8</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.DnsPlugin> <Ixia.Aptixia.StackManager.FilterPlugin type="Ixia.Aptixia.StackManager.FilterPlugin" objectid="25c5acdd-9dd3-4802-93b6-b10651820b66" version="6.70.442"> <auto type="Bool">1</auto> <all type="Bool">0</all> <pppoecontrol type="Bool">0</pppoecontrol> <pppoenetwork type="Bool">0</pppoenetwork> <isis type="Bool">0</isis> <ip type="String" /> <tcp type="String" /> <udp type="String" /> <mac type="String" /> <icmp type="String" /> <name type="String">Filter-2</name> <ixLoadRestObjectId type="Int">9</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.FilterPlugin> <Ixia.Aptixia.StackManager.TCPPlugin type="Ixia.Aptixia.StackManager.TCPPlugin" objectid="6259328b-97c2-4390-8ab1-f16bf3459219" version="6.70.442"> <bestPerfSettings type="Bool">0</bestPerfSettings> <accept_ra_all type="Bool">0</accept_ra_all> <tcp_abort_on_overflow type="Bool">0</tcp_abort_on_overflow> <tcp_adv_win_scale type="Int">2</tcp_adv_win_scale> <tcp_app_win type="Int">31</tcp_app_win> <tcp_bic type="Int">0</tcp_bic> <tcp_bic_fast_convergence type="Int">1</tcp_bic_fast_convergence> <tcp_bic_low_window type="Int">14</tcp_bic_low_window> <tcp_dsack type="Bool">1</tcp_dsack> <tcp_ecn type="Bool">0</tcp_ecn> <tcp_fack type="Bool">1</tcp_fack> <tcp_fin_timeout type="Int">60</tcp_fin_timeout> <tcp_frto type="Int">0</tcp_frto> <tcp_keepalive_intvl type="Int">7200</tcp_keepalive_intvl> <tcp_keepalive_probes type="Int">75</tcp_keepalive_probes> <tcp_keepalive_time type="Int">9</tcp_keepalive_time> <tcp_low_latency type="Int">0</tcp_low_latency> <tcp_max_orphans type="Int">8192</tcp_max_orphans> <tcp_max_syn_backlog type="Int">1024</tcp_max_syn_backlog> <tcp_max_tw_buckets type="Int">180000</tcp_max_tw_buckets> <tcp_mem_low type="Int">24576</tcp_mem_low> <tcp_mem_pressure type="Int">32768</tcp_mem_pressure> <tcp_mem_high type="Int">49152</tcp_mem_high> <tcp_moderate_rcvbuf type="Int">0</tcp_moderate_rcvbuf> <tcp_no_metrics_save type="Bool">0</tcp_no_metrics_save> <tcp_orphan_retries type="Int">0</tcp_orphan_retries> <tcp_reordering type="Int">3</tcp_reordering> <tcp_retrans_collapse type="Bool">1</tcp_retrans_collapse> <tcp_retries1 type="Int">3</tcp_retries1> <tcp_retries2 type="Int">15</tcp_retries2> <tcp_rfc1337 type="Bool">0</tcp_rfc1337> <tcp_rmem_min type="Int">4096</tcp_rmem_min> <tcp_rmem_default type="Int">1024</tcp_rmem_default> <tcp_rmem_max type="Int">262144</tcp_rmem_max> <tcp_sack type="Bool">1</tcp_sack> <tcp_stdurg type="Bool">0</tcp_stdurg> <tcp_synack_retries type="Int">5</tcp_synack_retries> <tcp_syn_retries type="Int">5</tcp_syn_retries> <tcp_timestamps type="Bool">1</tcp_timestamps> <tcp_tw_recycle type="Bool">1</tcp_tw_recycle> <tcp_tw_reuse type="Bool">0</tcp_tw_reuse> <tcp_vegas_alpha type="Int">2</tcp_vegas_alpha> <tcp_vegas_beta type="Int">6</tcp_vegas_beta> <tcp_vegas_cong_avoid type="Int">0</tcp_vegas_cong_avoid> <tcp_vegas_gamma type="Int">2</tcp_vegas_gamma> <tcp_westwood type="Int">0</tcp_westwood> <tcp_window_scaling type="Bool">0</tcp_window_scaling> <ip_no_pmtu_disc type="Bool">1</ip_no_pmtu_disc> <tcp_wmem_min type="Int">4096</tcp_wmem_min> <tcp_wmem_default type="Int">1024</tcp_wmem_default> <tcp_wmem_max type="Int">262144</tcp_wmem_max> <tcp_ipfrag_time type="Int">30</tcp_ipfrag_time> <tcp_port_min type="Int">1024</tcp_port_min> <tcp_port_max type="Int">65535</tcp_port_max> <tcp_rto_min type="Int">1000</tcp_rto_min> <tcp_rto_max type="Int">120000</tcp_rto_max> <tcp_tw_rfc1323_strict type="Bool">0</tcp_tw_rfc1323_strict> <udp_port_randomization type="Bool">0</udp_port_randomization> <disable_min_max_buffer_size type="Bool">1</disable_min_max_buffer_size> <llm_hdr_gap type="Int">8</llm_hdr_gap> <llm_hdr_gap_ns type="Int">10</llm_hdr_gap_ns> <inter_packet_granular_delay type="Double">0</inter_packet_granular_delay> <delayed_acks type="Bool">1</delayed_acks> <accept_ra_default type="Bool">0</accept_ra_default> <rps_needed type="Bool">0</rps_needed> <delayed_acks_segments type="Int">0</delayed_acks_segments> <delayed_acks_timeout type="Int">0</delayed_acks_timeout> <tcp_large_icwnd type="Int">0</tcp_large_icwnd> <tcp_mgmt_rmem type="Int">87380</tcp_mgmt_rmem> <tcp_mgmt_wmem type="Int">32768</tcp_mgmt_wmem> <adjust_tcp_buffers type="Bool">1</adjust_tcp_buffers> <name type="String">TCP-4</name> <ixLoadRestObjectId type="Int">10</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.TCPPlugin> <Ixia.Aptixia.StackManager.GratArpPlugin type="Ixia.Aptixia.StackManager.GratArpPlugin" objectid="3eedf749-efa4-43a0-87ae-e110a77c88d4" version="6.70.442"> <enabled type="Bool">1</enabled> <forwardGratArp type="Bool">0</forwardGratArp> <rateControlEnabled type="Bool">0</rateControlEnabled> <maxFramesPerSecond type="Int">0</maxFramesPerSecond> <name type="String">GratARP-2</name> <ixLoadRestObjectId type="Int">11</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.GratArpPlugin> <Ixia.Aptixia.StackManager.MeshingPlugin type="Ixia.Aptixia.StackManager.MeshingPlugin" objectid="284f9992-65d8-4027-a155-709f1965f892" version="6.70.442"> <trafficMaps type="ListNode" /> <activityRangeMapInfoList type="ListNode" /> <name type="String">Meshing-1</name> <ixLoadRestObjectId type="Int">12</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MeshingPlugin> </globalPluginList> <portList type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IPSecPortGroupData type="Ixia.Aptixia.StackManager.IPSecPortGroupData" objectid="f65f12f2-018c-46f5-a9c5-a1f6f7151909" version="6.80.2"> <role type="String">Initiator</role> <associates type="ListNode" /> <overrideGlobalOptions type="Bool">0</overrideGlobalOptions> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <maxInitiationRate type="Int">50</maxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <maxPendingTunnels type="Int">50</maxPendingTunnels> <teardownRate type="Int">10</teardownRate> <enableESPPerStreamStats type="Bool">0</enableESPPerStreamStats> <enableESPReplayStats type="Bool">0</enableESPReplayStats> <activities type="ListNode" /> <pcpuLogLevel type="String">0</pcpuLogLevel> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecPortGroupData> </typeSpecificData> <virtualMode type="Bool">0</virtualMode> <allowedVirtualModeTypes type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <doOwnership type="Bool">0</doOwnership> <branchToNicMap type="ListNode" /> <cpuAggregation type="Bool">0</cpuAggregation> <activePort type="String" /> <networkLayersManager type="Ixia.Aptixia.StackManager.NetworkLayersManager" objectid="60b1273d-78d3-4813-8cea-ec9a7101b8a3" version="6.70.442"> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </networkLayersManager> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.PortGroup> </portGroupList> <externalProperties type="Ixia.Aptixia.StackManager.ExternalPropertyManager" objectid="1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e" version="6.70.442"> <properties type="ListNode"> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="145671ff-93a5-4ecc-8c83-59b2c3c67be9" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatLTEUEUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="9f07a941-ad2f-46b0-8c75-911862a21039" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">SixRdRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a221ab5c-faae-4940-bfad-5d41d44f1427" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">L2tpRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DHCPServerRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="f252cff3-b919-4e74-9f62-9e9c5ab5d324" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MobileSubscribersRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="500dfc8b-2e6a-401f-84c0-f6907f60c00e" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPSgsnS3RangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="693cb176-f3d8-4073-8a02-fabdc0bdd3fb" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPRange_SGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="ec983bf9-07f0-46b2-99a0-354114f42501" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EmulatedRouterRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="5d0f0eb8-40af-4292-8ff2-a57e7903601d" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">PppoxRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="653fae09-ba19-443c-8f8b-9483c0b86b9a" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPNGAPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="c886be8c-c207-4bb4-90d5-17be54556d58" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatRNCIuPSUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="00e75214-5166-406b-90e5-2b83567ae5cf" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPNGUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="50d10ee7-45ce-46d2-ae8d-ecd3b1806067" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange_S5S8_SGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="c2f310a4-6ea4-4459-be3b-f3b3365c590a" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPGRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7e458bed-5e36-42d6-812d-3794be52766e" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPPcrfRange_S5S8_PGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7d225fda-6432-4de3-9750-c19bbc957703" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DSLiteRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="e25dd669-ffc5-493d-a2b5-fd5627bf2ee8" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPSGSNRangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">SlaacRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="25699a2c-ab22-417b-9072-894523e98008" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="482a10c3-0ac7-44d9-9fa9-b43ba3a9901d" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DHCPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a0f03753-923d-4421-8c4f-0ed78f00fc44" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">AtmRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="fb5cd68e-b4b0-4fd4-ae18-4100c0035642" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatMMEApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="62677b6a-080e-4cc3-919b-71fa90ae410f" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatENodeBUuApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="2e0fd6e3-470e-48df-ab8d-cc21b9d80393" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPSUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="175f3104-0d2a-44f9-b712-fed3b170f8cb" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IpV4V6Range</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d1f37e1e-db44-4bac-acb8-b242dee8e371" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MacRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="61ccdebc-84e6-464d-be14-2b3ddedab9d2" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DualStackIPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d0678cd8-998e-42ab-8f0d-bfcb5370eac2" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange_S2a_TWAN</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d8350364-51c6-4a1b-af9f-72c9c235a636" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatSGSNIuPSApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="613d02a1-db1e-415d-b4bb-8b73b4477cf4" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatENodeBSimUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="9a41f718-b55e-44c7-a0cc-b1fcf8204c20" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">S6dRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="4c26fe62-a63d-4c40-8e15-c58ad8fba8d0" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">UERangeBase</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="5c2ca63f-3335-4ab7-963e-440817448538" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPMmeS10RangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="51a5eccc-a68d-4730-8a48-32019c547c28" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">S6aRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="3010c4ad-f31e-4676-9e61-bb25cf9c1bbb" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">BmScRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="ef1677e4-f390-4a78-b61a-f7650cf5faea" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MBmsGwRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">PptpRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="3b7f72db-e223-46ac-b71d-75e47f78e682" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPPMIPHostRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> </properties> <values type="ListNode"> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="6804ae67-3bd7-471b-8796-ee1e4773c2f1" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="a3559674-8d95-4020-90b3-b42eacaef105" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="7efcd429-2c48-41bd-bdc5-489dbfcfc49a" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </value> <enabled type="Bool">1</enabled> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="a63d8276-65bc-4bc2-8202-6461c6399ef9" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="1d9bf537-0c3d-4fdf-9b85-0a622cc77649" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="09d7b134-2921-4759-bbdb-ff3a5a1966d7" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </value> <enabled type="Bool">1</enabled> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="0cd9f099-242e-4b03-965f-d343c60181e6" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.MacRange" objectid="3011c8a8-a9fd-4b76-a27d-91948113ed4f" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="503aa008-2481-419f-a223-c90b2c25c17e" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </value> <enabled type="Bool">0</enabled> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="0b8d2c01-19ac-4f28-924e-660676d978da" version="6.70.442"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.MacRange" objectid="f91c9f52-8150-4d0f-b657-498ed241835c" version="6.70.442" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="41c694b3-bb55-48fe-9604-8b003540242f" version="6.70.442"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </value> <enabled type="Bool">0</enabled> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> </values> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </externalProperties> <availableNetworkTimelines type="ListNode" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.MacSessionData type="Ixia.Aptixia.StackManager.MacSessionData" objectid="a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8" version="6.70.442"> <duplicateCheckingScope type="Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions">2</duplicateCheckingScope> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacSessionData> <Ixia.Aptixia.StackManager.IpSessionData type="Ixia.Aptixia.StackManager.IpSessionData" objectid="34a78d72-1fc5-4875-9fe1-b4db66b1b4c4" version="6.70.442"> <duplicateCheckingScope type="Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions">2</duplicateCheckingScope> <enableGatewayArp type="Bool">0</enableGatewayArp> <gatewayArpRequestRate type="Int">300</gatewayArpRequestRate> <maxOutstandingGatewayArpRequests type="Int">300</maxOutstandingGatewayArpRequests> <ignoreUnresolvedIPs type="Bool">0</ignoreUnresolvedIPs> <sendAllRequests type="Bool">0</sendAllRequests> <individualARPTimeOut type="Int">500</individualARPTimeOut> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpSessionData> <Ixia.Aptixia.StackManager.IxLoadSessionData type="Ixia.Aptixia.StackManager.IxLoadSessionData" objectid="1e24447f-69f1-4030-8b2d-25a18c7160ca" version="1.0.0"> <portGroupList type="ListNode"> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="c4ecfc60-64ac-4dc2-9410-e0f58d84f229" version="6.70.442" /> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="865be042-32d5-426a-9e75-0908c943801f" version="6.70.442" /> </portGroupList> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSessionData> <Ixia.Aptixia.StackManager.ImpairSessionData type="Ixia.Aptixia.StackManager.ImpairSessionData" objectid="94b53c2c-0747-41c2-838d-0e0e15f31766" version="6.70.13"> <profiles type="ListNode"> <Ixia.Aptixia.StackManager.ImpairProfile type="Ixia.Aptixia.StackManager.ImpairProfile" objectid="90dd3511-93c1-49fa-8e38-db774db9fe17" version="6.70.13"> <name type="String">DefaultProfile</name> <defaultp type="Bool">1</defaultp> <seed type="Int">0</seed> <addDelay type="Bool">1</addDelay> <delay type="Int">20</delay> <jitter type="Int">0</jitter> <addDrop type="Bool">0</addDrop> <drop type="Double">10</drop> <addDropSequence type="Bool">0</addDropSequence> <dropSequenceSkip type="Int">10</dropSequenceSkip> <dropSequenceLength type="Int">1</dropSequenceLength> <addReorder type="Bool">0</addReorder> <gap type="Int">10</gap> <reorder type="Int">20</reorder> <reorderLength type="Int">1</reorderLength> <addReorderPI type="Bool">0</addReorderPI> <reorderPISkip type="Int">10</reorderPISkip> <reorderPILength type="Int">1</reorderPILength> <reorderPIInterval type="Int">1</reorderPIInterval> <reorderPITimeout type="Int">1000</reorderPITimeout> <addDuplicate type="Bool">0</addDuplicate> <duplicate type="Double">10</duplicate> <addFragment type="Bool">0</addFragment> <fragment type="Double">10</fragment> <mtu type="Int">1000</mtu> <addFragmentSequence type="Bool">0</addFragmentSequence> <fragmentSequenceSkip type="Int">10</fragmentSequenceSkip> <fragmentSequenceLength type="Int">1</fragmentSequenceLength> <mtuSequence type="Int">1000</mtuSequence> <sendFragmentsInReverseOrder type="Bool">0</sendFragmentsInReverseOrder> <sendFirstFragmentOnly type="Bool">0</sendFirstFragmentOnly> <sendOverlappingFragments type="Bool">0</sendOverlappingFragments> <addBandwidth type="Bool">0</addBandwidth> <bandwidth type="Double">1</bandwidth> <bandwidthUnits type="String">mbps</bandwidthUnits> <addBandwidthIn type="Bool">0</addBandwidthIn> <bandwidthIn type="Double">1</bandwidthIn> <bandwidthUnitsIn type="String">mbps</bandwidthUnitsIn> <destinationIp type="String">any</destinationIp> <sourceIp type="String">any</sourceIp> <sourcePort type="Int">0</sourcePort> <destinationPort type="Int">0</destinationPort> <protocol type="String">any</protocol> <typeOfService type="String">any</typeOfService> <addTcpFlagsFilter type="Bool">0</addTcpFlagsFilter> <selectTcpFlags type="String">SYN;RST;ACK</selectTcpFlags> <expectTcpFlags type="String">SYN</expectTcpFlags> <impairOrder type="String">Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth</impairOrder> </Ixia.Aptixia.StackManager.ImpairProfile> </profiles> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ImpairSessionData> <Ixia.Aptixia.StackManager.IPSecSessionData type="Ixia.Aptixia.StackManager.IPSecSessionData" objectid="bd2f0ea4-4278-49c8-9600-18cd2c8ed639" version="6.80.2"> <ipsecTunnelSetup type="Ixia.Aptixia.StackManager.IPSecTunnelSetup" objectid="1bacc8a0-dda0-4e0c-b013-4d8618dc80b6" version="6.80.2"> <tunnelSetupTimeout type="Int">30</tunnelSetupTimeout> <tunnelRetransmissionTimeout type="Int">30</tunnelRetransmissionTimeout> <numRetries type="Int">0</numRetries> <retryInterval type="Int">10</retryInterval> <retryDelay type="Int">10</retryDelay> <testType type="String">P2D</testType> <logLevel type="String">3</logLevel> <sendCiscoVid type="Bool">0</sendCiscoVid> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <enableRekey type="Bool">1</enableRekey> <rekeyRetries type="Int">3</rekeyRetries> <rekeyFuzzPercentage type="Int">0</rekeyFuzzPercentage> <rekeyMargin type="Int">10</rekeyMargin> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </ipsecTunnelSetup> <ipsecCertificates type="Ixia.Aptixia.StackManager.IPSecCertificates" objectid="2e324324-bf74-4ad3-afbb-62e44f01c31a" version="6.80.2"> <uniqueCert type="Bool">0</uniqueCert> <certSource type="String">kNewCert</certSource> <caURL type="String" /> <caDN type="String" /> <certSubjectDN type="String" /> <certSubjectAltDN type="String" /> <remoteIkeId type="String" /> <bitSize type="String">k512</bitSize> <saveCert type="Bool">1</saveCert> <cacheCertFolder type="String">C:\Program Files\Ixia\CachedCerts</cacheCertFolder> <certParentFolder type="String">C:\Program Files\Ixia\CachedCerts</certParentFolder> <certNumber type="String" /> <caCertNumber type="String" /> <earlyExpDate type="String" /> <lateExpDate type="String" /> <usePerRangeCertNameExp type="Bool">0</usePerRangeCertNameExp> <checkCrl type="Bool">0</checkCrl> <crlOverrideEnable type="Bool">0</crlOverrideEnable> <crlOverrideUrl type="String" /> <checkOcsp type="Bool">0</checkOcsp> <ocspOverrideEnable type="Bool">0</ocspOverrideEnable> <ocspOverrideUrl type="String" /> <unknownIsRevoked type="Bool">0</unknownIsRevoked> <certProto type="String">kSCEP</certProto> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </ipsecCertificates> <ipsecCertManager type="Ixia.Aptixia.StackManager.IPSecCertManager" objectid="f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897" version="6.80.2"> <caURL type="String" /> <caDN type="String">CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com</caDN> <certSubjectDN type="String">CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia</certSubjectDN> <keyGenAlgo type="String">kRSA_512</keyGenAlgo> <cacheCertFolder type="String">C:\Program Files\Ixia\CachedCerts</cacheCertFolder> <caKeyFile type="String">C:\Program Files\Ixia\ca-priv.key</caKeyFile> <caCrtFile type="String">C:\Program Files\Ixia\ca-cert.crt</caCrtFile> <certNumber type="Int">1</certNumber> <certProto type="String">kSCEP</certProto> <createRootCA type="Bool">0</createRootCA> <uniqueCert type="Bool">0</uniqueCert> <descFilePath type="String">C:\Program Files\Ixia\CachedCerts\sample.desc</descFilePath> <useDescFile type="Bool">0</useDescFile> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </ipsecCertManager> <eapSimTuples type="ListNode" /> <eapAkaTuples type="ListNode" /> <maxInitiationRate type="Int">50</maxInitiationRate> <maxPendingTunnels type="Int">50</maxPendingTunnels> <negotiationStartDelay type="Int">0</negotiationStartDelay> <teardownRate type="Int">10</teardownRate> <burstInitiation type="Bool">0</burstInitiation> <parallelInitiation type="Bool">0</parallelInitiation> <enableWildcardTsi type="Bool">0</enableWildcardTsi> <enableWildcardTsr type="Bool">0</enableWildcardTsr> <enablePlutoWildcardTsi type="Bool">0</enablePlutoWildcardTsi> <enablePlutoModeCfgWildcardTsr type="Bool">1</enablePlutoModeCfgWildcardTsr> <enablePlutoS2SWildcardTsr type="Bool">0</enablePlutoS2SWildcardTsr> <payloadAttrTypes type="ListNode" /> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecSessionData> </typeSpecificData> <statViewManager type="Ixia.Aptixia.StackManager.StatViewManager" objectid="7256ce27-286c-475d-b198-09b4ae306f73" version="6.70.442"> <enableStats type="Bool">1</enableStats> <enableOverviewStats type="Bool">1</enableOverviewStats> <enablePerSessionStats type="Bool">1</enablePerSessionStats> </statViewManager> <waitForLinkUp type="Bool">0</waitForLinkUp> <overloadProtection type="Bool">1</overloadProtection> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.SMSession> </rpf></xml> </_smSessionXml> <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig"> <xml type="str"></xml> @@ -10,11 +10,11 @@ <xml type="str"><?xml version="1.0" encoding="utf-16"?> <Config> <configs Version="5.0" /> </Config></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 <data> M>)RE6&UOXD80_BL6U46M5!N_@ ,.R2D!<D%' %W:=54T6(/Q'?&]JW7O+3J M?^_LVA@#-HG:#W>L]WGF97=G9V?2^KA9>M(*:.0&_G5%4]3*QYO6A!'VU84U MT#UD*J:JJ(JAZA4D0,1G^V[$I,^PO:Z0D+D;ERC12@FY1,3 MT')\9XH"1%" MX?9P,.T.IE+UIC4:=R<XO)WVAH/C[Y=NIS>]O>MW.= >/M[U!MU.9CK*1N]Q MX,3X3>N>PH\8.5MI1;P8KBMZ11B*5OU@L7#]Q6[^GG@1"&SJ+F&R]>T[>"4K M-Z [AIJA$2/+<$3!=H5G*6X(O+N@Z S?UNDVA!VF"6R(V^P%Q!G1@('-<K)3 M&L.18P^NXX#/%46G/G9],O.@0QB9L(#"*6&TWYV\'[4BZ;.6T*%AS,*893OY M&'O,#;WCM0E29_(&[9%L>-A%Z%\[CEBP_(1G]IIQS)W->]>#$6$9(N9O/: L MVOU*&--^9&TB][KRREAH5:OK]5I9&TI %U5=5;7J;X_]B?T*2R*[/AX:;D8E MDW+>EA)&JSNK'9@37)/8I\,O03N$VS1(HX "('KT/2:.&WRB01P> :[/;O16 ME?^TJJ6LMN>"S^X#NHP],@'&,%ZRL_O[XJ=-YPK_N[VZ^!$'[.IK<KF3#ROY MT91Z,OCUA,T7D'+_V(-_[H?_[(?)E< +,8[]8S\N/'9UD'=VEM5D(&&4! Y* MI$#,YK)F)N./%PMVE?,,5:56>OX\F !UB>?^1?@5NB.+7"0DXN\.A]23?4R\ M3SYA'?HH2=S+Y0M+=P.CW+7QIH?1,2]A\O4,R!(XRL<:GZSF9XMEVH3!(J!; MSN!7N/HPG8XRV3QZ*M^>+W87BQ/:UO,8(@S:Z)DKD5?W3R^]T:KVHH\"#'F% M;N9"\9%8L5] =WX[T7XM^]E3J4XLEBI52^&'=1J[9SB3MSC<C>'L&T^X*XC. ML1[<Q:N'_U@I*TNKK(<ID[ES%RAGVHY=G\UL1ZZ#/9-K6G,FSW0-9.WR4E5! M=S3=J(L]*5-P:@IC*!\>^*EI=5,HR4&G<E\BH)->AX,369/KLJ[)!HKJ]5I3 M4^5&K5%OZEKS4C9JAF[6355KRIJJ&D)S3KC0(XQJRL 9^IRAJ]HEBLIZ;:KK MEF%8AJX8N':S69/5FJ6J.V</I$KT!OAR(T/"2VSYKI=>1(;O8GI'2TXD286/ MQ'YU?=CMRN_#)WDXF#SU!GAO&TD,%_'>4'?K./PQYTRMJ2N:V5#JIJ+MI305 M)TVE5E,:^\DY-%3+NG2@81FU>L-JVKIMF=I\_@&SVQ%+JQG$,L%$@EUO6CAI M?-!S!DY=S_ETZGUO,P"V#NCW7<I'5@.+.07/7ZDGYU'$.:-I#!Z02.Q6;]/' MXD5J*)HJ=6\/E>5H9Y3E$@]FQ@4E2XDGEDCZ>=,P?WGN86GWG%AYYF[+W5OY M2^A@2M,.K95GHMYF#"$F+Z"YY1G*)2]JT]M32"E."%\>)S;QQ*KPBJA95LO- MGPI.5CGX\PSS/Q<[F"V\ Z+<.8ER(?R>5R7W^B0Y?1CRY[$D4MJ!YV%&Y+6A M>$B $3P()XFW0ZQ4N ^$^N#P%YGSYKQFS"LXPDOUW'O!6E0Y4:&:0[A4"V96 MSA35)2>*U)%3<XR?4Y3V$^=T'5/*U6&Q']B!U_,QXN;$AF*-A:Q2I>,@9C F M_J)8VQ%<I&89\C0RS<+E>.N+\+*X/!MO25PZ6Y]'+39Q!6_K >4KKQY/2-G5 M*RD!.3LIU[/6[S]TG5DUS[L>W]N*;XU/]%W_.SC[:G\O4TTC83^*"G'>'=^T M1"!+/KX_UQ6AK9)KRRN'>-(@5:2 .D!% T5L#(RH#ROP=IUL54A@F^POP_,] M,A+2ZD,T0KDFF4/MP)^[BYB2?%O*=SU"T$90G$?ZO2(T\3%YF[E\^DH3466= MOMX.1#9U182D8*Z&1JWXMGGXL.V*.'[:J:&\70=6;PCD&-6\Y_\W-H0X7R?_ *R?YN<O,OFQ*L3@ end </svConfiguration> + <svConfiguration type="str">begin 666 <data> M>)RE6&USXC80_BL>.LVTT_H= R$O-SD@%^9(8#"7ZTS3R0A[(>X9VR?+0-KI M?^]*-L88FV3:#W?(>IY=K:1'JU4N/VQ7OK0&&GMA<-70%:WQX?K29H0]>K ! MNH=:2DM3-,746@TD0,Q[1U[,I,_P>M4@$?.V'E'BM1)QBYA!X(!2X'VE)$(( MC7OCA]G@82:IUY>3Z<#&YLUL.'XH?S\/^L/9S<?1@ .]\?W'X<.@GP\=YZWW M!' T^/7E+87O"7)>I37Q$[AJ& TQ4+P>A<NE%RQW_;?$CT%@,V\%]FO@?(07 MLO9"NF-H.1HSLHHF%!Q/1);AIL '2XK!\&6=O4:PPW2!C7&9_9"X$QHR<%C! M=D83* 5VY[DN!-Q1?!SC("!S'_J$$9N%%(X)D_WJ%.-H5EF?' D#&B<L2EB^ MDO>)S[S(+\]-D/KV&[1[LN6RBS&^7A*S</4)]^PEY[1V8]YZ/DP(RQ'1?^,# M9?'N5T)-!W%W&WM7C1?&HJZJ;C8;96,J(5VJAJ;IZF_W(]MY@161O0 W#1>C MD5NY;UN)0=7=J'U8$)R36*?#+T$[A'LTS%1 1 M?4^)ZX6?:)A$)< +V+5Q MJ?*?2[66U?,]"-AM2%>)3VQ@#/62[]W?9S]L^Q?XW\W%V?<D9!>/Z>%./[KI MCZY8:>/7(S:?0,;]?0_^L6_^LV^F1P(/Q#0)RG&<^>SB(._L1M;2AH0J"5VT MR("$+62]E;8_G"W912$R=)6-,@P6H0W4([[W%^%'Z"-9%I20FK];#EDD>TV\ MSSYE'<8H23S*U3/+5@-5[CEXTJ.XS$N9?#X/9 4<Y6V==ZK%WFJ;'F&P#.DK M9_ CK-[-9I/<MH@>V_<6R]W!XH1>]VD*,8HV?N).Y/7MU^?A9-U\-B8A2OZY M%P9.0BD_S0K=+L0@)1?5,0+=S<&-]_/:]QY;]1,Q;4FMA>\VF8Y/<.RW.#R, M\?Q/GGS7$)]BW7G+%Q__L5I6GF+9$-,G\Q8>4,YT7,>:SQU7ML"9RTW]?"[/ M#1UDO=W6-#!<W3 ML29U#HZ'0CT5I8*?NFZUA),"=&SW)09J#_L<M&5=MF1# MQS"L]GE'-UHMN6U89M.RFJ:L-[5FL],V];;<-*V6EOHNF%?&A!JG#-QQP!F& MIG=D[5S6M9G>[%I6U]"4\V;3;%FM7S2]JVF[< ^L:OR&>(\C0\(CW0T\/SN6 M#&_)[,36[$F:&.^)\^(%L%L7>SAZG(P>A_:T;VNI'"MY;[B[<5U^M7.FKBF& MV58,75=TT]S;+:"C=;MFDS2[K8ZI=<G<Q74P.S_JQF$R4^L\'\<PW#X VX3T MVRZ-(ZN#!9J"$E!TRQ#NJD@G7$W!!Q*+20^W(ZQ(I(ZB:]+@YM!9@7;"62&; M8+I;4K*2>(:(I9^VG=;/3T.LUY[249YXW/+@1OX2N9BG2J'7IY3A=@H19B2@ MA>F92IM7JE8G\U)!J3[97^YMA_B0[F,FRU+_L:&]+L"?YYC4N=E!;Z6410US M)%9A_)ZKHG"EI(EZ'/$[KT8JO=#W,;7Q@D_<#L (;H2;"NX0JS4> :$!N/R: MY;P%+P2+#DIXK9];/]R(TB6N=',(UWK!%,F9HF3D1)$!"F[*^"E'V2/AE*\R MI=X=5O"A$_K# !6W( Y4>ZQDU3J=A@F#*0F6U=Y*<)6;5<3SR"R72WGIJ_ Z M79[46ZI+]S7@JL676<4E>4!YY"7A$2D_>C5U'6>G-7C^GOL/3\F\1.=/F<!_ M%=\Z[QAYP3=P]R7\WD;-E+!OQ94X?_)>7PHA2P%>(U<-X:U1>&LW#O'TU=.0 M0NH"%:\BXJ PXA&LP=\]3U5A@6_?8!6=?O@B(2LCQ.NF\/+E$!9P"V^94%)\ M:_)5CQ%T$!3[D7VO"4UC3*]8;I]=MD242\>7L NQ0SVAD PL%,;H%2\W'V^V D737&=SL;J#BN"^LW# H,M1CY_]6&,.?SY#_Y'T.N_P5*5:-J end </svConfiguration> <svRestConfiguration type="str">(dp1 S'HTTP Server Per URL' p2 ccopy_reg _reconstructor p3 (cLib.Rest.ixPersistentStatSource ixConfiguredStatsList p4 c__builtin__ list p5 (lp6 g3 (cLib.Rest.ixPersistentStatSource ixConfiguredStat p7 c__builtin__ object p8 NtRp9 (dp10 S'proxyPropertyList' p11 NsS'_objectID' p12 I0 sS'enabled' p13 I01 sS'filterList' p14 g3 (cLib.Rest.ixPersistentStatSource ixRestFilters p15 g8 NtRp16 (dp17 S'cardFilters' p18 g3 (cLib.Rest.ixPersistentStatSource ixCardFilterList p19 g5 (ltRp20 (dp21 g12 I-1 sS'_resourceLocked' p22 I00 sg11 NsbsS'activityFilters' p23 g3 (cLib.Rest.ixPersistentStatSource ixActivityFilterList p24 g5 (ltRp25 (dp26 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sS'chassisFilters' p27 g3 (cLib.Rest.ixPersistentStatSource ixChassisFilterList p28 g5 (ltRp29 (dp30 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sS'portFilters' p31 g3 (cLib.Rest.ixPersistentStatSource ixPortFilterList p32 g5 (ltRp33 (dp34 g12 I-1 sg22 I00 sg11 NsbsbsS'caption' p35 S'HTTP Requests Received' p36 sg22 I00 sS'aggregationType' p37 S'kSum' p38 sS'statName' p39 g36 sbag3 (g7 g8 NtRp40 (dp41 g11 Nsg12 I1 sg13 I01 sg14 g3 (g15 g8 NtRp42 (dp43 g18 g3 (g19 g5 (ltRp44 (dp45 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp46 (dp47 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp48 (dp49 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp50 (dp51 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful' p52 sg22 I00 sg37 g38 sg39 g52 sbag3 (g7 g8 NtRp53 (dp54 g11 Nsg12 I2 sg13 I01 sg14 g3 (g15 g8 NtRp55 (dp56 g18 g3 (g19 g5 (ltRp57 (dp58 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp59 (dp60 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp61 (dp62 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp63 (dp64 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (404)' p65 sg22 I00 sg37 g38 sg39 g65 sbag3 (g7 g8 NtRp66 (dp67 g11 Nsg12 I3 sg13 I01 sg14 g3 (g15 g8 NtRp68 (dp69 g18 g3 (g19 g5 (ltRp70 (dp71 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp72 (dp73 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp74 (dp75 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp76 (dp77 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (50x)' p78 sg22 I00 sg37 g38 sg39 g78 sbag3 (g7 g8 NtRp79 (dp80 g11 Nsg12 I4 sg13 I01 sg14 g3 (g15 g8 NtRp81 (dp82 g18 g3 (g19 g5 (ltRp83 (dp84 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp85 (dp86 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp87 (dp88 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp89 (dp90 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Write Error)' p91 sg22 I00 sg37 g38 sg39 g91 sbag3 (g7 g8 NtRp92 (dp93 g11 Nsg12 I5 sg13 I01 sg14 g3 (g15 g8 NtRp94 (dp95 g18 g3 (g19 g5 (ltRp96 (dp97 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp98 (dp99 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp100 (dp101 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp102 (dp103 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent' p104 sg22 I00 sg37 g38 sg39 g104 sbag3 (g7 g8 NtRp105 (dp106 g11 Nsg12 I6 sg13 I01 sg14 g3 (g15 g8 NtRp107 (dp108 g18 g3 (g19 g5 (ltRp109 (dp110 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp111 (dp112 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp113 (dp114 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp115 (dp116 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent (1xx)' p117 sg22 I00 sg37 g38 sg39 g117 sbag3 (g7 g8 NtRp118 (dp119 g11 Nsg12 I7 sg13 I01 sg14 g3 (g15 g8 NtRp120 (dp121 g18 g3 (g19 g5 (ltRp122 (dp123 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp124 (dp125 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp126 (dp127 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp128 (dp129 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent (2xx)' p130 sg22 I00 sg37 g38 sg39 g130 sbag3 (g7 g8 NtRp131 (dp132 g11 Nsg12 I8 sg13 I01 sg14 g3 (g15 g8 NtRp133 (dp134 g18 g3 (g19 g5 (ltRp135 (dp136 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp137 (dp138 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp139 (dp140 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp141 (dp142 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent (3xx)' p143 sg22 I00 sg37 g38 sg39 g143 sbag3 (g7 g8 NtRp144 (dp145 g11 Nsg12 I9 sg13 I01 sg14 g3 (g15 g8 NtRp146 (dp147 g18 g3 (g19 g5 (ltRp148 (dp149 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp150 (dp151 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp152 (dp153 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp154 (dp155 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent (4xx)' p156 sg22 I00 sg37 g38 sg39 g156 sbag3 (g7 g8 NtRp157 (dp158 g11 Nsg12 I10 sg13 I01 sg14 g3 (g15 g8 NtRp159 (dp160 g18 g3 (g19 g5 (ltRp161 (dp162 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp163 (dp164 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp165 (dp166 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp167 (dp168 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent (5xx)' p169 sg22 I00 sg37 g38 sg39 g169 sbag3 (g7 g8 NtRp170 (dp171 g11 Nsg12 I11 sg13 I01 sg14 g3 (g15 g8 NtRp172 (dp173 g18 g3 (g19 g5 (ltRp174 (dp175 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp176 (dp177 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp178 (dp179 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp180 (dp181 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Sent (Other)' p182 sg22 I00 sg37 g38 sg39 g182 sbag3 (g7 g8 NtRp183 (dp184 g11 Nsg12 I12 sg13 I01 sg14 g3 (g15 g8 NtRp185 (dp186 g18 g3 (g19 g5 (ltRp187 (dp188 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp189 (dp190 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp191 (dp192 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp193 (dp194 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Failed (Write Error)' p195 sg22 I00 sg37 g38 sg39 g195 sbag3 (g7 g8 NtRp196 (dp197 g11 Nsg12 I13 sg13 I01 sg14 g3 (g15 g8 NtRp198 (dp199 g18 g3 (g19 g5 (ltRp200 (dp201 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp202 (dp203 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp204 (dp205 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp206 (dp207 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Failed (Aborted)' p208 sg22 I00 sg37 g38 sg39 g208 sbag3 (g7 g8 NtRp209 (dp210 g11 Nsg12 I14 sg13 I01 sg14 g3 (g15 g8 NtRp211 (dp212 g18 g3 (g19 g5 (ltRp213 (dp214 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp215 (dp216 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp217 (dp218 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp219 (dp220 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Failed (Other)' p221 sg22 I00 sg37 g38 sg39 g221 sbag3 (g7 g8 NtRp222 (dp223 g11 Nsg12 I15 sg13 I01 sg14 g3 (g15 g8 NtRp224 (dp225 g18 g3 (g19 g5 (ltRp226 (dp227 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp228 (dp229 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp230 (dp231 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp232 (dp233 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Responses Sent' p234 sg22 I00 sg37 g38 sg39 g234 sbag3 (g7 g8 NtRp235 (dp236 g11 Nsg12 I16 sg13 I01 sg14 g3 (g15 g8 NtRp237 (dp238 g18 g3 (g19 g5 (ltRp239 (dp240 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp241 (dp242 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp243 (dp244 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp245 (dp246 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Total Chunks Sent' p247 sg22 I00 sg37 g38 sg39 g247 sbag3 (g7 g8 NtRp248 (dp249 g11 Nsg12 I17 sg13 I01 sg14 g3 (g15 g8 NtRp250 (dp251 g18 g3 (g19 g5 (ltRp252 (dp253 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp254 (dp255 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp256 (dp257 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp258 (dp259 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunk Size' p260 sg22 I00 sg37 S'kWeightedAverage' p261 sg39 g260 sbag3 (g7 g8 NtRp262 (dp263 g11 Nsg12 I18 sg13 I01 sg14 g3 (g15 g8 NtRp264 (dp265 g18 g3 (g19 g5 (ltRp266 (dp267 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp268 (dp269 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp270 (dp271 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp272 (dp273 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunks per Response' p274 sg22 I00 sg37 g261 sg39 g274 sbag3 (g7 g8 NtRp275 (dp276 g11 Nsg12 I19 sg13 I01 sg14 g3 (g15 g8 NtRp277 (dp278 g18 g3 (g19 g5 (ltRp279 (dp280 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp281 (dp282 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp283 (dp284 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp285 (dp286 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Requests Received' p287 sg22 I00 sg37 g38 sg39 g287 sbag3 (g7 g8 NtRp288 (dp289 g11 Nsg12 I20 sg13 I01 sg14 g3 (g15 g8 NtRp290 (dp291 g18 g3 (g19 g5 (ltRp292 (dp293 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp294 (dp295 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp296 (dp297 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp298 (dp299 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Total Chunks Received' p300 sg22 I00 sg37 g38 sg39 g300 sbag3 (g7 g8 NtRp301 (dp302 g11 Nsg12 I21 sg13 I01 sg14 g3 (g15 g8 NtRp303 (dp304 g18 g3 (g19 g5 (ltRp305 (dp306 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp307 (dp308 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp309 (dp310 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp311 (dp312 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Received Chunk Size' p313 sg22 I00 sg37 g261 sg39 g313 sbag3 (g7 g8 NtRp314 (dp315 g11 Nsg12 I22 sg13 I01 sg14 g3 (g15 g8 NtRp316 (dp317 g18 g3 (g19 g5 (ltRp318 (dp319 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp320 (dp321 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp322 (dp323 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp324 (dp325 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunks per Request' p326 sg22 I00 sg37 g261 sg39 g326 sbag3 (g7 g8 NtRp327 (dp328 g11 Nsg12 I23 sg13 I01 sg14 g3 (g15 g8 NtRp329 (dp330 g18 g3 (g19 g5 (ltRp331 (dp332 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp333 (dp334 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp335 (dp336 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp337 (dp338 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Requests Received' p339 sg22 I00 sg37 g38 sg39 g339 sbag3 (g7 g8 NtRp340 (dp341 g11 Nsg12 I24 sg13 I01 sg14 g3 (g15 g8 NtRp342 (dp343 g18 g3 (g19 g5 (ltRp344 (dp345 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp346 (dp347 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp348 (dp349 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp350 (dp351 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Check Successful' p352 sg22 I00 sg37 g38 sg39 g352 sbag3 (g7 g8 NtRp353 (dp354 g11 Nsg12 I25 sg13 I01 sg14 g3 (g15 g8 NtRp355 (dp356 g18 g3 (g19 g5 (ltRp357 (dp358 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp359 (dp360 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp361 (dp362 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp363 (dp364 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Check Failed' p365 sg22 I00 sg37 g38 sg39 g365 sbag3 (g7 g8 NtRp366 (dp367 g11 Nsg12 I26 sg13 I01 sg14 g3 (g15 g8 NtRp368 (dp369 g18 g3 (g19 g5 (ltRp370 (dp371 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp372 (dp373 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp374 (dp375 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp376 (dp377 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP OPTIONS Request Received' p378 sg22 I00 sg37 g38 sg39 g378 sbag3 (g7 g8 NtRp379 (dp380 g11 Nsg12 I27 sg13 I01 sg14 g3 (g15 g8 NtRp381 (dp382 g18 g3 (g19 g5 (ltRp383 (dp384 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp385 (dp386 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp387 (dp388 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp389 (dp390 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP OPTIONS Response Sent' p391 sg22 I00 sg37 g38 sg39 g391 sbatRp392 (dp393 g12 I27 sg22 I00 sg11 NsbsS'HTTP Server' p394 g3 (g4 g5 (lp395 g3 (g7 g8 NtRp396 (dp397 g11 Nsg12 I0 sg13 I01 sg14 g3 (g15 g8 NtRp398 (dp399 g18 g3 (g19 g5 (ltRp400 (dp401 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp402 (dp403 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp404 (dp405 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp406 (dp407 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g36 sg22 I00 sg37 g38 sg39 g36 sbag3 (g7 g8 NtRp408 (dp409 g11 Nsg12 I1 sg13 I01 sg14 g3 (g15 g8 NtRp410 (dp411 g18 g3 (g19 g5 (ltRp412 (dp413 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp414 (dp415 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp416 (dp417 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp418 (dp419 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g52 sg22 I00 sg37 g38 sg39 g52 sbag3 (g7 g8 NtRp420 (dp421 g11 Nsg12 I2 sg13 I01 sg14 g3 (g15 g8 NtRp422 (dp423 g18 g3 (g19 g5 (ltRp424 (dp425 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp426 (dp427 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp428 (dp429 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp430 (dp431 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed' p432 sg22 I00 sg37 g38 sg39 g432 sbag3 (g7 g8 NtRp433 (dp434 g11 Nsg12 I3 sg13 I01 sg14 g3 (g15 g8 NtRp435 (dp436 g18 g3 (g19 g5 (ltRp437 (dp438 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp439 (dp440 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp441 (dp442 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp443 (dp444 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g65 sg22 I00 sg37 g38 sg39 g65 sbag3 (g7 g8 NtRp445 (dp446 g11 Nsg12 I4 sg13 I01 sg14 g3 (g15 g8 NtRp447 (dp448 g18 g3 (g19 g5 (ltRp449 (dp450 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp451 (dp452 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp453 (dp454 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp455 (dp456 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g78 sg22 I00 sg37 g38 sg39 g78 sbag3 (g7 g8 NtRp457 (dp458 g11 Nsg12 I5 sg13 I01 sg14 g3 (g15 g8 NtRp459 (dp460 g18 g3 (g19 g5 (ltRp461 (dp462 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp463 (dp464 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp465 (dp466 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp467 (dp468 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g91 sg22 I00 sg37 g38 sg39 g91 sbag3 (g7 g8 NtRp469 (dp470 g11 Nsg12 I6 sg13 I01 sg14 g3 (g15 g8 NtRp471 (dp472 g18 g3 (g19 g5 (ltRp473 (dp474 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp475 (dp476 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp477 (dp478 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp479 (dp480 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Aborted)' p481 sg22 I00 sg37 g38 sg39 g481 sbag3 (g7 g8 NtRp482 (dp483 g11 Nsg12 I7 sg13 I01 sg14 g3 (g15 g8 NtRp484 (dp485 g18 g3 (g19 g5 (ltRp486 (dp487 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp488 (dp489 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp490 (dp491 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp492 (dp493 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Sessions Rejected (503)' p494 sg22 I00 sg37 g38 sg39 g494 sbag3 (g7 g8 NtRp495 (dp496 g11 Nsg12 I8 sg13 I01 sg14 g3 (g15 g8 NtRp497 (dp498 g18 g3 (g19 g5 (ltRp499 (dp500 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp501 (dp502 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp503 (dp504 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp505 (dp506 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Session Timeouts (408)' p507 sg22 I00 sg37 g38 sg39 g507 sbag3 (g7 g8 NtRp508 (dp509 g11 Nsg12 I9 sg13 I01 sg14 g3 (g15 g8 NtRp510 (dp511 g18 g3 (g19 g5 (ltRp512 (dp513 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp514 (dp515 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp516 (dp517 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp518 (dp519 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g117 sg22 I00 sg37 g38 sg39 g117 sbag3 (g7 g8 NtRp520 (dp521 g11 Nsg12 I10 sg13 I01 sg14 g3 (g15 g8 NtRp522 (dp523 g18 g3 (g19 g5 (ltRp524 (dp525 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp526 (dp527 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp528 (dp529 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp530 (dp531 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g130 sg22 I00 sg37 g38 sg39 g130 sbag3 (g7 g8 NtRp532 (dp533 g11 Nsg12 I11 sg13 I01 sg14 g3 (g15 g8 NtRp534 (dp535 g18 g3 (g19 g5 (ltRp536 (dp537 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp538 (dp539 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp540 (dp541 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp542 (dp543 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g143 sg22 I00 sg37 g38 sg39 g143 sbag3 (g7 g8 NtRp544 (dp545 g11 Nsg12 I12 sg13 I01 sg14 g3 (g15 g8 NtRp546 (dp547 g18 g3 (g19 g5 (ltRp548 (dp549 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp550 (dp551 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp552 (dp553 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp554 (dp555 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g156 sg22 I00 sg37 g38 sg39 g156 sbag3 (g7 g8 NtRp556 (dp557 g11 Nsg12 I13 sg13 I01 sg14 g3 (g15 g8 NtRp558 (dp559 g18 g3 (g19 g5 (ltRp560 (dp561 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp562 (dp563 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp564 (dp565 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp566 (dp567 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g169 sg22 I00 sg37 g38 sg39 g169 sbag3 (g7 g8 NtRp568 (dp569 g11 Nsg12 I14 sg13 I01 sg14 g3 (g15 g8 NtRp570 (dp571 g18 g3 (g19 g5 (ltRp572 (dp573 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp574 (dp575 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp576 (dp577 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp578 (dp579 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g182 sg22 I00 sg37 g38 sg39 g182 sbag3 (g7 g8 NtRp580 (dp581 g11 Nsg12 I15 sg13 I01 sg14 g3 (g15 g8 NtRp582 (dp583 g18 g3 (g19 g5 (ltRp584 (dp585 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp586 (dp587 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp588 (dp589 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp590 (dp591 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Bytes Received' p592 sg22 I00 sg37 g38 sg39 g592 sbag3 (g7 g8 NtRp593 (dp594 g11 Nsg12 I16 sg13 I01 sg14 g3 (g15 g8 NtRp595 (dp596 g18 g3 (g19 g5 (ltRp597 (dp598 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp599 (dp600 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp601 (dp602 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp603 (dp604 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Bytes Sent' p605 sg22 I00 sg37 g38 sg39 g605 sbag3 (g7 g8 NtRp606 (dp607 g11 Nsg12 I17 sg13 I01 sg14 g3 (g15 g8 NtRp608 (dp609 g18 g3 (g19 g5 (ltRp610 (dp611 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp612 (dp613 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp614 (dp615 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp616 (dp617 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content Bytes Received' p618 sg22 I00 sg37 g38 sg39 g618 sbag3 (g7 g8 NtRp619 (dp620 g11 Nsg12 I18 sg13 I01 sg14 g3 (g15 g8 NtRp621 (dp622 g18 g3 (g19 g5 (ltRp623 (dp624 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp625 (dp626 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp627 (dp628 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp629 (dp630 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content Bytes Sent' p631 sg22 I00 sg37 g38 sg39 g631 sbag3 (g7 g8 NtRp632 (dp633 g11 Nsg12 I19 sg13 I01 sg14 g3 (g15 g8 NtRp634 (dp635 g18 g3 (g19 g5 (ltRp636 (dp637 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp638 (dp639 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp640 (dp641 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp642 (dp643 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Received' p644 sg22 I00 sg37 g38 sg39 g644 sbag3 (g7 g8 NtRp645 (dp646 g11 Nsg12 I20 sg13 I01 sg14 g3 (g15 g8 NtRp647 (dp648 g18 g3 (g19 g5 (ltRp649 (dp650 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp651 (dp652 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp653 (dp654 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp655 (dp656 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Sent' p657 sg22 I00 sg37 g38 sg39 g657 sbag3 (g7 g8 NtRp658 (dp659 g11 Nsg12 I21 sg13 I01 sg14 g3 (g15 g8 NtRp660 (dp661 g18 g3 (g19 g5 (ltRp662 (dp663 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp664 (dp665 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp666 (dp667 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp668 (dp669 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Received With Matching ServerID' p670 sg22 I00 sg37 g38 sg39 g670 sbag3 (g7 g8 NtRp671 (dp672 g11 Nsg12 I22 sg13 I01 sg14 g3 (g15 g8 NtRp673 (dp674 g18 g3 (g19 g5 (ltRp675 (dp676 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp677 (dp678 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp679 (dp680 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp681 (dp682 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Received With Non-matching ServerID' p683 sg22 I00 sg37 g38 sg39 g683 sbag3 (g7 g8 NtRp684 (dp685 g11 Nsg12 I23 sg13 I01 sg14 g3 (g15 g8 NtRp686 (dp687 g18 g3 (g19 g5 (ltRp688 (dp689 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp690 (dp691 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp692 (dp693 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp694 (dp695 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunked Encoded Responses Sent' p696 sg22 I00 sg37 g38 sg39 g696 sbag3 (g7 g8 NtRp697 (dp698 g11 Nsg12 I24 sg13 I01 sg14 g3 (g15 g8 NtRp699 (dp700 g18 g3 (g19 g5 (ltRp701 (dp702 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp703 (dp704 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp705 (dp706 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp707 (dp708 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g247 sg22 I00 sg37 g38 sg39 g247 sbag3 (g7 g8 NtRp709 (dp710 g11 Nsg12 I25 sg13 I01 sg14 g3 (g15 g8 NtRp711 (dp712 g18 g3 (g19 g5 (ltRp713 (dp714 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp715 (dp716 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp717 (dp718 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp719 (dp720 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunked Transfer-Encoded Requests Received' p721 sg22 I00 sg37 g38 sg39 g721 sbag3 (g7 g8 NtRp722 (dp723 g11 Nsg12 I26 sg13 I01 sg14 g3 (g15 g8 NtRp724 (dp725 g18 g3 (g19 g5 (ltRp726 (dp727 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp728 (dp729 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp730 (dp731 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp732 (dp733 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g300 sg22 I00 sg37 g38 sg39 g300 sbag3 (g7 g8 NtRp734 (dp735 g11 Nsg12 I27 sg13 I01 sg14 g3 (g15 g8 NtRp736 (dp737 g18 g3 (g19 g5 (ltRp738 (dp739 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp740 (dp741 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp742 (dp743 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp744 (dp745 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g339 sg22 I00 sg37 g38 sg39 g339 sbag3 (g7 g8 NtRp746 (dp747 g11 Nsg12 I28 sg13 I01 sg14 g3 (g15 g8 NtRp748 (dp749 g18 g3 (g19 g5 (ltRp750 (dp751 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp752 (dp753 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp754 (dp755 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp756 (dp757 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g352 sg22 I00 sg37 g38 sg39 g352 sbag3 (g7 g8 NtRp758 (dp759 g11 Nsg12 I29 sg13 I01 sg14 g3 (g15 g8 NtRp760 (dp761 g18 g3 (g19 g5 (ltRp762 (dp763 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp764 (dp765 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp766 (dp767 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp768 (dp769 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g365 sg22 I00 sg37 g38 sg39 g365 sbag3 (g7 g8 NtRp770 (dp771 g11 Nsg12 I30 sg13 I01 sg14 g3 (g15 g8 NtRp772 (dp773 g18 g3 (g19 g5 (ltRp774 (dp775 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp776 (dp777 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp778 (dp779 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp780 (dp781 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g378 sg22 I00 sg37 g38 sg39 g378 sbag3 (g7 g8 NtRp782 (dp783 g11 Nsg12 I31 sg13 I01 sg14 g3 (g15 g8 NtRp784 (dp785 g18 g3 (g19 g5 (ltRp786 (dp787 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp788 (dp789 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp790 (dp791 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp792 (dp793 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g391 sg22 I00 sg37 g38 sg39 g391 sbag3 (g7 g8 NtRp794 (dp795 g11 Nsg12 I32 sg13 I01 sg14 g3 (g15 g8 NtRp796 (dp797 g18 g3 (g19 g5 (ltRp798 (dp799 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp800 (dp801 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp802 (dp803 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp804 (dp805 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 DATA Frames Sent' p806 sg22 I00 sg37 g38 sg39 g806 sbag3 (g7 g8 NtRp807 (dp808 g11 Nsg12 I33 sg13 I01 sg14 g3 (g15 g8 NtRp809 (dp810 g18 g3 (g19 g5 (ltRp811 (dp812 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp813 (dp814 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp815 (dp816 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp817 (dp818 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 HEADER Frames Sent' p819 sg22 I00 sg37 g38 sg39 g819 sbag3 (g7 g8 NtRp820 (dp821 g11 Nsg12 I34 sg13 I01 sg14 g3 (g15 g8 NtRp822 (dp823 g18 g3 (g19 g5 (ltRp824 (dp825 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp826 (dp827 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp828 (dp829 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp830 (dp831 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 PRIORITY Frames Sent' p832 sg22 I00 sg37 g38 sg39 g832 sbag3 (g7 g8 NtRp833 (dp834 g11 Nsg12 I35 sg13 I01 sg14 g3 (g15 g8 NtRp835 (dp836 g18 g3 (g19 g5 (ltRp837 (dp838 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp839 (dp840 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp841 (dp842 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp843 (dp844 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 RESETSTREAM Frames Sent' p845 sg22 I00 sg37 g38 sg39 g845 sbag3 (g7 g8 NtRp846 (dp847 g11 Nsg12 I36 sg13 I01 sg14 g3 (g15 g8 NtRp848 (dp849 g18 g3 (g19 g5 (ltRp850 (dp851 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp852 (dp853 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp854 (dp855 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp856 (dp857 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 SETTINGS Frames Sent' p858 sg22 I00 sg37 g38 sg39 g858 sbag3 (g7 g8 NtRp859 (dp860 g11 Nsg12 I37 sg13 I01 sg14 g3 (g15 g8 NtRp861 (dp862 g18 g3 (g19 g5 (ltRp863 (dp864 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp865 (dp866 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp867 (dp868 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp869 (dp870 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 PUSHPROMISE Frames Sent' p871 sg22 I00 sg37 g38 sg39 g871 sbag3 (g7 g8 NtRp872 (dp873 g11 Nsg12 I38 sg13 I01 sg14 g3 (g15 g8 NtRp874 (dp875 g18 g3 (g19 g5 (ltRp876 (dp877 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp878 (dp879 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp880 (dp881 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp882 (dp883 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 PING Frames Sent' p884 sg22 I00 sg37 g38 sg39 g884 sbag3 (g7 g8 NtRp885 (dp886 g11 Nsg12 I39 sg13 I01 sg14 g3 (g15 g8 NtRp887 (dp888 g18 g3 (g19 g5 (ltRp889 (dp890 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp891 (dp892 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp893 (dp894 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp895 (dp896 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 GOAWAY Frames Sent' p897 sg22 I00 sg37 g38 sg39 g897 sbag3 (g7 g8 NtRp898 (dp899 g11 Nsg12 I40 sg13 I01 sg14 g3 (g15 g8 NtRp900 (dp901 g18 g3 (g19 g5 (ltRp902 (dp903 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp904 (dp905 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp906 (dp907 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp908 (dp909 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 WINDOWUPDATE Frames Sent' p910 sg22 I00 sg37 g38 sg39 g910 sbag3 (g7 g8 NtRp911 (dp912 g11 Nsg12 I41 sg13 I01 sg14 g3 (g15 g8 NtRp913 (dp914 g18 g3 (g19 g5 (ltRp915 (dp916 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp917 (dp918 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp919 (dp920 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp921 (dp922 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 CONTINUATION Frames Sent' p923 sg22 I00 sg37 g38 sg39 g923 sbag3 (g7 g8 NtRp924 (dp925 g11 Nsg12 I42 sg13 I01 sg14 g3 (g15 g8 NtRp926 (dp927 g18 g3 (g19 g5 (ltRp928 (dp929 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp930 (dp931 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp932 (dp933 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp934 (dp935 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 DATA Frames Received' p936 sg22 I00 sg37 g38 sg39 g936 sbag3 (g7 g8 NtRp937 (dp938 g11 Nsg12 I43 sg13 I01 sg14 g3 (g15 g8 NtRp939 (dp940 g18 g3 (g19 g5 (ltRp941 (dp942 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp943 (dp944 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp945 (dp946 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp947 (dp948 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 HEADER Frames Received' p949 sg22 I00 sg37 g38 sg39 g949 sbag3 (g7 g8 NtRp950 (dp951 g11 Nsg12 I44 sg13 I01 sg14 g3 (g15 g8 NtRp952 (dp953 g18 g3 (g19 g5 (ltRp954 (dp955 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp956 (dp957 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp958 (dp959 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp960 (dp961 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 PRIORITY Frames Received' p962 sg22 I00 sg37 g38 sg39 g962 sbag3 (g7 g8 NtRp963 (dp964 g11 Nsg12 I45 sg13 I01 sg14 g3 (g15 g8 NtRp965 (dp966 g18 g3 (g19 g5 (ltRp967 (dp968 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp969 (dp970 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp971 (dp972 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp973 (dp974 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 RESETSTREAM Frames Received' p975 sg22 I00 sg37 g38 sg39 g975 sbag3 (g7 g8 NtRp976 (dp977 g11 Nsg12 I46 sg13 I01 sg14 g3 (g15 g8 NtRp978 (dp979 g18 g3 (g19 g5 (ltRp980 (dp981 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp982 (dp983 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp984 (dp985 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp986 (dp987 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 SETTINGS Frames Received' p988 sg22 I00 sg37 g38 sg39 g988 sbag3 (g7 g8 NtRp989 (dp990 g11 Nsg12 I47 sg13 I01 sg14 g3 (g15 g8 NtRp991 (dp992 g18 g3 (g19 g5 (ltRp993 (dp994 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp995 (dp996 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp997 (dp998 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp999 (dp1000 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 PUSHPROMISE Frames Received' p1001 sg22 I00 sg37 g38 sg39 g1001 sbag3 (g7 g8 NtRp1002 (dp1003 g11 Nsg12 I48 sg13 I01 sg14 g3 (g15 g8 NtRp1004 (dp1005 g18 g3 (g19 g5 (ltRp1006 (dp1007 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1008 (dp1009 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1010 (dp1011 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1012 (dp1013 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 PING Frames Received' p1014 sg22 I00 sg37 g38 sg39 g1014 sbag3 (g7 g8 NtRp1015 (dp1016 g11 Nsg12 I49 sg13 I01 sg14 g3 (g15 g8 NtRp1017 (dp1018 g18 g3 (g19 g5 (ltRp1019 (dp1020 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1021 (dp1022 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1023 (dp1024 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1025 (dp1026 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 GOAWAY Frames Received' p1027 sg22 I00 sg37 g38 sg39 g1027 sbag3 (g7 g8 NtRp1028 (dp1029 g11 Nsg12 I50 sg13 I01 sg14 g3 (g15 g8 NtRp1030 (dp1031 g18 g3 (g19 g5 (ltRp1032 (dp1033 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1034 (dp1035 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1036 (dp1037 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1038 (dp1039 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 WINDOWUPDATE Frames Received' p1040 sg22 I00 sg37 g38 sg39 g1040 sbag3 (g7 g8 NtRp1041 (dp1042 g11 Nsg12 I51 sg13 I01 sg14 g3 (g15 g8 NtRp1043 (dp1044 g18 g3 (g19 g5 (ltRp1045 (dp1046 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1047 (dp1048 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1049 (dp1050 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1051 (dp1052 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 CONTINUATION Frames Received' p1053 sg22 I00 sg37 g38 sg39 g1053 sbag3 (g7 g8 NtRp1054 (dp1055 g11 Nsg12 I52 sg13 I01 sg14 g3 (g15 g8 NtRp1056 (dp1057 g18 g3 (g19 g5 (ltRp1058 (dp1059 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1060 (dp1061 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1062 (dp1063 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1064 (dp1065 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Streams Initiated by Client' p1066 sg22 I00 sg37 g38 sg39 g1066 sbag3 (g7 g8 NtRp1067 (dp1068 g11 Nsg12 I53 sg13 I01 sg14 g3 (g15 g8 NtRp1069 (dp1070 g18 g3 (g19 g5 (ltRp1071 (dp1072 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1073 (dp1074 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1075 (dp1076 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1077 (dp1078 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Streams Initiated by Server' p1079 sg22 I00 sg37 g38 sg39 g1079 sbag3 (g7 g8 NtRp1080 (dp1081 g11 Nsg12 I54 sg13 I01 sg14 g3 (g15 g8 NtRp1082 (dp1083 g18 g3 (g19 g5 (ltRp1084 (dp1085 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1086 (dp1087 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1088 (dp1089 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1090 (dp1091 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Streams Succeeded Client to Server' p1092 sg22 I00 sg37 g38 sg39 g1092 sbag3 (g7 g8 NtRp1093 (dp1094 g11 Nsg12 I55 sg13 I01 sg14 g3 (g15 g8 NtRp1095 (dp1096 g18 g3 (g19 g5 (ltRp1097 (dp1098 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1099 (dp1100 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1101 (dp1102 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1103 (dp1104 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Streams Succeeded Server to Client' p1105 sg22 I00 sg37 g38 sg39 g1105 sbag3 (g7 g8 NtRp1106 (dp1107 g11 Nsg12 I56 sg13 I01 sg14 g3 (g15 g8 NtRp1108 (dp1109 g18 g3 (g19 g5 (ltRp1110 (dp1111 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1112 (dp1113 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1114 (dp1115 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1116 (dp1117 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Streams Failed Client to Server' p1118 sg22 I00 sg37 g38 sg39 g1118 sbag3 (g7 g8 NtRp1119 (dp1120 g11 Nsg12 I57 sg13 I01 sg14 g3 (g15 g8 NtRp1121 (dp1122 g18 g3 (g19 g5 (ltRp1123 (dp1124 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1125 (dp1126 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1127 (dp1128 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1129 (dp1130 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Streams Failed Server to Client' p1131 sg22 I00 sg37 g38 sg39 g1131 sbag3 (g7 g8 NtRp1132 (dp1133 g11 Nsg12 I58 sg13 I01 sg14 g3 (g15 g8 NtRp1134 (dp1135 g18 g3 (g19 g5 (ltRp1136 (dp1137 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1138 (dp1139 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1140 (dp1141 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1142 (dp1143 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Connection Upgrade Succeeded' p1144 sg22 I00 sg37 g38 sg39 g1144 sbag3 (g7 g8 NtRp1145 (dp1146 g11 Nsg12 I59 sg13 I01 sg14 g3 (g15 g8 NtRp1147 (dp1148 g18 g3 (g19 g5 (ltRp1149 (dp1150 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1151 (dp1152 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1153 (dp1154 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1155 (dp1156 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Connection Upgrade Failed' p1157 sg22 I00 sg37 g38 sg39 g1157 sbag3 (g7 g8 NtRp1158 (dp1159 g11 Nsg12 I60 sg13 I01 sg14 g3 (g15 g8 NtRp1160 (dp1161 g18 g3 (g19 g5 (ltRp1162 (dp1163 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1164 (dp1165 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1166 (dp1167 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1168 (dp1169 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Protocol Error' p1170 sg22 I00 sg37 g38 sg39 g1170 sbag3 (g7 g8 NtRp1171 (dp1172 g11 Nsg12 I61 sg13 I01 sg14 g3 (g15 g8 NtRp1173 (dp1174 g18 g3 (g19 g5 (ltRp1175 (dp1176 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1177 (dp1178 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1179 (dp1180 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1181 (dp1182 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Internal Error' p1183 sg22 I00 sg37 g38 sg39 g1183 sbag3 (g7 g8 NtRp1184 (dp1185 g11 Nsg12 I62 sg13 I01 sg14 g3 (g15 g8 NtRp1186 (dp1187 g18 g3 (g19 g5 (ltRp1188 (dp1189 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1190 (dp1191 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1192 (dp1193 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1194 (dp1195 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Flow Control Error' p1196 sg22 I00 sg37 g38 sg39 g1196 sbag3 (g7 g8 NtRp1197 (dp1198 g11 Nsg12 I63 sg13 I01 sg14 g3 (g15 g8 NtRp1199 (dp1200 g18 g3 (g19 g5 (ltRp1201 (dp1202 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1203 (dp1204 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1205 (dp1206 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1207 (dp1208 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Settings Timeout Error' p1209 sg22 I00 sg37 g38 sg39 g1209 sbag3 (g7 g8 NtRp1210 (dp1211 g11 Nsg12 I64 sg13 I01 sg14 g3 (g15 g8 NtRp1212 (dp1213 g18 g3 (g19 g5 (ltRp1214 (dp1215 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1216 (dp1217 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1218 (dp1219 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1220 (dp1221 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Stream Closed Error' p1222 sg22 I00 sg37 g38 sg39 g1222 sbag3 (g7 g8 NtRp1223 (dp1224 g11 Nsg12 I65 sg13 I01 sg14 g3 (g15 g8 NtRp1225 (dp1226 g18 g3 (g19 g5 (ltRp1227 (dp1228 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1229 (dp1230 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1231 (dp1232 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1233 (dp1234 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Frame Size Error' p1235 sg22 I00 sg37 g38 sg39 g1235 sbag3 (g7 g8 NtRp1236 (dp1237 g11 Nsg12 I66 sg13 I01 sg14 g3 (g15 g8 NtRp1238 (dp1239 g18 g3 (g19 g5 (ltRp1240 (dp1241 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1242 (dp1243 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1244 (dp1245 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1246 (dp1247 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Refused Stream Error' p1248 sg22 I00 sg37 g38 sg39 g1248 sbag3 (g7 g8 NtRp1249 (dp1250 g11 Nsg12 I67 sg13 I01 sg14 g3 (g15 g8 NtRp1251 (dp1252 g18 g3 (g19 g5 (ltRp1253 (dp1254 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1255 (dp1256 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1257 (dp1258 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1259 (dp1260 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Stream Cancelled Error' p1261 sg22 I00 sg37 g38 sg39 g1261 sbag3 (g7 g8 NtRp1262 (dp1263 g11 Nsg12 I68 sg13 I01 sg14 g3 (g15 g8 NtRp1264 (dp1265 g18 g3 (g19 g5 (ltRp1266 (dp1267 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1268 (dp1269 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1270 (dp1271 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1272 (dp1273 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Compression Error' p1274 sg22 I00 sg37 g38 sg39 g1274 sbag3 (g7 g8 NtRp1275 (dp1276 g11 Nsg12 I69 sg13 I01 sg14 g3 (g15 g8 NtRp1277 (dp1278 g18 g3 (g19 g5 (ltRp1279 (dp1280 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1281 (dp1282 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1283 (dp1284 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1285 (dp1286 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Connect Error' p1287 sg22 I00 sg37 g38 sg39 g1287 sbag3 (g7 g8 NtRp1288 (dp1289 g11 Nsg12 I70 sg13 I01 sg14 g3 (g15 g8 NtRp1290 (dp1291 g18 g3 (g19 g5 (ltRp1292 (dp1293 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1294 (dp1295 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1296 (dp1297 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1298 (dp1299 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Enhance Calm Error' p1300 sg22 I00 sg37 g38 sg39 g1300 sbag3 (g7 g8 NtRp1301 (dp1302 g11 Nsg12 I71 sg13 I01 sg14 g3 (g15 g8 NtRp1303 (dp1304 g18 g3 (g19 g5 (ltRp1305 (dp1306 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1307 (dp1308 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1309 (dp1310 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1311 (dp1312 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 Inadequate Security Error' p1313 sg22 I00 sg37 g38 sg39 g1313 sbag3 (g7 g8 NtRp1314 (dp1315 g11 Nsg12 I72 sg13 I01 sg14 g3 (g15 g8 NtRp1316 (dp1317 g18 g3 (g19 g5 (ltRp1318 (dp1319 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1320 (dp1321 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1322 (dp1323 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1324 (dp1325 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP2 HTTP1.1 Required Error' p1326 sg22 I00 sg37 g38 sg39 g1326 sbag3 (g7 g8 NtRp1327 (dp1328 g11 Nsg12 I73 sg13 I01 sg14 g3 (g15 g8 NtRp1329 (dp1330 g18 g3 (g19 g5 (ltRp1331 (dp1332 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1333 (dp1334 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1335 (dp1336 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1337 (dp1338 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received' p1339 sg22 I00 sg37 g38 sg39 g1339 sbag3 (g7 g8 NtRp1340 (dp1341 g11 Nsg12 I74 sg13 I01 sg14 g3 (g15 g8 NtRp1342 (dp1343 g18 g3 (g19 g5 (ltRp1344 (dp1345 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1346 (dp1347 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1348 (dp1349 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1350 (dp1351 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent' p1352 sg22 I00 sg37 g38 sg39 g1352 sbag3 (g7 g8 NtRp1353 (dp1354 g11 Nsg12 I75 sg13 I01 sg14 g3 (g15 g8 NtRp1355 (dp1356 g18 g3 (g19 g5 (ltRp1357 (dp1358 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1359 (dp1360 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1361 (dp1362 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1363 (dp1364 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (close_notify)' p1365 sg22 I00 sg37 g38 sg39 g1365 sbag3 (g7 g8 NtRp1366 (dp1367 g11 Nsg12 I76 sg13 I01 sg14 g3 (g15 g8 NtRp1368 (dp1369 g18 g3 (g19 g5 (ltRp1370 (dp1371 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1372 (dp1373 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1374 (dp1375 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1376 (dp1377 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (close_notify)' p1378 sg22 I00 sg37 g38 sg39 g1378 sbag3 (g7 g8 NtRp1379 (dp1380 g11 Nsg12 I77 sg13 I01 sg14 g3 (g15 g8 NtRp1381 (dp1382 g18 g3 (g19 g5 (ltRp1383 (dp1384 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1385 (dp1386 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1387 (dp1388 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1389 (dp1390 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unexpected_message)' p1391 sg22 I00 sg37 g38 sg39 g1391 sbag3 (g7 g8 NtRp1392 (dp1393 g11 Nsg12 I78 sg13 I01 sg14 g3 (g15 g8 NtRp1394 (dp1395 g18 g3 (g19 g5 (ltRp1396 (dp1397 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1398 (dp1399 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1400 (dp1401 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1402 (dp1403 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (unexpected_message)' p1404 sg22 I00 sg37 g38 sg39 g1404 sbag3 (g7 g8 NtRp1405 (dp1406 g11 Nsg12 I79 sg13 I01 sg14 g3 (g15 g8 NtRp1407 (dp1408 g18 g3 (g19 g5 (ltRp1409 (dp1410 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1411 (dp1412 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1413 (dp1414 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1415 (dp1416 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (bad_record_mac)' p1417 sg22 I00 sg37 g38 sg39 g1417 sbag3 (g7 g8 NtRp1418 (dp1419 g11 Nsg12 I80 sg13 I01 sg14 g3 (g15 g8 NtRp1420 (dp1421 g18 g3 (g19 g5 (ltRp1422 (dp1423 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1424 (dp1425 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1426 (dp1427 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1428 (dp1429 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (bad_record_mac)' p1430 sg22 I00 sg37 g38 sg39 g1430 sbag3 (g7 g8 NtRp1431 (dp1432 g11 Nsg12 I81 sg13 I01 sg14 g3 (g15 g8 NtRp1433 (dp1434 g18 g3 (g19 g5 (ltRp1435 (dp1436 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1437 (dp1438 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1439 (dp1440 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1441 (dp1442 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decryption_failed)' p1443 sg22 I00 sg37 g38 sg39 g1443 sbag3 (g7 g8 NtRp1444 (dp1445 g11 Nsg12 I82 sg13 I01 sg14 g3 (g15 g8 NtRp1446 (dp1447 g18 g3 (g19 g5 (ltRp1448 (dp1449 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1450 (dp1451 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1452 (dp1453 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1454 (dp1455 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decryption_failed)' p1456 sg22 I00 sg37 g38 sg39 g1456 sbag3 (g7 g8 NtRp1457 (dp1458 g11 Nsg12 I83 sg13 I01 sg14 g3 (g15 g8 NtRp1459 (dp1460 g18 g3 (g19 g5 (ltRp1461 (dp1462 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1463 (dp1464 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1465 (dp1466 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1467 (dp1468 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (record_overflow)' p1469 sg22 I00 sg37 g38 sg39 g1469 sbag3 (g7 g8 NtRp1470 (dp1471 g11 Nsg12 I84 sg13 I01 sg14 g3 (g15 g8 NtRp1472 (dp1473 g18 g3 (g19 g5 (ltRp1474 (dp1475 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1476 (dp1477 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1478 (dp1479 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1480 (dp1481 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (record_overflow)' p1482 sg22 I00 sg37 g38 sg39 g1482 sbag3 (g7 g8 NtRp1483 (dp1484 g11 Nsg12 I85 sg13 I01 sg14 g3 (g15 g8 NtRp1485 (dp1486 g18 g3 (g19 g5 (ltRp1487 (dp1488 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1489 (dp1490 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1491 (dp1492 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1493 (dp1494 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decompression_failure)' p1495 sg22 I00 sg37 g38 sg39 g1495 sbag3 (g7 g8 NtRp1496 (dp1497 g11 Nsg12 I86 sg13 I01 sg14 g3 (g15 g8 NtRp1498 (dp1499 g18 g3 (g19 g5 (ltRp1500 (dp1501 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1502 (dp1503 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1504 (dp1505 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1506 (dp1507 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decompression_failure)' p1508 sg22 I00 sg37 g38 sg39 g1508 sbag3 (g7 g8 NtRp1509 (dp1510 g11 Nsg12 I87 sg13 I01 sg14 g3 (g15 g8 NtRp1511 (dp1512 g18 g3 (g19 g5 (ltRp1513 (dp1514 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1515 (dp1516 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1517 (dp1518 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1519 (dp1520 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (handshake_failure)' p1521 sg22 I00 sg37 g38 sg39 g1521 sbag3 (g7 g8 NtRp1522 (dp1523 g11 Nsg12 I88 sg13 I01 sg14 g3 (g15 g8 NtRp1524 (dp1525 g18 g3 (g19 g5 (ltRp1526 (dp1527 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1528 (dp1529 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1530 (dp1531 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1532 (dp1533 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (handshake_failure)' p1534 sg22 I00 sg37 g38 sg39 g1534 sbag3 (g7 g8 NtRp1535 (dp1536 g11 Nsg12 I89 sg13 I01 sg14 g3 (g15 g8 NtRp1537 (dp1538 g18 g3 (g19 g5 (ltRp1539 (dp1540 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1541 (dp1542 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1543 (dp1544 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1545 (dp1546 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (no_certificate)' p1547 sg22 I00 sg37 g38 sg39 g1547 sbag3 (g7 g8 NtRp1548 (dp1549 g11 Nsg12 I90 sg13 I01 sg14 g3 (g15 g8 NtRp1550 (dp1551 g18 g3 (g19 g5 (ltRp1552 (dp1553 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1554 (dp1555 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1556 (dp1557 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1558 (dp1559 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (no_certificate)' p1560 sg22 I00 sg37 g38 sg39 g1560 sbag3 (g7 g8 NtRp1561 (dp1562 g11 Nsg12 I91 sg13 I01 sg14 g3 (g15 g8 NtRp1563 (dp1564 g18 g3 (g19 g5 (ltRp1565 (dp1566 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1567 (dp1568 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1569 (dp1570 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1571 (dp1572 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (bad_certificate)' p1573 sg22 I00 sg37 g38 sg39 g1573 sbag3 (g7 g8 NtRp1574 (dp1575 g11 Nsg12 I92 sg13 I01 sg14 g3 (g15 g8 NtRp1576 (dp1577 g18 g3 (g19 g5 (ltRp1578 (dp1579 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1580 (dp1581 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1582 (dp1583 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1584 (dp1585 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (bad_certificate)' p1586 sg22 I00 sg37 g38 sg39 g1586 sbag3 (g7 g8 NtRp1587 (dp1588 g11 Nsg12 I93 sg13 I01 sg14 g3 (g15 g8 NtRp1589 (dp1590 g18 g3 (g19 g5 (ltRp1591 (dp1592 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1593 (dp1594 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1595 (dp1596 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1597 (dp1598 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unsupported_certificate)' p1599 sg22 I00 sg37 g38 sg39 g1599 sbag3 (g7 g8 NtRp1600 (dp1601 g11 Nsg12 I94 sg13 I01 sg14 g3 (g15 g8 NtRp1602 (dp1603 g18 g3 (g19 g5 (ltRp1604 (dp1605 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1606 (dp1607 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1608 (dp1609 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1610 (dp1611 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (unsupported_certificate)' p1612 sg22 I00 sg37 g38 sg39 g1612 sbag3 (g7 g8 NtRp1613 (dp1614 g11 Nsg12 I95 sg13 I01 sg14 g3 (g15 g8 NtRp1615 (dp1616 g18 g3 (g19 g5 (ltRp1617 (dp1618 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1619 (dp1620 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1621 (dp1622 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1623 (dp1624 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (certificate_revoked)' p1625 sg22 I00 sg37 g38 sg39 g1625 sbag3 (g7 g8 NtRp1626 (dp1627 g11 Nsg12 I96 sg13 I01 sg14 g3 (g15 g8 NtRp1628 (dp1629 g18 g3 (g19 g5 (ltRp1630 (dp1631 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1632 (dp1633 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1634 (dp1635 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1636 (dp1637 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (certificate_revoked)' p1638 sg22 I00 sg37 g38 sg39 g1638 sbag3 (g7 g8 NtRp1639 (dp1640 g11 Nsg12 I97 sg13 I01 sg14 g3 (g15 g8 NtRp1641 (dp1642 g18 g3 (g19 g5 (ltRp1643 (dp1644 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1645 (dp1646 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1647 (dp1648 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1649 (dp1650 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (certificate_expired)' p1651 sg22 I00 sg37 g38 sg39 g1651 sbag3 (g7 g8 NtRp1652 (dp1653 g11 Nsg12 I98 sg13 I01 sg14 g3 (g15 g8 NtRp1654 (dp1655 g18 g3 (g19 g5 (ltRp1656 (dp1657 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1658 (dp1659 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1660 (dp1661 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1662 (dp1663 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (certificate_expired)' p1664 sg22 I00 sg37 g38 sg39 g1664 sbag3 (g7 g8 NtRp1665 (dp1666 g11 Nsg12 I99 sg13 I01 sg14 g3 (g15 g8 NtRp1667 (dp1668 g18 g3 (g19 g5 (ltRp1669 (dp1670 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1671 (dp1672 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1673 (dp1674 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1675 (dp1676 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (certificate_unknown)' p1677 sg22 I00 sg37 g38 sg39 g1677 sbag3 (g7 g8 NtRp1678 (dp1679 g11 Nsg12 I100 sg13 I01 sg14 g3 (g15 g8 NtRp1680 (dp1681 g18 g3 (g19 g5 (ltRp1682 (dp1683 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1684 (dp1685 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1686 (dp1687 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1688 (dp1689 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (certificate_unknown)' p1690 sg22 I00 sg37 g38 sg39 g1690 sbag3 (g7 g8 NtRp1691 (dp1692 g11 Nsg12 I101 sg13 I01 sg14 g3 (g15 g8 NtRp1693 (dp1694 g18 g3 (g19 g5 (ltRp1695 (dp1696 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1697 (dp1698 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1699 (dp1700 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1701 (dp1702 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (illegal_parameter)' p1703 sg22 I00 sg37 g38 sg39 g1703 sbag3 (g7 g8 NtRp1704 (dp1705 g11 Nsg12 I102 sg13 I01 sg14 g3 (g15 g8 NtRp1706 (dp1707 g18 g3 (g19 g5 (ltRp1708 (dp1709 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1710 (dp1711 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1712 (dp1713 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1714 (dp1715 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (illegal_parameter)' p1716 sg22 I00 sg37 g38 sg39 g1716 sbag3 (g7 g8 NtRp1717 (dp1718 g11 Nsg12 I103 sg13 I01 sg14 g3 (g15 g8 NtRp1719 (dp1720 g18 g3 (g19 g5 (ltRp1721 (dp1722 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1723 (dp1724 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1725 (dp1726 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1727 (dp1728 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unknown_ca)' p1729 sg22 I00 sg37 g38 sg39 g1729 sbag3 (g7 g8 NtRp1730 (dp1731 g11 Nsg12 I104 sg13 I01 sg14 g3 (g15 g8 NtRp1732 (dp1733 g18 g3 (g19 g5 (ltRp1734 (dp1735 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1736 (dp1737 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1738 (dp1739 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1740 (dp1741 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (unknown_ca)' p1742 sg22 I00 sg37 g38 sg39 g1742 sbag3 (g7 g8 NtRp1743 (dp1744 g11 Nsg12 I105 sg13 I01 sg14 g3 (g15 g8 NtRp1745 (dp1746 g18 g3 (g19 g5 (ltRp1747 (dp1748 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1749 (dp1750 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1751 (dp1752 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1753 (dp1754 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (access_denied)' p1755 sg22 I00 sg37 g38 sg39 g1755 sbag3 (g7 g8 NtRp1756 (dp1757 g11 Nsg12 I106 sg13 I01 sg14 g3 (g15 g8 NtRp1758 (dp1759 g18 g3 (g19 g5 (ltRp1760 (dp1761 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1762 (dp1763 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1764 (dp1765 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1766 (dp1767 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (access_denied)' p1768 sg22 I00 sg37 g38 sg39 g1768 sbag3 (g7 g8 NtRp1769 (dp1770 g11 Nsg12 I107 sg13 I01 sg14 g3 (g15 g8 NtRp1771 (dp1772 g18 g3 (g19 g5 (ltRp1773 (dp1774 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1775 (dp1776 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1777 (dp1778 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1779 (dp1780 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decode_error)' p1781 sg22 I00 sg37 g38 sg39 g1781 sbag3 (g7 g8 NtRp1782 (dp1783 g11 Nsg12 I108 sg13 I01 sg14 g3 (g15 g8 NtRp1784 (dp1785 g18 g3 (g19 g5 (ltRp1786 (dp1787 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1788 (dp1789 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1790 (dp1791 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1792 (dp1793 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decode_error)' p1794 sg22 I00 sg37 g38 sg39 g1794 sbag3 (g7 g8 NtRp1795 (dp1796 g11 Nsg12 I109 sg13 I01 sg14 g3 (g15 g8 NtRp1797 (dp1798 g18 g3 (g19 g5 (ltRp1799 (dp1800 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1801 (dp1802 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1803 (dp1804 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1805 (dp1806 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decrypt_error)' p1807 sg22 I00 sg37 g38 sg39 g1807 sbag3 (g7 g8 NtRp1808 (dp1809 g11 Nsg12 I110 sg13 I01 sg14 g3 (g15 g8 NtRp1810 (dp1811 g18 g3 (g19 g5 (ltRp1812 (dp1813 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1814 (dp1815 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1816 (dp1817 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1818 (dp1819 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decrypt_error)' p1820 sg22 I00 sg37 g38 sg39 g1820 sbag3 (g7 g8 NtRp1821 (dp1822 g11 Nsg12 I111 sg13 I01 sg14 g3 (g15 g8 NtRp1823 (dp1824 g18 g3 (g19 g5 (ltRp1825 (dp1826 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1827 (dp1828 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1829 (dp1830 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1831 (dp1832 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (export_restriction)' p1833 sg22 I00 sg37 g38 sg39 g1833 sbag3 (g7 g8 NtRp1834 (dp1835 g11 Nsg12 I112 sg13 I01 sg14 g3 (g15 g8 NtRp1836 (dp1837 g18 g3 (g19 g5 (ltRp1838 (dp1839 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1840 (dp1841 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1842 (dp1843 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1844 (dp1845 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (export_restriction)' p1846 sg22 I00 sg37 g38 sg39 g1846 sbag3 (g7 g8 NtRp1847 (dp1848 g11 Nsg12 I113 sg13 I01 sg14 g3 (g15 g8 NtRp1849 (dp1850 g18 g3 (g19 g5 (ltRp1851 (dp1852 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1853 (dp1854 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1855 (dp1856 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1857 (dp1858 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (protocol_version)' p1859 sg22 I00 sg37 g38 sg39 g1859 sbag3 (g7 g8 NtRp1860 (dp1861 g11 Nsg12 I114 sg13 I01 sg14 g3 (g15 g8 NtRp1862 (dp1863 g18 g3 (g19 g5 (ltRp1864 (dp1865 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1866 (dp1867 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1868 (dp1869 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1870 (dp1871 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (protocol_version)' p1872 sg22 I00 sg37 g38 sg39 g1872 sbag3 (g7 g8 NtRp1873 (dp1874 g11 Nsg12 I115 sg13 I01 sg14 g3 (g15 g8 NtRp1875 (dp1876 g18 g3 (g19 g5 (ltRp1877 (dp1878 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1879 (dp1880 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1881 (dp1882 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1883 (dp1884 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (insufficient_security)' p1885 sg22 I00 sg37 g38 sg39 g1885 sbag3 (g7 g8 NtRp1886 (dp1887 g11 Nsg12 I116 sg13 I01 sg14 g3 (g15 g8 NtRp1888 (dp1889 g18 g3 (g19 g5 (ltRp1890 (dp1891 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1892 (dp1893 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1894 (dp1895 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1896 (dp1897 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (insufficient_security)' p1898 sg22 I00 sg37 g38 sg39 g1898 sbag3 (g7 g8 NtRp1899 (dp1900 g11 Nsg12 I117 sg13 I01 sg14 g3 (g15 g8 NtRp1901 (dp1902 g18 g3 (g19 g5 (ltRp1903 (dp1904 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1905 (dp1906 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1907 (dp1908 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1909 (dp1910 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (internal_error)' p1911 sg22 I00 sg37 g38 sg39 g1911 sbag3 (g7 g8 NtRp1912 (dp1913 g11 Nsg12 I118 sg13 I01 sg14 g3 (g15 g8 NtRp1914 (dp1915 g18 g3 (g19 g5 (ltRp1916 (dp1917 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1918 (dp1919 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1920 (dp1921 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1922 (dp1923 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (internal_error)' p1924 sg22 I00 sg37 g38 sg39 g1924 sbag3 (g7 g8 NtRp1925 (dp1926 g11 Nsg12 I119 sg13 I01 sg14 g3 (g15 g8 NtRp1927 (dp1928 g18 g3 (g19 g5 (ltRp1929 (dp1930 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1931 (dp1932 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1933 (dp1934 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1935 (dp1936 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (user_canceled)' p1937 sg22 I00 sg37 g38 sg39 g1937 sbag3 (g7 g8 NtRp1938 (dp1939 g11 Nsg12 I120 sg13 I01 sg14 g3 (g15 g8 NtRp1940 (dp1941 g18 g3 (g19 g5 (ltRp1942 (dp1943 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1944 (dp1945 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1946 (dp1947 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1948 (dp1949 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (user_canceled)' p1950 sg22 I00 sg37 g38 sg39 g1950 sbag3 (g7 g8 NtRp1951 (dp1952 g11 Nsg12 I121 sg13 I01 sg14 g3 (g15 g8 NtRp1953 (dp1954 g18 g3 (g19 g5 (ltRp1955 (dp1956 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1957 (dp1958 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1959 (dp1960 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1961 (dp1962 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (no_renegotiation)' p1963 sg22 I00 sg37 g38 sg39 g1963 sbag3 (g7 g8 NtRp1964 (dp1965 g11 Nsg12 I122 sg13 I01 sg14 g3 (g15 g8 NtRp1966 (dp1967 g18 g3 (g19 g5 (ltRp1968 (dp1969 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1970 (dp1971 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1972 (dp1973 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1974 (dp1975 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (no_renegotiation)' p1976 sg22 I00 sg37 g38 sg39 g1976 sbag3 (g7 g8 NtRp1977 (dp1978 g11 Nsg12 I123 sg13 I01 sg14 g3 (g15 g8 NtRp1979 (dp1980 g18 g3 (g19 g5 (ltRp1981 (dp1982 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1983 (dp1984 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1985 (dp1986 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp1987 (dp1988 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (undefined error)' p1989 sg22 I00 sg37 g38 sg39 g1989 sbag3 (g7 g8 NtRp1990 (dp1991 g11 Nsg12 I124 sg13 I01 sg14 g3 (g15 g8 NtRp1992 (dp1993 g18 g3 (g19 g5 (ltRp1994 (dp1995 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp1996 (dp1997 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp1998 (dp1999 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2000 (dp2001 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (undefined error)' p2002 sg22 I00 sg37 g38 sg39 g2002 sbag3 (g7 g8 NtRp2003 (dp2004 g11 Nsg12 I125 sg13 I01 sg14 g3 (g15 g8 NtRp2005 (dp2006 g18 g3 (g19 g5 (ltRp2007 (dp2008 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2009 (dp2010 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2011 (dp2012 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2013 (dp2014 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (no cipher)' p2015 sg22 I00 sg37 g38 sg39 g2015 sbag3 (g7 g8 NtRp2016 (dp2017 g11 Nsg12 I126 sg13 I01 sg14 g3 (g15 g8 NtRp2018 (dp2019 g18 g3 (g19 g5 (ltRp2020 (dp2021 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2022 (dp2023 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2024 (dp2025 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2026 (dp2027 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (no cipher)' p2028 sg22 I00 sg37 g38 sg39 g2028 sbag3 (g7 g8 NtRp2029 (dp2030 g11 Nsg12 I127 sg13 I01 sg14 g3 (g15 g8 NtRp2031 (dp2032 g18 g3 (g19 g5 (ltRp2033 (dp2034 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2035 (dp2036 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2037 (dp2038 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2039 (dp2040 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (no certificate)' p2041 sg22 I00 sg37 g38 sg39 g2041 sbag3 (g7 g8 NtRp2042 (dp2043 g11 Nsg12 I128 sg13 I01 sg14 g3 (g15 g8 NtRp2044 (dp2045 g18 g3 (g19 g5 (ltRp2046 (dp2047 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2048 (dp2049 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2050 (dp2051 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2052 (dp2053 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (no certificate)' p2054 sg22 I00 sg37 g38 sg39 g2054 sbag3 (g7 g8 NtRp2055 (dp2056 g11 Nsg12 I129 sg13 I01 sg14 g3 (g15 g8 NtRp2057 (dp2058 g18 g3 (g19 g5 (ltRp2059 (dp2060 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2061 (dp2062 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2063 (dp2064 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2065 (dp2066 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (bad certificate)' p2067 sg22 I00 sg37 g38 sg39 g2067 sbag3 (g7 g8 NtRp2068 (dp2069 g11 Nsg12 I130 sg13 I01 sg14 g3 (g15 g8 NtRp2070 (dp2071 g18 g3 (g19 g5 (ltRp2072 (dp2073 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2074 (dp2075 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2076 (dp2077 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2078 (dp2079 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (bad certificate)' p2080 sg22 I00 sg37 g38 sg39 g2080 sbag3 (g7 g8 NtRp2081 (dp2082 g11 Nsg12 I131 sg13 I01 sg14 g3 (g15 g8 NtRp2083 (dp2084 g18 g3 (g19 g5 (ltRp2085 (dp2086 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2087 (dp2088 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2089 (dp2090 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2091 (dp2092 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (unsupported certificate)' p2093 sg22 I00 sg37 g38 sg39 g2093 sbag3 (g7 g8 NtRp2094 (dp2095 g11 Nsg12 I132 sg13 I01 sg14 g3 (g15 g8 NtRp2096 (dp2097 g18 g3 (g19 g5 (ltRp2098 (dp2099 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2100 (dp2101 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2102 (dp2103 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2104 (dp2105 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (unsupported certificate)' p2106 sg22 I00 sg37 g38 sg39 g2106 sbag3 (g7 g8 NtRp2107 (dp2108 g11 Nsg12 I133 sg13 I01 sg14 g3 (g15 g8 NtRp2109 (dp2110 g18 g3 (g19 g5 (ltRp2111 (dp2112 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2113 (dp2114 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2115 (dp2116 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2117 (dp2118 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received' p2119 sg22 I00 sg37 g38 sg39 g2119 sbag3 (g7 g8 NtRp2120 (dp2121 g11 Nsg12 I134 sg13 I01 sg14 g3 (g15 g8 NtRp2122 (dp2123 g18 g3 (g19 g5 (ltRp2124 (dp2125 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2126 (dp2127 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2128 (dp2129 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2130 (dp2131 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent' p2132 sg22 I00 sg37 g38 sg39 g2132 sbag3 (g7 g8 NtRp2133 (dp2134 g11 Nsg12 I135 sg13 I01 sg14 g3 (g15 g8 NtRp2135 (dp2136 g18 g3 (g19 g5 (ltRp2137 (dp2138 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2139 (dp2140 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2141 (dp2142 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2143 (dp2144 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Client Hello Sent' p2145 sg22 I00 sg37 g38 sg39 g2145 sbag3 (g7 g8 NtRp2146 (dp2147 g11 Nsg12 I136 sg13 I01 sg14 g3 (g15 g8 NtRp2148 (dp2149 g18 g3 (g19 g5 (ltRp2150 (dp2151 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2152 (dp2153 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2154 (dp2155 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2156 (dp2157 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Client Hello Received' p2158 sg22 I00 sg37 g38 sg39 g2158 sbag3 (g7 g8 NtRp2159 (dp2160 g11 Nsg12 I137 sg13 I01 sg14 g3 (g15 g8 NtRp2161 (dp2162 g18 g3 (g19 g5 (ltRp2163 (dp2164 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2165 (dp2166 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2167 (dp2168 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2169 (dp2170 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Server Hello Sent' p2171 sg22 I00 sg37 g38 sg39 g2171 sbag3 (g7 g8 NtRp2172 (dp2173 g11 Nsg12 I138 sg13 I01 sg14 g3 (g15 g8 NtRp2174 (dp2175 g18 g3 (g19 g5 (ltRp2176 (dp2177 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2178 (dp2179 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2180 (dp2181 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2182 (dp2183 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Server Hello Received' p2184 sg22 I00 sg37 g38 sg39 g2184 sbag3 (g7 g8 NtRp2185 (dp2186 g11 Nsg12 I139 sg13 I01 sg14 g3 (g15 g8 NtRp2187 (dp2188 g18 g3 (g19 g5 (ltRp2189 (dp2190 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2191 (dp2192 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2193 (dp2194 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2195 (dp2196 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Hello Requests Sent' p2197 sg22 I00 sg37 g38 sg39 g2197 sbag3 (g7 g8 NtRp2198 (dp2199 g11 Nsg12 I140 sg13 I01 sg14 g3 (g15 g8 NtRp2200 (dp2201 g18 g3 (g19 g5 (ltRp2202 (dp2203 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2204 (dp2205 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2206 (dp2207 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2208 (dp2209 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Hello Requests Received' p2210 sg22 I00 sg37 g38 sg39 g2210 sbag3 (g7 g8 NtRp2211 (dp2212 g11 Nsg12 I141 sg13 I01 sg14 g3 (g15 g8 NtRp2213 (dp2214 g18 g3 (g19 g5 (ltRp2215 (dp2216 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2217 (dp2218 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2219 (dp2220 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2221 (dp2222 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Session Reuse Success' p2223 sg22 I00 sg37 g38 sg39 g2223 sbag3 (g7 g8 NtRp2224 (dp2225 g11 Nsg12 I142 sg13 I01 sg14 g3 (g15 g8 NtRp2226 (dp2227 g18 g3 (g19 g5 (ltRp2228 (dp2229 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2230 (dp2231 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2232 (dp2233 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2234 (dp2235 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Session Reuse Failed' p2236 sg22 I00 sg37 g38 sg39 g2236 sbag3 (g7 g8 NtRp2237 (dp2238 g11 Nsg12 I143 sg13 I01 sg14 g3 (g15 g8 NtRp2239 (dp2240 g18 g3 (g19 g5 (ltRp2241 (dp2242 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2243 (dp2244 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2245 (dp2246 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2247 (dp2248 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Concurrent Sessions' p2249 sg22 I00 sg37 g38 sg39 g2249 sbag3 (g7 g8 NtRp2250 (dp2251 g11 Nsg12 I144 sg13 I01 sg14 g3 (g15 g8 NtRp2252 (dp2253 g18 g3 (g19 g5 (ltRp2254 (dp2255 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2256 (dp2257 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2258 (dp2259 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2260 (dp2261 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Bytes Sent' p2262 sg22 I00 sg37 g38 sg39 g2262 sbag3 (g7 g8 NtRp2263 (dp2264 g11 Nsg12 I145 sg13 I01 sg14 g3 (g15 g8 NtRp2265 (dp2266 g18 g3 (g19 g5 (ltRp2267 (dp2268 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2269 (dp2270 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2271 (dp2272 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2273 (dp2274 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Bytes Received' p2275 sg22 I00 sg37 g38 sg39 g2275 sbag3 (g7 g8 NtRp2276 (dp2277 g11 Nsg12 I146 sg13 I01 sg14 g3 (g15 g8 NtRp2278 (dp2279 g18 g3 (g19 g5 (ltRp2280 (dp2281 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2282 (dp2283 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2284 (dp2285 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2286 (dp2287 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Throughput Bytes' p2288 sg22 I00 sg37 g38 sg39 g2288 sbag3 (g7 g8 NtRp2289 (dp2290 g11 Nsg12 I147 sg13 I01 sg14 g3 (g15 g8 NtRp2291 (dp2292 g18 g3 (g19 g5 (ltRp2293 (dp2294 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2295 (dp2296 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2297 (dp2298 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2299 (dp2300 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Application Data Bytes' p2301 sg22 I00 sg37 g38 sg39 g2301 sbag3 (g7 g8 NtRp2302 (dp2303 g11 Nsg12 I148 sg13 I01 sg14 g3 (g15 g8 NtRp2304 (dp2305 g18 g3 (g19 g5 (ltRp2306 (dp2307 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2308 (dp2309 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2310 (dp2311 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2312 (dp2313 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Certificate Validation Failure' p2314 sg22 I00 sg37 g38 sg39 g2314 sbag3 (g7 g8 NtRp2315 (dp2316 g11 Nsg12 I149 sg13 I01 sg14 g3 (g15 g8 NtRp2317 (dp2318 g18 g3 (g19 g5 (ltRp2319 (dp2320 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2321 (dp2322 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2323 (dp2324 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2325 (dp2326 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Certificate Self Signed' p2327 sg22 I00 sg37 g38 sg39 g2327 sbag3 (g7 g8 NtRp2328 (dp2329 g11 Nsg12 I150 sg13 I01 sg14 g3 (g15 g8 NtRp2330 (dp2331 g18 g3 (g19 g5 (ltRp2332 (dp2333 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2334 (dp2335 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2336 (dp2337 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2338 (dp2339 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Certificate CA Signed' p2340 sg22 I00 sg37 g38 sg39 g2340 sbag3 (g7 g8 NtRp2341 (dp2342 g11 Nsg12 I151 sg13 I01 sg14 g3 (g15 g8 NtRp2343 (dp2344 g18 g3 (g19 g5 (ltRp2345 (dp2346 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2347 (dp2348 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2349 (dp2350 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2351 (dp2352 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unrecognized name)' p2353 sg22 I00 sg37 g38 sg39 g2353 sbag3 (g7 g8 NtRp2354 (dp2355 g11 Nsg12 I152 sg13 I01 sg14 g3 (g15 g8 NtRp2356 (dp2357 g18 g3 (g19 g5 (ltRp2358 (dp2359 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2360 (dp2361 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2362 (dp2363 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2364 (dp2365 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL SNI extension sent successfully' p2366 sg22 I00 sg37 g38 sg39 g2366 sbag3 (g7 g8 NtRp2367 (dp2368 g11 Nsg12 I153 sg13 I01 sg14 g3 (g15 g8 NtRp2369 (dp2370 g18 g3 (g19 g5 (ltRp2371 (dp2372 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2373 (dp2374 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2375 (dp2376 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2377 (dp2378 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL SNI extension mismatch' p2379 sg22 I00 sg37 g38 sg39 g2379 sbag3 (g7 g8 NtRp2380 (dp2381 g11 Nsg12 I154 sg13 I01 sg14 g3 (g15 g8 NtRp2382 (dp2383 g18 g3 (g19 g5 (ltRp2384 (dp2385 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2386 (dp2387 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2388 (dp2389 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2390 (dp2391 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL session ticket reuse success' p2392 sg22 I00 sg37 g38 sg39 g2392 sbag3 (g7 g8 NtRp2393 (dp2394 g11 Nsg12 I155 sg13 I01 sg14 g3 (g15 g8 NtRp2395 (dp2396 g18 g3 (g19 g5 (ltRp2397 (dp2398 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2399 (dp2400 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2401 (dp2402 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2403 (dp2404 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL session ticket reuse failure' p2405 sg22 I00 sg37 g38 sg39 g2405 sbag3 (g7 g8 NtRp2406 (dp2407 g11 Nsg12 I156 sg13 I01 sg14 g3 (g15 g8 NtRp2408 (dp2409 g18 g3 (g19 g5 (ltRp2410 (dp2411 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2412 (dp2413 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2414 (dp2415 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2416 (dp2417 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Negotiation Finished Successfully' p2418 sg22 I00 sg37 g38 sg39 g2418 sbag3 (g7 g8 NtRp2419 (dp2420 g11 Nsg12 I157 sg13 I01 sg14 g3 (g15 g8 NtRp2421 (dp2422 g18 g3 (g19 g5 (ltRp2423 (dp2424 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2425 (dp2426 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2427 (dp2428 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2429 (dp2430 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Negotiation Finished Successfuly' p2431 sg22 I00 sg37 g38 sg39 g2431 sbag3 (g7 g8 NtRp2432 (dp2433 g11 Nsg12 I158 sg13 I01 sg14 g3 (g15 g8 NtRp2434 (dp2435 g18 g3 (g19 g5 (ltRp2436 (dp2437 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2438 (dp2439 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2440 (dp2441 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2442 (dp2443 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN Sent' p2444 sg22 I00 sg37 g38 sg39 g2444 sbag3 (g7 g8 NtRp2445 (dp2446 g11 Nsg12 I159 sg13 I01 sg14 g3 (g15 g8 NtRp2447 (dp2448 g18 g3 (g19 g5 (ltRp2449 (dp2450 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2451 (dp2452 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2453 (dp2454 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2455 (dp2456 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN_SYN-ACK Received' p2457 sg22 I00 sg37 g38 sg39 g2457 sbag3 (g7 g8 NtRp2458 (dp2459 g11 Nsg12 I160 sg13 I01 sg14 g3 (g15 g8 NtRp2460 (dp2461 g18 g3 (g19 g5 (ltRp2462 (dp2463 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2464 (dp2465 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2466 (dp2467 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2468 (dp2469 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN Failed' p2470 sg22 I00 sg37 g38 sg39 g2470 sbag3 (g7 g8 NtRp2471 (dp2472 g11 Nsg12 I161 sg13 I01 sg14 g3 (g15 g8 NtRp2473 (dp2474 g18 g3 (g19 g5 (ltRp2475 (dp2476 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2477 (dp2478 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2479 (dp2480 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2481 (dp2482 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN-ACK Sent' p2483 sg22 I00 sg37 g38 sg39 g2483 sbag3 (g7 g8 NtRp2484 (dp2485 g11 Nsg12 I162 sg13 I01 sg14 g3 (g15 g8 NtRp2486 (dp2487 g18 g3 (g19 g5 (ltRp2488 (dp2489 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2490 (dp2491 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2492 (dp2493 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2494 (dp2495 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connection Requests Failed' p2496 sg22 I00 sg37 g38 sg39 g2496 sbag3 (g7 g8 NtRp2497 (dp2498 g11 Nsg12 I163 sg13 I01 sg14 g3 (g15 g8 NtRp2499 (dp2500 g18 g3 (g19 g5 (ltRp2501 (dp2502 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2503 (dp2504 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2505 (dp2506 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2507 (dp2508 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections Established' p2509 sg22 I00 sg37 g38 sg39 g2509 sbag3 (g7 g8 NtRp2510 (dp2511 g11 Nsg12 I164 sg13 I01 sg14 g3 (g15 g8 NtRp2512 (dp2513 g18 g3 (g19 g5 (ltRp2514 (dp2515 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2516 (dp2517 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2518 (dp2519 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2520 (dp2521 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN Sent' p2522 sg22 I00 sg37 g38 sg39 g2522 sbag3 (g7 g8 NtRp2523 (dp2524 g11 Nsg12 I165 sg13 I01 sg14 g3 (g15 g8 NtRp2525 (dp2526 g18 g3 (g19 g5 (ltRp2527 (dp2528 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2529 (dp2530 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2531 (dp2532 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2533 (dp2534 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN Received' p2535 sg22 I00 sg37 g38 sg39 g2535 sbag3 (g7 g8 NtRp2536 (dp2537 g11 Nsg12 I166 sg13 I01 sg14 g3 (g15 g8 NtRp2538 (dp2539 g18 g3 (g19 g5 (ltRp2540 (dp2541 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2542 (dp2543 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2544 (dp2545 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2546 (dp2547 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN-ACK Sent' p2548 sg22 I00 sg37 g38 sg39 g2548 sbag3 (g7 g8 NtRp2549 (dp2550 g11 Nsg12 I167 sg13 I01 sg14 g3 (g15 g8 NtRp2551 (dp2552 g18 g3 (g19 g5 (ltRp2553 (dp2554 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2555 (dp2556 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2557 (dp2558 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2559 (dp2560 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN-ACK Received' p2561 sg22 I00 sg37 g38 sg39 g2561 sbag3 (g7 g8 NtRp2562 (dp2563 g11 Nsg12 I168 sg13 I01 sg14 g3 (g15 g8 NtRp2564 (dp2565 g18 g3 (g19 g5 (ltRp2566 (dp2567 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2568 (dp2569 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2570 (dp2571 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2572 (dp2573 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Resets Sent' p2574 sg22 I00 sg37 g38 sg39 g2574 sbag3 (g7 g8 NtRp2575 (dp2576 g11 Nsg12 I169 sg13 I01 sg14 g3 (g15 g8 NtRp2577 (dp2578 g18 g3 (g19 g5 (ltRp2579 (dp2580 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2581 (dp2582 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2583 (dp2584 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2585 (dp2586 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Resets Received' p2587 sg22 I00 sg37 g38 sg39 g2587 sbag3 (g7 g8 NtRp2588 (dp2589 g11 Nsg12 I170 sg13 I01 sg14 g3 (g15 g8 NtRp2590 (dp2591 g18 g3 (g19 g5 (ltRp2592 (dp2593 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2594 (dp2595 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2596 (dp2597 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2598 (dp2599 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Retries' p2600 sg22 I00 sg37 g38 sg39 g2600 sbag3 (g7 g8 NtRp2601 (dp2602 g11 Nsg12 I171 sg13 I01 sg14 g3 (g15 g8 NtRp2603 (dp2604 g18 g3 (g19 g5 (ltRp2605 (dp2606 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2607 (dp2608 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2609 (dp2610 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2611 (dp2612 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Timeouts' p2613 sg22 I00 sg37 g38 sg39 g2613 sbag3 (g7 g8 NtRp2614 (dp2615 g11 Nsg12 I172 sg13 I01 sg14 g3 (g15 g8 NtRp2616 (dp2617 g18 g3 (g19 g5 (ltRp2618 (dp2619 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2620 (dp2621 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2622 (dp2623 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2624 (dp2625 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Accept Queue Entries' p2626 sg22 I00 sg37 g38 sg39 g2626 sbag3 (g7 g8 NtRp2627 (dp2628 g11 Nsg12 I173 sg13 I01 sg14 g3 (g15 g8 NtRp2629 (dp2630 g18 g3 (g19 g5 (ltRp2631 (dp2632 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2633 (dp2634 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2635 (dp2636 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2637 (dp2638 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Listen Queue Drops' p2639 sg22 I00 sg37 g38 sg39 g2639 sbag3 (g7 g8 NtRp2640 (dp2641 g11 Nsg12 I174 sg13 I01 sg14 g3 (g15 g8 NtRp2642 (dp2643 g18 g3 (g19 g5 (ltRp2644 (dp2645 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2646 (dp2647 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2648 (dp2649 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2650 (dp2651 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in ESTABLISHED State' p2652 sg22 I00 sg37 g38 sg39 g2652 sbag3 (g7 g8 NtRp2653 (dp2654 g11 Nsg12 I175 sg13 I01 sg14 g3 (g15 g8 NtRp2655 (dp2656 g18 g3 (g19 g5 (ltRp2657 (dp2658 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2659 (dp2660 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2661 (dp2662 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2663 (dp2664 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in SYN-SENT State' p2665 sg22 I00 sg37 g38 sg39 g2665 sbag3 (g7 g8 NtRp2666 (dp2667 g11 Nsg12 I176 sg13 I01 sg14 g3 (g15 g8 NtRp2668 (dp2669 g18 g3 (g19 g5 (ltRp2670 (dp2671 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2672 (dp2673 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2674 (dp2675 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2676 (dp2677 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in SYN-RECEIVED State' p2678 sg22 I00 sg37 g38 sg39 g2678 sbag3 (g7 g8 NtRp2679 (dp2680 g11 Nsg12 I177 sg13 I01 sg14 g3 (g15 g8 NtRp2681 (dp2682 g18 g3 (g19 g5 (ltRp2683 (dp2684 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2685 (dp2686 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2687 (dp2688 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2689 (dp2690 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in FIN-WAIT-1 State' p2691 sg22 I00 sg37 g38 sg39 g2691 sbag3 (g7 g8 NtRp2692 (dp2693 g11 Nsg12 I178 sg13 I01 sg14 g3 (g15 g8 NtRp2694 (dp2695 g18 g3 (g19 g5 (ltRp2696 (dp2697 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2698 (dp2699 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2700 (dp2701 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2702 (dp2703 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in FIN-WAIT-2 State' p2704 sg22 I00 sg37 g38 sg39 g2704 sbag3 (g7 g8 NtRp2705 (dp2706 g11 Nsg12 I179 sg13 I01 sg14 g3 (g15 g8 NtRp2707 (dp2708 g18 g3 (g19 g5 (ltRp2709 (dp2710 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2711 (dp2712 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2713 (dp2714 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2715 (dp2716 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in TIME-WAIT State' p2717 sg22 I00 sg37 g38 sg39 g2717 sbag3 (g7 g8 NtRp2718 (dp2719 g11 Nsg12 I180 sg13 I01 sg14 g3 (g15 g8 NtRp2720 (dp2721 g18 g3 (g19 g5 (ltRp2722 (dp2723 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2724 (dp2725 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2726 (dp2727 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2728 (dp2729 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in CLOSE STATE' p2730 sg22 I00 sg37 g38 sg39 g2730 sbag3 (g7 g8 NtRp2731 (dp2732 g11 Nsg12 I181 sg13 I01 sg14 g3 (g15 g8 NtRp2733 (dp2734 g18 g3 (g19 g5 (ltRp2735 (dp2736 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2737 (dp2738 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2739 (dp2740 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2741 (dp2742 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in CLOSE-WAIT State' p2743 sg22 I00 sg37 g38 sg39 g2743 sbag3 (g7 g8 NtRp2744 (dp2745 g11 Nsg12 I182 sg13 I01 sg14 g3 (g15 g8 NtRp2746 (dp2747 g18 g3 (g19 g5 (ltRp2748 (dp2749 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2750 (dp2751 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2752 (dp2753 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2754 (dp2755 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in LAST-ACK State' p2756 sg22 I00 sg37 g38 sg39 g2756 sbag3 (g7 g8 NtRp2757 (dp2758 g11 Nsg12 I183 sg13 I01 sg14 g3 (g15 g8 NtRp2759 (dp2760 g18 g3 (g19 g5 (ltRp2761 (dp2762 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2763 (dp2764 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2765 (dp2766 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2767 (dp2768 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in LISTENING State' p2769 sg22 I00 sg37 g38 sg39 g2769 sbag3 (g7 g8 NtRp2770 (dp2771 g11 Nsg12 I184 sg13 I01 sg14 g3 (g15 g8 NtRp2772 (dp2773 g18 g3 (g19 g5 (ltRp2774 (dp2775 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2776 (dp2777 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2778 (dp2779 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2780 (dp2781 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in CLOSING State' p2782 sg22 I00 sg37 g38 sg39 g2782 sbag3 (g7 g8 NtRp2783 (dp2784 g11 Nsg12 I185 sg13 I01 sg14 g3 (g15 g8 NtRp2785 (dp2786 g18 g3 (g19 g5 (ltRp2787 (dp2788 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2789 (dp2790 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2791 (dp2792 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2793 (dp2794 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Internally Aborted Connections' p2795 sg22 I00 sg37 g38 sg39 g2795 sbatRp2796 (dp2797 g12 I185 sg22 I00 sg11 NsbsS'HTTP Client Per URL' p2798 g3 (g4 g5 (lp2799 g3 (g7 g8 NtRp2800 (dp2801 g11 Nsg12 I0 sg13 I01 sg14 g3 (g15 g8 NtRp2802 (dp2803 g18 g3 (g19 g5 (ltRp2804 (dp2805 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2806 (dp2807 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2808 (dp2809 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2810 (dp2811 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Sent' p2812 sg22 I00 sg37 g38 sg39 g2812 sbag3 (g7 g8 NtRp2813 (dp2814 g11 Nsg12 I1 sg13 I01 sg14 g3 (g15 g8 NtRp2815 (dp2816 g18 g3 (g19 g5 (ltRp2817 (dp2818 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2819 (dp2820 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2821 (dp2822 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2823 (dp2824 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful' p2825 sg22 I00 sg37 g38 sg39 g2825 sbag3 (g7 g8 NtRp2826 (dp2827 g11 Nsg12 I2 sg13 I01 sg14 g3 (g15 g8 NtRp2828 (dp2829 g18 g3 (g19 g5 (ltRp2830 (dp2831 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2832 (dp2833 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2834 (dp2835 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2836 (dp2837 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (Provisional)' p2838 sg22 I00 sg37 g38 sg39 g2838 sbag3 (g7 g8 NtRp2839 (dp2840 g11 Nsg12 I3 sg13 I01 sg14 g3 (g15 g8 NtRp2841 (dp2842 g18 g3 (g19 g5 (ltRp2843 (dp2844 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2845 (dp2846 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2847 (dp2848 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2849 (dp2850 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed' p2851 sg22 I00 sg37 g38 sg39 g2851 sbag3 (g7 g8 NtRp2852 (dp2853 g11 Nsg12 I4 sg13 I01 sg14 g3 (g15 g8 NtRp2854 (dp2855 g18 g3 (g19 g5 (ltRp2856 (dp2857 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2858 (dp2859 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2860 (dp2861 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2862 (dp2863 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Write)' p2864 sg22 I00 sg37 g38 sg39 g2864 sbag3 (g7 g8 NtRp2865 (dp2866 g11 Nsg12 I5 sg13 I01 sg14 g3 (g15 g8 NtRp2867 (dp2868 g18 g3 (g19 g5 (ltRp2869 (dp2870 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2871 (dp2872 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2873 (dp2874 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2875 (dp2876 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Read)' p2877 sg22 I00 sg37 g38 sg39 g2877 sbag3 (g7 g8 NtRp2878 (dp2879 g11 Nsg12 I6 sg13 I01 sg14 g3 (g15 g8 NtRp2880 (dp2881 g18 g3 (g19 g5 (ltRp2882 (dp2883 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2884 (dp2885 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2886 (dp2887 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2888 (dp2889 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Bad Header)' p2890 sg22 I00 sg37 g38 sg39 g2890 sbag3 (g7 g8 NtRp2891 (dp2892 g11 Nsg12 I7 sg13 I01 sg14 g3 (g15 g8 NtRp2893 (dp2894 g18 g3 (g19 g5 (ltRp2895 (dp2896 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2897 (dp2898 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2899 (dp2900 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2901 (dp2902 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (4xx)' p2903 sg22 I00 sg37 g38 sg39 g2903 sbag3 (g7 g8 NtRp2904 (dp2905 g11 Nsg12 I8 sg13 I01 sg14 g3 (g15 g8 NtRp2906 (dp2907 g18 g3 (g19 g5 (ltRp2908 (dp2909 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2910 (dp2911 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2912 (dp2913 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2914 (dp2915 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (400)' p2916 sg22 I00 sg37 g38 sg39 g2916 sbag3 (g7 g8 NtRp2917 (dp2918 g11 Nsg12 I9 sg13 I01 sg14 g3 (g15 g8 NtRp2919 (dp2920 g18 g3 (g19 g5 (ltRp2921 (dp2922 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2923 (dp2924 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2925 (dp2926 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2927 (dp2928 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (401)' p2929 sg22 I00 sg37 g38 sg39 g2929 sbag3 (g7 g8 NtRp2930 (dp2931 g11 Nsg12 I10 sg13 I01 sg14 g3 (g15 g8 NtRp2932 (dp2933 g18 g3 (g19 g5 (ltRp2934 (dp2935 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2936 (dp2937 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2938 (dp2939 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2940 (dp2941 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (403)' p2942 sg22 I00 sg37 g38 sg39 g2942 sbag3 (g7 g8 NtRp2943 (dp2944 g11 Nsg12 I11 sg13 I01 sg14 g3 (g15 g8 NtRp2945 (dp2946 g18 g3 (g19 g5 (ltRp2947 (dp2948 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2949 (dp2950 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2951 (dp2952 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2953 (dp2954 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (404)' p2955 sg22 I00 sg37 g38 sg39 g2955 sbag3 (g7 g8 NtRp2956 (dp2957 g11 Nsg12 I12 sg13 I01 sg14 g3 (g15 g8 NtRp2958 (dp2959 g18 g3 (g19 g5 (ltRp2960 (dp2961 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2962 (dp2963 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2964 (dp2965 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2966 (dp2967 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (407)' p2968 sg22 I00 sg37 g38 sg39 g2968 sbag3 (g7 g8 NtRp2969 (dp2970 g11 Nsg12 I13 sg13 I01 sg14 g3 (g15 g8 NtRp2971 (dp2972 g18 g3 (g19 g5 (ltRp2973 (dp2974 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2975 (dp2976 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2977 (dp2978 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2979 (dp2980 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (408)' p2981 sg22 I00 sg37 g38 sg39 g2981 sbag3 (g7 g8 NtRp2982 (dp2983 g11 Nsg12 I14 sg13 I01 sg14 g3 (g15 g8 NtRp2984 (dp2985 g18 g3 (g19 g5 (ltRp2986 (dp2987 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp2988 (dp2989 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp2990 (dp2991 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp2992 (dp2993 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (4xx other)' p2994 sg22 I00 sg37 g38 sg39 g2994 sbag3 (g7 g8 NtRp2995 (dp2996 g11 Nsg12 I15 sg13 I01 sg14 g3 (g15 g8 NtRp2997 (dp2998 g18 g3 (g19 g5 (ltRp2999 (dp3000 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3001 (dp3002 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3003 (dp3004 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3005 (dp3006 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (5xx)' p3007 sg22 I00 sg37 g38 sg39 g3007 sbag3 (g7 g8 NtRp3008 (dp3009 g11 Nsg12 I16 sg13 I01 sg14 g3 (g15 g8 NtRp3010 (dp3011 g18 g3 (g19 g5 (ltRp3012 (dp3013 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3014 (dp3015 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3016 (dp3017 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3018 (dp3019 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (505)' p3020 sg22 I00 sg37 g38 sg39 g3020 sbag3 (g7 g8 NtRp3021 (dp3022 g11 Nsg12 I17 sg13 I01 sg14 g3 (g15 g8 NtRp3023 (dp3024 g18 g3 (g19 g5 (ltRp3025 (dp3026 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3027 (dp3028 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3029 (dp3030 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3031 (dp3032 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (5xx other)' p3033 sg22 I00 sg37 g38 sg39 g3033 sbag3 (g7 g8 NtRp3034 (dp3035 g11 Nsg12 I18 sg13 I01 sg14 g3 (g15 g8 NtRp3036 (dp3037 g18 g3 (g19 g5 (ltRp3038 (dp3039 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3040 (dp3041 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3042 (dp3043 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3044 (dp3045 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (other)' p3046 sg22 I00 sg37 g38 sg39 g3046 sbag3 (g7 g8 NtRp3047 (dp3048 g11 Nsg12 I19 sg13 I01 sg14 g3 (g15 g8 NtRp3049 (dp3050 g18 g3 (g19 g5 (ltRp3051 (dp3052 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3053 (dp3054 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3055 (dp3056 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3057 (dp3058 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Timeout)' p3059 sg22 I00 sg37 g38 sg39 g3059 sbag3 (g7 g8 NtRp3060 (dp3061 g11 Nsg12 I20 sg13 I01 sg14 g3 (g15 g8 NtRp3062 (dp3063 g18 g3 (g19 g5 (ltRp3064 (dp3065 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3066 (dp3067 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3068 (dp3069 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3070 (dp3071 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Failed (Aborted)' p3072 sg22 I00 sg37 g38 sg39 g3072 sbag3 (g7 g8 NtRp3073 (dp3074 g11 Nsg12 I21 sg13 I01 sg14 g3 (g15 g8 NtRp3075 (dp3076 g18 g3 (g19 g5 (ltRp3077 (dp3078 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3079 (dp3080 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3081 (dp3082 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3083 (dp3084 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Aborted Before Request' p3085 sg22 I00 sg37 g38 sg39 g3085 sbag3 (g7 g8 NtRp3086 (dp3087 g11 Nsg12 I22 sg13 I01 sg14 g3 (g15 g8 NtRp3088 (dp3089 g18 g3 (g19 g5 (ltRp3090 (dp3091 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3092 (dp3093 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3094 (dp3095 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3096 (dp3097 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Aborted After Request' p3098 sg22 I00 sg37 g38 sg39 g3098 sbag3 (g7 g8 NtRp3099 (dp3100 g11 Nsg12 I23 sg13 I01 sg14 g3 (g15 g8 NtRp3101 (dp3102 g18 g3 (g19 g5 (ltRp3103 (dp3104 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3105 (dp3106 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3107 (dp3108 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3109 (dp3110 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Received With Match' p3111 sg22 I00 sg37 g38 sg39 g3111 sbag3 (g7 g8 NtRp3112 (dp3113 g11 Nsg12 I24 sg13 I01 sg14 g3 (g15 g8 NtRp3114 (dp3115 g18 g3 (g19 g5 (ltRp3116 (dp3117 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3118 (dp3119 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3120 (dp3121 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3122 (dp3123 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Responses Received Without Match' p3124 sg22 I00 sg37 g38 sg39 g3124 sbag3 (g7 g8 NtRp3125 (dp3126 g11 Nsg12 I25 sg13 I01 sg14 g3 (g15 g8 NtRp3127 (dp3128 g18 g3 (g19 g5 (ltRp3129 (dp3130 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3131 (dp3132 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3133 (dp3134 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3135 (dp3136 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Intermediate Responses Received (1xx)' p3137 sg22 I00 sg37 g38 sg39 g3137 sbag3 (g7 g8 NtRp3138 (dp3139 g11 Nsg12 I26 sg13 I01 sg14 g3 (g15 g8 NtRp3140 (dp3141 g18 g3 (g19 g5 (ltRp3142 (dp3143 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3144 (dp3145 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3146 (dp3147 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3148 (dp3149 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (2xx)' p3150 sg22 I00 sg37 g38 sg39 g3150 sbag3 (g7 g8 NtRp3151 (dp3152 g11 Nsg12 I27 sg13 I01 sg14 g3 (g15 g8 NtRp3153 (dp3154 g18 g3 (g19 g5 (ltRp3155 (dp3156 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3157 (dp3158 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3159 (dp3160 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3161 (dp3162 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (3xx)' p3163 sg22 I00 sg37 g38 sg39 g3163 sbag3 (g7 g8 NtRp3164 (dp3165 g11 Nsg12 I28 sg13 I01 sg14 g3 (g15 g8 NtRp3166 (dp3167 g18 g3 (g19 g5 (ltRp3168 (dp3169 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3170 (dp3171 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3172 (dp3173 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3174 (dp3175 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (301)' p3176 sg22 I00 sg37 g38 sg39 g3176 sbag3 (g7 g8 NtRp3177 (dp3178 g11 Nsg12 I29 sg13 I01 sg14 g3 (g15 g8 NtRp3179 (dp3180 g18 g3 (g19 g5 (ltRp3181 (dp3182 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3183 (dp3184 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3185 (dp3186 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3187 (dp3188 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (302)' p3189 sg22 I00 sg37 g38 sg39 g3189 sbag3 (g7 g8 NtRp3190 (dp3191 g11 Nsg12 I30 sg13 I01 sg14 g3 (g15 g8 NtRp3192 (dp3193 g18 g3 (g19 g5 (ltRp3194 (dp3195 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3196 (dp3197 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3198 (dp3199 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3200 (dp3201 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (303)' p3202 sg22 I00 sg37 g38 sg39 g3202 sbag3 (g7 g8 NtRp3203 (dp3204 g11 Nsg12 I31 sg13 I01 sg14 g3 (g15 g8 NtRp3205 (dp3206 g18 g3 (g19 g5 (ltRp3207 (dp3208 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3209 (dp3210 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3211 (dp3212 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3213 (dp3214 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Requests Successful (307)' p3215 sg22 I00 sg37 g38 sg39 g3215 sbag3 (g7 g8 NtRp3216 (dp3217 g11 Nsg12 I32 sg13 I01 sg14 g3 (g15 g8 NtRp3218 (dp3219 g18 g3 (g19 g5 (ltRp3220 (dp3221 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3222 (dp3223 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3224 (dp3225 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3226 (dp3227 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Requests Sent' p3228 sg22 I00 sg37 g38 sg39 g3228 sbag3 (g7 g8 NtRp3229 (dp3230 g11 Nsg12 I33 sg13 I01 sg14 g3 (g15 g8 NtRp3231 (dp3232 g18 g3 (g19 g5 (ltRp3233 (dp3234 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3235 (dp3236 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3237 (dp3238 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3239 (dp3240 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Headers Received' p3241 sg22 I00 sg37 g38 sg39 g3241 sbag3 (g7 g8 NtRp3242 (dp3243 g11 Nsg12 I34 sg13 I01 sg14 g3 (g15 g8 NtRp3244 (dp3245 g18 g3 (g19 g5 (ltRp3246 (dp3247 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3248 (dp3249 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3250 (dp3251 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3252 (dp3253 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Responses Received' p3254 sg22 I00 sg37 g38 sg39 g3254 sbag3 (g7 g8 NtRp3255 (dp3256 g11 Nsg12 I35 sg13 I01 sg14 g3 (g15 g8 NtRp3257 (dp3258 g18 g3 (g19 g5 (ltRp3259 (dp3260 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3261 (dp3262 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3263 (dp3264 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3265 (dp3266 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Responses Successful' p3267 sg22 I00 sg37 g38 sg39 g3267 sbag3 (g7 g8 NtRp3268 (dp3269 g11 Nsg12 I36 sg13 I01 sg14 g3 (g15 g8 NtRp3270 (dp3271 g18 g3 (g19 g5 (ltRp3272 (dp3273 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3274 (dp3275 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3276 (dp3277 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3278 (dp3279 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Responses Failed' p3280 sg22 I00 sg37 g38 sg39 g3280 sbag3 (g7 g8 NtRp3281 (dp3282 g11 Nsg12 I37 sg13 I01 sg14 g3 (g15 g8 NtRp3283 (dp3284 g18 g3 (g19 g5 (ltRp3285 (dp3286 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3287 (dp3288 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3289 (dp3290 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3291 (dp3292 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Total Chunks Received' p3293 sg22 I00 sg37 g38 sg39 g3293 sbag3 (g7 g8 NtRp3294 (dp3295 g11 Nsg12 I38 sg13 I01 sg14 g3 (g15 g8 NtRp3296 (dp3297 g18 g3 (g19 g5 (ltRp3298 (dp3299 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3300 (dp3301 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3302 (dp3303 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3304 (dp3305 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunk Size' p3306 sg22 I00 sg37 g261 sg39 g3306 sbag3 (g7 g8 NtRp3307 (dp3308 g11 Nsg12 I39 sg13 I01 sg14 g3 (g15 g8 NtRp3309 (dp3310 g18 g3 (g19 g5 (ltRp3311 (dp3312 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3313 (dp3314 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3315 (dp3316 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3317 (dp3318 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunks per Response' p3319 sg22 I00 sg37 g261 sg39 g3319 sbag3 (g7 g8 NtRp3320 (dp3321 g11 Nsg12 I40 sg13 I01 sg14 g3 (g15 g8 NtRp3322 (dp3323 g18 g3 (g19 g5 (ltRp3324 (dp3325 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3326 (dp3327 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3328 (dp3329 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3330 (dp3331 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Chunk Encoded Requests Sent' p3332 sg22 I00 sg37 g38 sg39 g3332 sbag3 (g7 g8 NtRp3333 (dp3334 g11 Nsg12 I41 sg13 I01 sg14 g3 (g15 g8 NtRp3335 (dp3336 g18 g3 (g19 g5 (ltRp3337 (dp3338 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3339 (dp3340 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3341 (dp3342 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3343 (dp3344 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Total Chunks Sent' p3345 sg22 I00 sg37 g38 sg39 g3345 sbag3 (g7 g8 NtRp3346 (dp3347 g11 Nsg12 I42 sg13 I01 sg14 g3 (g15 g8 NtRp3348 (dp3349 g18 g3 (g19 g5 (ltRp3350 (dp3351 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3352 (dp3353 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3354 (dp3355 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3356 (dp3357 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunk Size in Request' p3358 sg22 I00 sg37 g261 sg39 g3358 sbag3 (g7 g8 NtRp3359 (dp3360 g11 Nsg12 I43 sg13 I01 sg14 g3 (g15 g8 NtRp3361 (dp3362 g18 g3 (g19 g5 (ltRp3363 (dp3364 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3365 (dp3366 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3367 (dp3368 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3369 (dp3370 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Average Chunks per Request' p3371 sg22 I00 sg37 g261 sg39 g3371 sbag3 (g7 g8 NtRp3372 (dp3373 g11 Nsg12 I44 sg13 I01 sg14 g3 (g15 g8 NtRp3374 (dp3375 g18 g3 (g19 g5 (ltRp3376 (dp3377 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3378 (dp3379 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3380 (dp3381 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3382 (dp3383 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name1-Value1' p3384 sg22 I00 sg37 S'kString' p3385 sg39 g3384 sbag3 (g7 g8 NtRp3386 (dp3387 g11 Nsg12 I45 sg13 I01 sg14 g3 (g15 g8 NtRp3388 (dp3389 g18 g3 (g19 g5 (ltRp3390 (dp3391 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3392 (dp3393 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3394 (dp3395 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3396 (dp3397 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter1' p3398 sg22 I00 sg37 g38 sg39 g3398 sbag3 (g7 g8 NtRp3399 (dp3400 g11 Nsg12 I46 sg13 I01 sg14 g3 (g15 g8 NtRp3401 (dp3402 g18 g3 (g19 g5 (ltRp3403 (dp3404 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3405 (dp3406 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3407 (dp3408 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3409 (dp3410 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name2-Value2' p3411 sg22 I00 sg37 g3385 sg39 g3411 sbag3 (g7 g8 NtRp3412 (dp3413 g11 Nsg12 I47 sg13 I01 sg14 g3 (g15 g8 NtRp3414 (dp3415 g18 g3 (g19 g5 (ltRp3416 (dp3417 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3418 (dp3419 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3420 (dp3421 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3422 (dp3423 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter2' p3424 sg22 I00 sg37 g38 sg39 g3424 sbag3 (g7 g8 NtRp3425 (dp3426 g11 Nsg12 I48 sg13 I01 sg14 g3 (g15 g8 NtRp3427 (dp3428 g18 g3 (g19 g5 (ltRp3429 (dp3430 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3431 (dp3432 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3433 (dp3434 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3435 (dp3436 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name3-Value3' p3437 sg22 I00 sg37 g3385 sg39 g3437 sbag3 (g7 g8 NtRp3438 (dp3439 g11 Nsg12 I49 sg13 I01 sg14 g3 (g15 g8 NtRp3440 (dp3441 g18 g3 (g19 g5 (ltRp3442 (dp3443 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3444 (dp3445 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3446 (dp3447 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3448 (dp3449 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter3' p3450 sg22 I00 sg37 g38 sg39 g3450 sbag3 (g7 g8 NtRp3451 (dp3452 g11 Nsg12 I50 sg13 I01 sg14 g3 (g15 g8 NtRp3453 (dp3454 g18 g3 (g19 g5 (ltRp3455 (dp3456 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3457 (dp3458 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3459 (dp3460 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3461 (dp3462 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name4-Value4' p3463 sg22 I00 sg37 g3385 sg39 g3463 sbag3 (g7 g8 NtRp3464 (dp3465 g11 Nsg12 I51 sg13 I01 sg14 g3 (g15 g8 NtRp3466 (dp3467 g18 g3 (g19 g5 (ltRp3468 (dp3469 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3470 (dp3471 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3472 (dp3473 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3474 (dp3475 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter4' p3476 sg22 I00 sg37 g38 sg39 g3476 sbag3 (g7 g8 NtRp3477 (dp3478 g11 Nsg12 I52 sg13 I01 sg14 g3 (g15 g8 NtRp3479 (dp3480 g18 g3 (g19 g5 (ltRp3481 (dp3482 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3483 (dp3484 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3485 (dp3486 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3487 (dp3488 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name5-Value5' p3489 sg22 I00 sg37 g3385 sg39 g3489 sbag3 (g7 g8 NtRp3490 (dp3491 g11 Nsg12 I53 sg13 I01 sg14 g3 (g15 g8 NtRp3492 (dp3493 g18 g3 (g19 g5 (ltRp3494 (dp3495 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3496 (dp3497 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3498 (dp3499 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3500 (dp3501 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter5' p3502 sg22 I00 sg37 g38 sg39 g3502 sbag3 (g7 g8 NtRp3503 (dp3504 g11 Nsg12 I54 sg13 I01 sg14 g3 (g15 g8 NtRp3505 (dp3506 g18 g3 (g19 g5 (ltRp3507 (dp3508 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3509 (dp3510 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3511 (dp3512 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3513 (dp3514 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name6-Value6' p3515 sg22 I00 sg37 g3385 sg39 g3515 sbag3 (g7 g8 NtRp3516 (dp3517 g11 Nsg12 I55 sg13 I01 sg14 g3 (g15 g8 NtRp3518 (dp3519 g18 g3 (g19 g5 (ltRp3520 (dp3521 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3522 (dp3523 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3524 (dp3525 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3526 (dp3527 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter6' p3528 sg22 I00 sg37 g38 sg39 g3528 sbag3 (g7 g8 NtRp3529 (dp3530 g11 Nsg12 I56 sg13 I01 sg14 g3 (g15 g8 NtRp3531 (dp3532 g18 g3 (g19 g5 (ltRp3533 (dp3534 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3535 (dp3536 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3537 (dp3538 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3539 (dp3540 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name7-Value7' p3541 sg22 I00 sg37 g3385 sg39 g3541 sbag3 (g7 g8 NtRp3542 (dp3543 g11 Nsg12 I57 sg13 I01 sg14 g3 (g15 g8 NtRp3544 (dp3545 g18 g3 (g19 g5 (ltRp3546 (dp3547 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3548 (dp3549 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3550 (dp3551 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3552 (dp3553 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter7' p3554 sg22 I00 sg37 g38 sg39 g3554 sbag3 (g7 g8 NtRp3555 (dp3556 g11 Nsg12 I58 sg13 I01 sg14 g3 (g15 g8 NtRp3557 (dp3558 g18 g3 (g19 g5 (ltRp3559 (dp3560 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3561 (dp3562 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3563 (dp3564 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3565 (dp3566 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name8-Value8' p3567 sg22 I00 sg37 g3385 sg39 g3567 sbag3 (g7 g8 NtRp3568 (dp3569 g11 Nsg12 I59 sg13 I01 sg14 g3 (g15 g8 NtRp3570 (dp3571 g18 g3 (g19 g5 (ltRp3572 (dp3573 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3574 (dp3575 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3576 (dp3577 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3578 (dp3579 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter8' p3580 sg22 I00 sg37 g38 sg39 g3580 sbag3 (g7 g8 NtRp3581 (dp3582 g11 Nsg12 I60 sg13 I01 sg14 g3 (g15 g8 NtRp3583 (dp3584 g18 g3 (g19 g5 (ltRp3585 (dp3586 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3587 (dp3588 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3589 (dp3590 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3591 (dp3592 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name9-Value9' p3593 sg22 I00 sg37 g3385 sg39 g3593 sbag3 (g7 g8 NtRp3594 (dp3595 g11 Nsg12 I61 sg13 I01 sg14 g3 (g15 g8 NtRp3596 (dp3597 g18 g3 (g19 g5 (ltRp3598 (dp3599 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3600 (dp3601 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3602 (dp3603 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3604 (dp3605 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter9' p3606 sg22 I00 sg37 g38 sg39 g3606 sbag3 (g7 g8 NtRp3607 (dp3608 g11 Nsg12 I62 sg13 I01 sg14 g3 (g15 g8 NtRp3609 (dp3610 g18 g3 (g19 g5 (ltRp3611 (dp3612 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3613 (dp3614 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3615 (dp3616 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3617 (dp3618 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Name10-Value10' p3619 sg22 I00 sg37 g3385 sg39 g3619 sbag3 (g7 g8 NtRp3620 (dp3621 g11 Nsg12 I63 sg13 I01 sg14 g3 (g15 g8 NtRp3622 (dp3623 g18 g3 (g19 g5 (ltRp3624 (dp3625 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3626 (dp3627 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3628 (dp3629 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3630 (dp3631 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Counter10' p3632 sg22 I00 sg37 g38 sg39 g3632 sbag3 (g7 g8 NtRp3633 (dp3634 g11 Nsg12 I64 sg13 I01 sg14 g3 (g15 g8 NtRp3635 (dp3636 g18 g3 (g19 g5 (ltRp3637 (dp3638 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3639 (dp3640 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3641 (dp3642 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3643 (dp3644 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Gzip-Encoded Responses Received' p3645 sg22 I00 sg37 g38 sg39 g3645 sbag3 (g7 g8 NtRp3646 (dp3647 g11 Nsg12 I65 sg13 I01 sg14 g3 (g15 g8 NtRp3648 (dp3649 g18 g3 (g19 g5 (ltRp3650 (dp3651 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3652 (dp3653 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3654 (dp3655 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3656 (dp3657 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Gzip-Encoded Responses Successful' p3658 sg22 I00 sg37 g38 sg39 g3658 sbag3 (g7 g8 NtRp3659 (dp3660 g11 Nsg12 I66 sg13 I01 sg14 g3 (g15 g8 NtRp3661 (dp3662 g18 g3 (g19 g5 (ltRp3663 (dp3664 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3665 (dp3666 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3667 (dp3668 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3669 (dp3670 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Gzip-Encoded Responses Failed' p3671 sg22 I00 sg37 g38 sg39 g3671 sbag3 (g7 g8 NtRp3672 (dp3673 g11 Nsg12 I67 sg13 I01 sg14 g3 (g15 g8 NtRp3674 (dp3675 g18 g3 (g19 g5 (ltRp3676 (dp3677 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3678 (dp3679 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3680 (dp3681 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3682 (dp3683 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Deflate-Encoded Responses Received' p3684 sg22 I00 sg37 g38 sg39 g3684 sbag3 (g7 g8 NtRp3685 (dp3686 g11 Nsg12 I68 sg13 I01 sg14 g3 (g15 g8 NtRp3687 (dp3688 g18 g3 (g19 g5 (ltRp3689 (dp3690 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3691 (dp3692 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3693 (dp3694 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3695 (dp3696 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Deflate-Encoded Responses Successful' p3697 sg22 I00 sg37 g38 sg39 g3697 sbag3 (g7 g8 NtRp3698 (dp3699 g11 Nsg12 I69 sg13 I01 sg14 g3 (g15 g8 NtRp3700 (dp3701 g18 g3 (g19 g5 (ltRp3702 (dp3703 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3704 (dp3705 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3706 (dp3707 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3708 (dp3709 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Deflate-Encoded Responses Failed' p3710 sg22 I00 sg37 g38 sg39 g3710 sbag3 (g7 g8 NtRp3711 (dp3712 g11 Nsg12 I70 sg13 I01 sg14 g3 (g15 g8 NtRp3713 (dp3714 g18 g3 (g19 g5 (ltRp3715 (dp3716 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3717 (dp3718 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3719 (dp3720 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3721 (dp3722 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Responses Received' p3723 sg22 I00 sg37 g38 sg39 g3723 sbag3 (g7 g8 NtRp3724 (dp3725 g11 Nsg12 I71 sg13 I01 sg14 g3 (g15 g8 NtRp3726 (dp3727 g18 g3 (g19 g5 (ltRp3728 (dp3729 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3730 (dp3731 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3732 (dp3733 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3734 (dp3735 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Responses Successful' p3736 sg22 I00 sg37 g38 sg39 g3736 sbag3 (g7 g8 NtRp3737 (dp3738 g11 Nsg12 I72 sg13 I01 sg14 g3 (g15 g8 NtRp3739 (dp3740 g18 g3 (g19 g5 (ltRp3741 (dp3742 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3743 (dp3744 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3745 (dp3746 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3747 (dp3748 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content-MD5 Responses Failed' p3749 sg22 I00 sg37 g38 sg39 g3749 sbag3 (g7 g8 NtRp3750 (dp3751 g11 Nsg12 I73 sg13 I01 sg14 g3 (g15 g8 NtRp3752 (dp3753 g18 g3 (g19 g5 (ltRp3754 (dp3755 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3756 (dp3757 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3758 (dp3759 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3760 (dp3761 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Custom MD5 Responses Received' p3762 sg22 I00 sg37 g38 sg39 g3762 sbag3 (g7 g8 NtRp3763 (dp3764 g11 Nsg12 I74 sg13 I01 sg14 g3 (g15 g8 NtRp3765 (dp3766 g18 g3 (g19 g5 (ltRp3767 (dp3768 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3769 (dp3770 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3771 (dp3772 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3773 (dp3774 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Custom MD5 Responses Successful' p3775 sg22 I00 sg37 g38 sg39 g3775 sbag3 (g7 g8 NtRp3776 (dp3777 g11 Nsg12 I75 sg13 I01 sg14 g3 (g15 g8 NtRp3778 (dp3779 g18 g3 (g19 g5 (ltRp3780 (dp3781 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3782 (dp3783 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3784 (dp3785 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3786 (dp3787 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Custom MD5 Responses Failed' p3788 sg22 I00 sg37 g38 sg39 g3788 sbag3 (g7 g8 NtRp3789 (dp3790 g11 Nsg12 I76 sg13 I01 sg14 g3 (g15 g8 NtRp3791 (dp3792 g18 g3 (g19 g5 (ltRp3793 (dp3794 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3795 (dp3796 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3797 (dp3798 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3799 (dp3800 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Average Compression Ratio' p3801 sg22 I00 sg37 g261 sg39 g3801 sbatRp3802 (dp3803 g12 I76 sg22 I00 sg11 NsbsS'HTTP Client' p3804 g3 (g4 g5 (lp3805 g3 (g7 g8 NtRp3806 (dp3807 g11 Nsg12 I0 sg13 I01 sg14 g3 (g15 g8 NtRp3808 (dp3809 g18 g3 (g19 g5 (ltRp3810 (dp3811 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3812 (dp3813 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3814 (dp3815 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3816 (dp3817 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Simulated Users' p3818 sg22 I00 sg37 g38 sg39 g3818 sbag3 (g7 g8 NtRp3819 (dp3820 g11 Nsg12 I1 sg13 I01 sg14 g3 (g15 g8 NtRp3821 (dp3822 g18 g3 (g19 g5 (ltRp3823 (dp3824 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3825 (dp3826 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3827 (dp3828 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3829 (dp3830 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Concurrent Connections' p3831 sg22 I00 sg37 g38 sg39 g3831 sbag3 (g7 g8 NtRp3832 (dp3833 g11 Nsg12 I2 sg13 I01 sg14 g3 (g15 g8 NtRp3834 (dp3835 g18 g3 (g19 g5 (ltRp3836 (dp3837 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3838 (dp3839 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3840 (dp3841 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3842 (dp3843 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Connections' p3844 sg22 I00 sg37 g38 sg39 g3844 sbag3 (g7 g8 NtRp3845 (dp3846 g11 Nsg12 I3 sg13 I01 sg14 g3 (g15 g8 NtRp3847 (dp3848 g18 g3 (g19 g5 (ltRp3849 (dp3850 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3851 (dp3852 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3853 (dp3854 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3855 (dp3856 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Connection Attempts' p3857 sg22 I00 sg37 g38 sg39 g3857 sbag3 (g7 g8 NtRp3858 (dp3859 g11 Nsg12 I4 sg13 I01 sg14 g3 (g15 g8 NtRp3860 (dp3861 g18 g3 (g19 g5 (ltRp3862 (dp3863 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3864 (dp3865 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3866 (dp3867 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3868 (dp3869 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Connection Aborts' p3870 sg22 I00 sg37 g38 sg39 g3870 sbag3 (g7 g8 NtRp3871 (dp3872 g11 Nsg12 I5 sg13 I01 sg14 g3 (g15 g8 NtRp3873 (dp3874 g18 g3 (g19 g5 (ltRp3875 (dp3876 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3877 (dp3878 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3879 (dp3880 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3881 (dp3882 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Old Session Aborts' p3883 sg22 I00 sg37 g38 sg39 g3883 sbag3 (g7 g8 NtRp3884 (dp3885 g11 Nsg12 I6 sg13 I01 sg14 g3 (g15 g8 NtRp3886 (dp3887 g18 g3 (g19 g5 (ltRp3888 (dp3889 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3890 (dp3891 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3892 (dp3893 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3894 (dp3895 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Transactions' p3896 sg22 I00 sg37 g38 sg39 g3896 sbag3 (g7 g8 NtRp3897 (dp3898 g11 Nsg12 I7 sg13 I01 sg14 g3 (g15 g8 NtRp3899 (dp3900 g18 g3 (g19 g5 (ltRp3901 (dp3902 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3903 (dp3904 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3905 (dp3906 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3907 (dp3908 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Bytes' p3909 sg22 I00 sg37 g38 sg39 g3909 sbag3 (g7 g8 NtRp3910 (dp3911 g11 Nsg12 I8 sg13 I01 sg14 g3 (g15 g8 NtRp3912 (dp3913 g18 g3 (g19 g5 (ltRp3914 (dp3915 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3916 (dp3917 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3918 (dp3919 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3920 (dp3921 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2812 sg22 I00 sg37 g38 sg39 g2812 sbag3 (g7 g8 NtRp3922 (dp3923 g11 Nsg12 I9 sg13 I01 sg14 g3 (g15 g8 NtRp3924 (dp3925 g18 g3 (g19 g5 (ltRp3926 (dp3927 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3928 (dp3929 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3930 (dp3931 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3932 (dp3933 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2825 sg22 I00 sg37 g38 sg39 g2825 sbag3 (g7 g8 NtRp3934 (dp3935 g11 Nsg12 I10 sg13 I01 sg14 g3 (g15 g8 NtRp3936 (dp3937 g18 g3 (g19 g5 (ltRp3938 (dp3939 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3940 (dp3941 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3942 (dp3943 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3944 (dp3945 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2838 sg22 I00 sg37 g38 sg39 g2838 sbag3 (g7 g8 NtRp3946 (dp3947 g11 Nsg12 I11 sg13 I01 sg14 g3 (g15 g8 NtRp3948 (dp3949 g18 g3 (g19 g5 (ltRp3950 (dp3951 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3952 (dp3953 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3954 (dp3955 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3956 (dp3957 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3137 sg22 I00 sg37 g38 sg39 g3137 sbag3 (g7 g8 NtRp3958 (dp3959 g11 Nsg12 I12 sg13 I01 sg14 g3 (g15 g8 NtRp3960 (dp3961 g18 g3 (g19 g5 (ltRp3962 (dp3963 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3964 (dp3965 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3966 (dp3967 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3968 (dp3969 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3150 sg22 I00 sg37 g38 sg39 g3150 sbag3 (g7 g8 NtRp3970 (dp3971 g11 Nsg12 I13 sg13 I01 sg14 g3 (g15 g8 NtRp3972 (dp3973 g18 g3 (g19 g5 (ltRp3974 (dp3975 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3976 (dp3977 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3978 (dp3979 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3980 (dp3981 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3163 sg22 I00 sg37 g38 sg39 g3163 sbag3 (g7 g8 NtRp3982 (dp3983 g11 Nsg12 I14 sg13 I01 sg14 g3 (g15 g8 NtRp3984 (dp3985 g18 g3 (g19 g5 (ltRp3986 (dp3987 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp3988 (dp3989 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp3990 (dp3991 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp3992 (dp3993 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3176 sg22 I00 sg37 g38 sg39 g3176 sbag3 (g7 g8 NtRp3994 (dp3995 g11 Nsg12 I15 sg13 I01 sg14 g3 (g15 g8 NtRp3996 (dp3997 g18 g3 (g19 g5 (ltRp3998 (dp3999 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4000 (dp4001 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4002 (dp4003 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4004 (dp4005 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3189 sg22 I00 sg37 g38 sg39 g3189 sbag3 (g7 g8 NtRp4006 (dp4007 g11 Nsg12 I16 sg13 I01 sg14 g3 (g15 g8 NtRp4008 (dp4009 g18 g3 (g19 g5 (ltRp4010 (dp4011 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4012 (dp4013 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4014 (dp4015 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4016 (dp4017 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3202 sg22 I00 sg37 g38 sg39 g3202 sbag3 (g7 g8 NtRp4018 (dp4019 g11 Nsg12 I17 sg13 I01 sg14 g3 (g15 g8 NtRp4020 (dp4021 g18 g3 (g19 g5 (ltRp4022 (dp4023 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4024 (dp4025 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4026 (dp4027 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4028 (dp4029 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3215 sg22 I00 sg37 g38 sg39 g3215 sbag3 (g7 g8 NtRp4030 (dp4031 g11 Nsg12 I18 sg13 I01 sg14 g3 (g15 g8 NtRp4032 (dp4033 g18 g3 (g19 g5 (ltRp4034 (dp4035 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4036 (dp4037 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4038 (dp4039 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4040 (dp4041 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2851 sg22 I00 sg37 g38 sg39 g2851 sbag3 (g7 g8 NtRp4042 (dp4043 g11 Nsg12 I19 sg13 I01 sg14 g3 (g15 g8 NtRp4044 (dp4045 g18 g3 (g19 g5 (ltRp4046 (dp4047 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4048 (dp4049 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4050 (dp4051 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4052 (dp4053 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2864 sg22 I00 sg37 g38 sg39 g2864 sbag3 (g7 g8 NtRp4054 (dp4055 g11 Nsg12 I20 sg13 I01 sg14 g3 (g15 g8 NtRp4056 (dp4057 g18 g3 (g19 g5 (ltRp4058 (dp4059 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4060 (dp4061 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4062 (dp4063 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4064 (dp4065 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2877 sg22 I00 sg37 g38 sg39 g2877 sbag3 (g7 g8 NtRp4066 (dp4067 g11 Nsg12 I21 sg13 I01 sg14 g3 (g15 g8 NtRp4068 (dp4069 g18 g3 (g19 g5 (ltRp4070 (dp4071 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4072 (dp4073 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4074 (dp4075 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4076 (dp4077 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2890 sg22 I00 sg37 g38 sg39 g2890 sbag3 (g7 g8 NtRp4078 (dp4079 g11 Nsg12 I22 sg13 I01 sg14 g3 (g15 g8 NtRp4080 (dp4081 g18 g3 (g19 g5 (ltRp4082 (dp4083 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4084 (dp4085 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4086 (dp4087 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4088 (dp4089 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2903 sg22 I00 sg37 g38 sg39 g2903 sbag3 (g7 g8 NtRp4090 (dp4091 g11 Nsg12 I23 sg13 I01 sg14 g3 (g15 g8 NtRp4092 (dp4093 g18 g3 (g19 g5 (ltRp4094 (dp4095 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4096 (dp4097 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4098 (dp4099 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4100 (dp4101 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2916 sg22 I00 sg37 g38 sg39 g2916 sbag3 (g7 g8 NtRp4102 (dp4103 g11 Nsg12 I24 sg13 I01 sg14 g3 (g15 g8 NtRp4104 (dp4105 g18 g3 (g19 g5 (ltRp4106 (dp4107 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4108 (dp4109 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4110 (dp4111 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4112 (dp4113 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2929 sg22 I00 sg37 g38 sg39 g2929 sbag3 (g7 g8 NtRp4114 (dp4115 g11 Nsg12 I25 sg13 I01 sg14 g3 (g15 g8 NtRp4116 (dp4117 g18 g3 (g19 g5 (ltRp4118 (dp4119 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4120 (dp4121 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4122 (dp4123 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4124 (dp4125 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2942 sg22 I00 sg37 g38 sg39 g2942 sbag3 (g7 g8 NtRp4126 (dp4127 g11 Nsg12 I26 sg13 I01 sg14 g3 (g15 g8 NtRp4128 (dp4129 g18 g3 (g19 g5 (ltRp4130 (dp4131 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4132 (dp4133 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4134 (dp4135 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4136 (dp4137 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2955 sg22 I00 sg37 g38 sg39 g2955 sbag3 (g7 g8 NtRp4138 (dp4139 g11 Nsg12 I27 sg13 I01 sg14 g3 (g15 g8 NtRp4140 (dp4141 g18 g3 (g19 g5 (ltRp4142 (dp4143 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4144 (dp4145 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4146 (dp4147 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4148 (dp4149 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2968 sg22 I00 sg37 g38 sg39 g2968 sbag3 (g7 g8 NtRp4150 (dp4151 g11 Nsg12 I28 sg13 I01 sg14 g3 (g15 g8 NtRp4152 (dp4153 g18 g3 (g19 g5 (ltRp4154 (dp4155 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4156 (dp4157 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4158 (dp4159 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4160 (dp4161 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2981 sg22 I00 sg37 g38 sg39 g2981 sbag3 (g7 g8 NtRp4162 (dp4163 g11 Nsg12 I29 sg13 I01 sg14 g3 (g15 g8 NtRp4164 (dp4165 g18 g3 (g19 g5 (ltRp4166 (dp4167 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4168 (dp4169 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4170 (dp4171 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4172 (dp4173 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g2994 sg22 I00 sg37 g38 sg39 g2994 sbag3 (g7 g8 NtRp4174 (dp4175 g11 Nsg12 I30 sg13 I01 sg14 g3 (g15 g8 NtRp4176 (dp4177 g18 g3 (g19 g5 (ltRp4178 (dp4179 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4180 (dp4181 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4182 (dp4183 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4184 (dp4185 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3007 sg22 I00 sg37 g38 sg39 g3007 sbag3 (g7 g8 NtRp4186 (dp4187 g11 Nsg12 I31 sg13 I01 sg14 g3 (g15 g8 NtRp4188 (dp4189 g18 g3 (g19 g5 (ltRp4190 (dp4191 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4192 (dp4193 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4194 (dp4195 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4196 (dp4197 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3020 sg22 I00 sg37 g38 sg39 g3020 sbag3 (g7 g8 NtRp4198 (dp4199 g11 Nsg12 I32 sg13 I01 sg14 g3 (g15 g8 NtRp4200 (dp4201 g18 g3 (g19 g5 (ltRp4202 (dp4203 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4204 (dp4205 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4206 (dp4207 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4208 (dp4209 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3033 sg22 I00 sg37 g38 sg39 g3033 sbag3 (g7 g8 NtRp4210 (dp4211 g11 Nsg12 I33 sg13 I01 sg14 g3 (g15 g8 NtRp4212 (dp4213 g18 g3 (g19 g5 (ltRp4214 (dp4215 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4216 (dp4217 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4218 (dp4219 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4220 (dp4221 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3046 sg22 I00 sg37 g38 sg39 g3046 sbag3 (g7 g8 NtRp4222 (dp4223 g11 Nsg12 I34 sg13 I01 sg14 g3 (g15 g8 NtRp4224 (dp4225 g18 g3 (g19 g5 (ltRp4226 (dp4227 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4228 (dp4229 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4230 (dp4231 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4232 (dp4233 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3059 sg22 I00 sg37 g38 sg39 g3059 sbag3 (g7 g8 NtRp4234 (dp4235 g11 Nsg12 I35 sg13 I01 sg14 g3 (g15 g8 NtRp4236 (dp4237 g18 g3 (g19 g5 (ltRp4238 (dp4239 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4240 (dp4241 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4242 (dp4243 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4244 (dp4245 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3072 sg22 I00 sg37 g38 sg39 g3072 sbag3 (g7 g8 NtRp4246 (dp4247 g11 Nsg12 I36 sg13 I01 sg14 g3 (g15 g8 NtRp4248 (dp4249 g18 g3 (g19 g5 (ltRp4250 (dp4251 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4252 (dp4253 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4254 (dp4255 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4256 (dp4257 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Session Timeouts (408)' p4258 sg22 I00 sg37 g38 sg39 g4258 sbag3 (g7 g8 NtRp4259 (dp4260 g11 Nsg12 I37 sg13 I01 sg14 g3 (g15 g8 NtRp4261 (dp4262 g18 g3 (g19 g5 (ltRp4263 (dp4264 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4265 (dp4266 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4267 (dp4268 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4269 (dp4270 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Request Precondition Failed (412)' p4271 sg22 I00 sg37 g38 sg39 g4271 sbag3 (g7 g8 NtRp4272 (dp4273 g11 Nsg12 I38 sg13 I01 sg14 g3 (g15 g8 NtRp4274 (dp4275 g18 g3 (g19 g5 (ltRp4276 (dp4277 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4278 (dp4279 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4280 (dp4281 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4282 (dp4283 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Sessions Rejected (503)' p4284 sg22 I00 sg37 g38 sg39 g4284 sbag3 (g7 g8 NtRp4285 (dp4286 g11 Nsg12 I39 sg13 I01 sg14 g3 (g15 g8 NtRp4287 (dp4288 g18 g3 (g19 g5 (ltRp4289 (dp4290 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4291 (dp4292 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4293 (dp4294 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4295 (dp4296 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3085 sg22 I00 sg37 g38 sg39 g3085 sbag3 (g7 g8 NtRp4297 (dp4298 g11 Nsg12 I40 sg13 I01 sg14 g3 (g15 g8 NtRp4299 (dp4300 g18 g3 (g19 g5 (ltRp4301 (dp4302 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4303 (dp4304 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4305 (dp4306 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4307 (dp4308 g12 I-1 sg22 I00 sg11 Nsbsbsg35 g3098 sg22 I00 sg37 g38 sg39 g3098 sbag3 (g7 g8 NtRp4309 (dp4310 g11 Nsg12 I41 sg13 I01 sg14 g3 (g15 g8 NtRp4311 (dp4312 g18 g3 (g19 g5 (ltRp4313 (dp4314 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4315 (dp4316 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4317 (dp4318 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4319 (dp4320 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Transactions Active' p4321 sg22 I00 sg37 g38 sg39 g4321 sbag3 (g7 g8 NtRp4322 (dp4323 g11 Nsg12 I42 sg13 I01 sg14 g3 (g15 g8 NtRp4324 (dp4325 g18 g3 (g19 g5 (ltRp4326 (dp4327 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4328 (dp4329 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4330 (dp4331 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4332 (dp4333 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Users Active' p4334 sg22 I00 sg37 g38 sg39 g4334 sbag3 (g7 g8 NtRp4335 (dp4336 g11 Nsg12 I43 sg13 I01 sg14 g3 (g15 g8 NtRp4337 (dp4338 g18 g3 (g19 g5 (ltRp4339 (dp4340 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4341 (dp4342 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4343 (dp4344 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4345 (dp4346 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Content-Encoded Responses Received' p4347 sg22 I00 sg37 g38 sg39 g4347 sbag3 (g7 g8 NtRp4348 (dp4349 g11 Nsg12 I44 sg13 I01 sg14 g3 (g15 g8 NtRp4350 (dp4351 g18 g3 (g19 g5 (ltRp4352 (dp4353 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4354 (dp4355 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4356 (dp4357 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4358 (dp4359 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Gzip Content-Encoding Received' p4360 sg22 I00 sg37 g38 sg39 g4360 sbag3 (g7 g8 NtRp4361 (dp4362 g11 Nsg12 I45 sg13 I01 sg14 g3 (g15 g8 NtRp4363 (dp4364 g18 g3 (g19 g5 (ltRp4365 (dp4366 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4367 (dp4368 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4369 (dp4370 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4371 (dp4372 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Deflate Content-Encoding Received' p4373 sg22 I00 sg37 g38 sg39 g4373 sbag3 (g7 g8 NtRp4374 (dp4375 g11 Nsg12 I46 sg13 I01 sg14 g3 (g15 g8 NtRp4376 (dp4377 g18 g3 (g19 g5 (ltRp4378 (dp4379 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4380 (dp4381 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4382 (dp4383 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4384 (dp4385 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Unrecognized Content-Encoding Received' p4386 sg22 I00 sg37 g38 sg39 g4386 sbag3 (g7 g8 NtRp4387 (dp4388 g11 Nsg12 I47 sg13 I01 sg14 g3 (g15 g8 NtRp4389 (dp4390 g18 g3 (g19 g5 (ltRp4391 (dp4392 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4393 (dp4394 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4395 (dp4396 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4397 (dp4398 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Content-Encoded Responses Decode Successful' p4399 sg22 I00 sg37 g38 sg39 g4399 sbag3 (g7 g8 NtRp4400 (dp4401 g11 Nsg12 I48 sg13 I01 sg14 g3 (g15 g8 NtRp4402 (dp4403 g18 g3 (g19 g5 (ltRp4404 (dp4405 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4406 (dp4407 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4408 (dp4409 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4410 (dp4411 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Gzip Content-Encoding Decode Successful' p4412 sg22 I00 sg37 g38 sg39 g4412 sbag3 (g7 g8 NtRp4413 (dp4414 g11 Nsg12 I49 sg13 I01 sg14 g3 (g15 g8 NtRp4415 (dp4416 g18 g3 (g19 g5 (ltRp4417 (dp4418 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4419 (dp4420 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4421 (dp4422 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4423 (dp4424 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Deflate Content-Encoding Decode Successful' p4425 sg22 I00 sg37 g38 sg39 g4425 sbag3 (g7 g8 NtRp4426 (dp4427 g11 Nsg12 I50 sg13 I01 sg14 g3 (g15 g8 NtRp4428 (dp4429 g18 g3 (g19 g5 (ltRp4430 (dp4431 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4432 (dp4433 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4434 (dp4435 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4436 (dp4437 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Content-Encoded Responses Decode Failed' p4438 sg22 I00 sg37 g38 sg39 g4438 sbag3 (g7 g8 NtRp4439 (dp4440 g11 Nsg12 I51 sg13 I01 sg14 g3 (g15 g8 NtRp4441 (dp4442 g18 g3 (g19 g5 (ltRp4443 (dp4444 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4445 (dp4446 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4447 (dp4448 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4449 (dp4450 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Gzip Content-Encoding Decode Failed' p4451 sg22 I00 sg37 g38 sg39 g4451 sbag3 (g7 g8 NtRp4452 (dp4453 g11 Nsg12 I52 sg13 I01 sg14 g3 (g15 g8 NtRp4454 (dp4455 g18 g3 (g19 g5 (ltRp4456 (dp4457 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4458 (dp4459 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4460 (dp4461 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4462 (dp4463 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Deflate Content-Encoding Decode Failed' p4464 sg22 I00 sg37 g38 sg39 g4464 sbag3 (g7 g8 NtRp4465 (dp4466 g11 Nsg12 I53 sg13 I01 sg14 g3 (g15 g8 NtRp4467 (dp4468 g18 g3 (g19 g5 (ltRp4469 (dp4470 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4471 (dp4472 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4473 (dp4474 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4475 (dp4476 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Gzip Content-Encoding Decode Failed - Data Error' p4477 sg22 I00 sg37 g38 sg39 g4477 sbag3 (g7 g8 NtRp4478 (dp4479 g11 Nsg12 I54 sg13 I01 sg14 g3 (g15 g8 NtRp4480 (dp4481 g18 g3 (g19 g5 (ltRp4482 (dp4483 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4484 (dp4485 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4486 (dp4487 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4488 (dp4489 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Gzip Content-Encoding Decode Failed - Decoding Error' p4490 sg22 I00 sg37 g38 sg39 g4490 sbag3 (g7 g8 NtRp4491 (dp4492 g11 Nsg12 I55 sg13 I01 sg14 g3 (g15 g8 NtRp4493 (dp4494 g18 g3 (g19 g5 (ltRp4495 (dp4496 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4497 (dp4498 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4499 (dp4500 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4501 (dp4502 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Deflate Content-Encoding Decode Failed - Data Error' p4503 sg22 I00 sg37 g38 sg39 g4503 sbag3 (g7 g8 NtRp4504 (dp4505 g11 Nsg12 I56 sg13 I01 sg14 g3 (g15 g8 NtRp4506 (dp4507 g18 g3 (g19 g5 (ltRp4508 (dp4509 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4510 (dp4511 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4512 (dp4513 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4514 (dp4515 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Deflate Content-Encoding Decode Failed - Decoding Error' p4516 sg22 I00 sg37 g38 sg39 g4516 sbag3 (g7 g8 NtRp4517 (dp4518 g11 Nsg12 I57 sg13 I01 sg14 g3 (g15 g8 NtRp4519 (dp4520 g18 g3 (g19 g5 (ltRp4521 (dp4522 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4523 (dp4524 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4525 (dp4526 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4527 (dp4528 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Chunked Transfer-Encoded Headers Received' p4529 sg22 I00 sg37 g38 sg39 g4529 sbag3 (g7 g8 NtRp4530 (dp4531 g11 Nsg12 I58 sg13 I01 sg14 g3 (g15 g8 NtRp4532 (dp4533 g18 g3 (g19 g5 (ltRp4534 (dp4535 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4536 (dp4537 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4538 (dp4539 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4540 (dp4541 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Chunked Transfer-Encoded Responses Received' p4542 sg22 I00 sg37 g38 sg39 g4542 sbag3 (g7 g8 NtRp4543 (dp4544 g11 Nsg12 I59 sg13 I01 sg14 g3 (g15 g8 NtRp4545 (dp4546 g18 g3 (g19 g5 (ltRp4547 (dp4548 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4549 (dp4550 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4551 (dp4552 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4553 (dp4554 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Chunked Transfer-Encoding Decode Successful' p4555 sg22 I00 sg37 g38 sg39 g4555 sbag3 (g7 g8 NtRp4556 (dp4557 g11 Nsg12 I60 sg13 I01 sg14 g3 (g15 g8 NtRp4558 (dp4559 g18 g3 (g19 g5 (ltRp4560 (dp4561 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4562 (dp4563 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4564 (dp4565 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4566 (dp4567 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Chunked Transfer-Encoding Decode Failed' p4568 sg22 I00 sg37 g38 sg39 g4568 sbag3 (g7 g8 NtRp4569 (dp4570 g11 Nsg12 I61 sg13 I01 sg14 g3 (g15 g8 NtRp4571 (dp4572 g18 g3 (g19 g5 (ltRp4573 (dp4574 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4575 (dp4576 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4577 (dp4578 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4579 (dp4580 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Total Chunks Received' p4581 sg22 I00 sg37 g38 sg39 g4581 sbag3 (g7 g8 NtRp4582 (dp4583 g11 Nsg12 I62 sg13 I01 sg14 g3 (g15 g8 NtRp4584 (dp4585 g18 g3 (g19 g5 (ltRp4586 (dp4587 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4588 (dp4589 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4590 (dp4591 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4592 (dp4593 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Chunked Transfer-Encoding Headers Sent' p4594 sg22 I00 sg37 g38 sg39 g4594 sbag3 (g7 g8 NtRp4595 (dp4596 g11 Nsg12 I63 sg13 I01 sg14 g3 (g15 g8 NtRp4597 (dp4598 g18 g3 (g19 g5 (ltRp4599 (dp4600 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4601 (dp4602 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4603 (dp4604 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4605 (dp4606 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Total Chunks Sent' p4607 sg22 I00 sg37 g38 sg39 g4607 sbag3 (g7 g8 NtRp4608 (dp4609 g11 Nsg12 I64 sg13 I01 sg14 g3 (g15 g8 NtRp4610 (dp4611 g18 g3 (g19 g5 (ltRp4612 (dp4613 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4614 (dp4615 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4616 (dp4617 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4618 (dp4619 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Content-MD5 Responses Received' p4620 sg22 I00 sg37 g38 sg39 g4620 sbag3 (g7 g8 NtRp4621 (dp4622 g11 Nsg12 I65 sg13 I01 sg14 g3 (g15 g8 NtRp4623 (dp4624 g18 g3 (g19 g5 (ltRp4625 (dp4626 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4627 (dp4628 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4629 (dp4630 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4631 (dp4632 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Content-MD5 Check Successful' p4633 sg22 I00 sg37 g38 sg39 g4633 sbag3 (g7 g8 NtRp4634 (dp4635 g11 Nsg12 I66 sg13 I01 sg14 g3 (g15 g8 NtRp4636 (dp4637 g18 g3 (g19 g5 (ltRp4638 (dp4639 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4640 (dp4641 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4642 (dp4643 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4644 (dp4645 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Content-MD5 Check Failed' p4646 sg22 I00 sg37 g38 sg39 g4646 sbag3 (g7 g8 NtRp4647 (dp4648 g11 Nsg12 I67 sg13 I01 sg14 g3 (g15 g8 NtRp4649 (dp4650 g18 g3 (g19 g5 (ltRp4651 (dp4652 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4653 (dp4654 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4655 (dp4656 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4657 (dp4658 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Custom-MD5 Responses Received' p4659 sg22 I00 sg37 g38 sg39 g4659 sbag3 (g7 g8 NtRp4660 (dp4661 g11 Nsg12 I68 sg13 I01 sg14 g3 (g15 g8 NtRp4662 (dp4663 g18 g3 (g19 g5 (ltRp4664 (dp4665 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4666 (dp4667 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4668 (dp4669 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4670 (dp4671 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Custom-MD5 Check Successful' p4672 sg22 I00 sg37 g38 sg39 g4672 sbag3 (g7 g8 NtRp4673 (dp4674 g11 Nsg12 I69 sg13 I01 sg14 g3 (g15 g8 NtRp4675 (dp4676 g18 g3 (g19 g5 (ltRp4677 (dp4678 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4679 (dp4680 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4681 (dp4682 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4683 (dp4684 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Custom-MD5 Check Failed' p4685 sg22 I00 sg37 g38 sg39 g4685 sbag3 (g7 g8 NtRp4686 (dp4687 g11 Nsg12 I70 sg13 I01 sg14 g3 (g15 g8 NtRp4688 (dp4689 g18 g3 (g19 g5 (ltRp4690 (dp4691 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4692 (dp4693 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4694 (dp4695 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4696 (dp4697 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Bytes Sent' p4698 sg22 I00 sg37 g38 sg39 g4698 sbag3 (g7 g8 NtRp4699 (dp4700 g11 Nsg12 I71 sg13 I01 sg14 g3 (g15 g8 NtRp4701 (dp4702 g18 g3 (g19 g5 (ltRp4703 (dp4704 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4705 (dp4706 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4707 (dp4708 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4709 (dp4710 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Bytes Received' p4711 sg22 I00 sg37 g38 sg39 g4711 sbag3 (g7 g8 NtRp4712 (dp4713 g11 Nsg12 I72 sg13 I01 sg14 g3 (g15 g8 NtRp4714 (dp4715 g18 g3 (g19 g5 (ltRp4716 (dp4717 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4718 (dp4719 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4720 (dp4721 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4722 (dp4723 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content Bytes Sent' p4724 sg22 I00 sg37 g38 sg39 g4724 sbag3 (g7 g8 NtRp4725 (dp4726 g11 Nsg12 I73 sg13 I01 sg14 g3 (g15 g8 NtRp4727 (dp4728 g18 g3 (g19 g5 (ltRp4729 (dp4730 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4731 (dp4732 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4733 (dp4734 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4735 (dp4736 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Content Bytes Received' p4737 sg22 I00 sg37 g38 sg39 g4737 sbag3 (g7 g8 NtRp4738 (dp4739 g11 Nsg12 I74 sg13 I01 sg14 g3 (g15 g8 NtRp4740 (dp4741 g18 g3 (g19 g5 (ltRp4742 (dp4743 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4744 (dp4745 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4746 (dp4747 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4748 (dp4749 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Decompressed Content Bytes Received' p4750 sg22 I00 sg37 g38 sg39 g4750 sbag3 (g7 g8 NtRp4751 (dp4752 g11 Nsg12 I75 sg13 I01 sg14 g3 (g15 g8 NtRp4753 (dp4754 g18 g3 (g19 g5 (ltRp4755 (dp4756 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4757 (dp4758 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4759 (dp4760 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4761 (dp4762 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Received' p4763 sg22 I00 sg37 g38 sg39 g4763 sbag3 (g7 g8 NtRp4764 (dp4765 g11 Nsg12 I76 sg13 I01 sg14 g3 (g15 g8 NtRp4766 (dp4767 g18 g3 (g19 g5 (ltRp4768 (dp4769 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4770 (dp4771 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4772 (dp4773 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4774 (dp4775 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Sent' p4776 sg22 I00 sg37 g38 sg39 g4776 sbag3 (g7 g8 NtRp4777 (dp4778 g11 Nsg12 I77 sg13 I01 sg14 g3 (g15 g8 NtRp4779 (dp4780 g18 g3 (g19 g5 (ltRp4781 (dp4782 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4783 (dp4784 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4785 (dp4786 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4787 (dp4788 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Rejected' p4789 sg22 I00 sg37 g38 sg39 g4789 sbag3 (g7 g8 NtRp4790 (dp4791 g11 Nsg12 I78 sg13 I01 sg14 g3 (g15 g8 NtRp4792 (dp4793 g18 g3 (g19 g5 (ltRp4794 (dp4795 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4796 (dp4797 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4798 (dp4799 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4800 (dp4801 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Rejected - (Path Match Failed)' p4802 sg22 I00 sg37 g38 sg39 g4802 sbag3 (g7 g8 NtRp4803 (dp4804 g11 Nsg12 I79 sg13 I01 sg14 g3 (g15 g8 NtRp4805 (dp4806 g18 g3 (g19 g5 (ltRp4807 (dp4808 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4809 (dp4810 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4811 (dp4812 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4813 (dp4814 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Rejected - (Domain Match Failed)' p4815 sg22 I00 sg37 g38 sg39 g4815 sbag3 (g7 g8 NtRp4816 (dp4817 g11 Nsg12 I80 sg13 I01 sg14 g3 (g15 g8 NtRp4818 (dp4819 g18 g3 (g19 g5 (ltRp4820 (dp4821 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4822 (dp4823 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4824 (dp4825 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4826 (dp4827 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Rejected - (Cookiejar Overflow)' p4828 sg22 I00 sg37 g38 sg39 g4828 sbag3 (g7 g8 NtRp4829 (dp4830 g11 Nsg12 I81 sg13 I01 sg14 g3 (g15 g8 NtRp4831 (dp4832 g18 g3 (g19 g5 (ltRp4833 (dp4834 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4835 (dp4836 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4837 (dp4838 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4839 (dp4840 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookies Rejected - (Probabilistic Reject)' p4841 sg22 I00 sg37 g38 sg39 g4841 sbag3 (g7 g8 NtRp4842 (dp4843 g11 Nsg12 I82 sg13 I01 sg14 g3 (g15 g8 NtRp4844 (dp4845 g18 g3 (g19 g5 (ltRp4846 (dp4847 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4848 (dp4849 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4850 (dp4851 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4852 (dp4853 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Cookie headers Rejected - (Memory Overflow)' p4854 sg22 I00 sg37 g38 sg39 g4854 sbag3 (g7 g8 NtRp4855 (dp4856 g11 Nsg12 I83 sg13 I01 sg14 g3 (g15 g8 NtRp4857 (dp4858 g18 g3 (g19 g5 (ltRp4859 (dp4860 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4861 (dp4862 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4863 (dp4864 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4865 (dp4866 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Connect Time (us)' p4867 sg22 I00 sg37 g261 sg39 g4867 sbag3 (g7 g8 NtRp4868 (dp4869 g11 Nsg12 I84 sg13 I01 sg14 g3 (g15 g8 NtRp4870 (dp4871 g18 g3 (g19 g5 (ltRp4872 (dp4873 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4874 (dp4875 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4876 (dp4877 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4878 (dp4879 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Time To First Byte (us)' p4880 sg22 I00 sg37 g261 sg39 g4880 sbag3 (g7 g8 NtRp4881 (dp4882 g11 Nsg12 I85 sg13 I01 sg14 g3 (g15 g8 NtRp4883 (dp4884 g18 g3 (g19 g5 (ltRp4885 (dp4886 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4887 (dp4888 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4889 (dp4890 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4891 (dp4892 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Time To Last Byte (us)' p4893 sg22 I00 sg37 g261 sg39 g4893 sbag3 (g7 g8 NtRp4894 (dp4895 g11 Nsg12 I86 sg13 I01 sg14 g3 (g15 g8 NtRp4896 (dp4897 g18 g3 (g19 g5 (ltRp4898 (dp4899 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4900 (dp4901 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4902 (dp4903 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4904 (dp4905 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Old Session Abort Delay - Average (us)' p4906 sg22 I00 sg37 g261 sg39 g4906 sbag3 (g7 g8 NtRp4907 (dp4908 g11 Nsg12 I87 sg13 I01 sg14 g3 (g15 g8 NtRp4909 (dp4910 g18 g3 (g19 g5 (ltRp4911 (dp4912 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4913 (dp4914 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4915 (dp4916 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4917 (dp4918 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Old Session Abort Delay - Minimum (us)' p4919 sg22 I00 sg37 g38 sg39 g4919 sbag3 (g7 g8 NtRp4920 (dp4921 g11 Nsg12 I88 sg13 I01 sg14 g3 (g15 g8 NtRp4922 (dp4923 g18 g3 (g19 g5 (ltRp4924 (dp4925 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4926 (dp4927 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4928 (dp4929 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4930 (dp4931 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Old Session Abort Delay - Maximum (us)' p4932 sg22 I00 sg37 g38 sg39 g4932 sbag3 (g7 g8 NtRp4933 (dp4934 g11 Nsg12 I89 sg13 I01 sg14 g3 (g15 g8 NtRp4935 (dp4936 g18 g3 (g19 g5 (ltRp4937 (dp4938 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4939 (dp4940 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4941 (dp4942 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4943 (dp4944 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client Total Data Integrity Check Failed' p4945 sg22 I00 sg37 g38 sg39 g4945 sbag3 (g7 g8 NtRp4946 (dp4947 g11 Nsg12 I90 sg13 I01 sg14 g3 (g15 g8 NtRp4948 (dp4949 g18 g3 (g19 g5 (ltRp4950 (dp4951 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4952 (dp4953 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4954 (dp4955 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4956 (dp4957 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client Total Data Integrity Check Succeeded' p4958 sg22 I00 sg37 g38 sg39 g4958 sbag3 (g7 g8 NtRp4959 (dp4960 g11 Nsg12 I91 sg13 I01 sg14 g3 (g15 g8 NtRp4961 (dp4962 g18 g3 (g19 g5 (ltRp4963 (dp4964 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4965 (dp4966 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4967 (dp4968 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4969 (dp4970 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Data Frames Received' p4971 sg22 I00 sg37 g38 sg39 g4971 sbag3 (g7 g8 NtRp4972 (dp4973 g11 Nsg12 I92 sg13 I01 sg14 g3 (g15 g8 NtRp4974 (dp4975 g18 g3 (g19 g5 (ltRp4976 (dp4977 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4978 (dp4979 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4980 (dp4981 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4982 (dp4983 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Header Frames Received' p4984 sg22 I00 sg37 g38 sg39 g4984 sbag3 (g7 g8 NtRp4985 (dp4986 g11 Nsg12 I93 sg13 I01 sg14 g3 (g15 g8 NtRp4987 (dp4988 g18 g3 (g19 g5 (ltRp4989 (dp4990 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp4991 (dp4992 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp4993 (dp4994 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp4995 (dp4996 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Priority Frames Received' p4997 sg22 I00 sg37 g38 sg39 g4997 sbag3 (g7 g8 NtRp4998 (dp4999 g11 Nsg12 I94 sg13 I01 sg14 g3 (g15 g8 NtRp5000 (dp5001 g18 g3 (g19 g5 (ltRp5002 (dp5003 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5004 (dp5005 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5006 (dp5007 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5008 (dp5009 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Reset Stream Frames Received' p5010 sg22 I00 sg37 g38 sg39 g5010 sbag3 (g7 g8 NtRp5011 (dp5012 g11 Nsg12 I95 sg13 I01 sg14 g3 (g15 g8 NtRp5013 (dp5014 g18 g3 (g19 g5 (ltRp5015 (dp5016 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5017 (dp5018 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5019 (dp5020 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5021 (dp5022 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Settings Frames Received' p5023 sg22 I00 sg37 g38 sg39 g5023 sbag3 (g7 g8 NtRp5024 (dp5025 g11 Nsg12 I96 sg13 I01 sg14 g3 (g15 g8 NtRp5026 (dp5027 g18 g3 (g19 g5 (ltRp5028 (dp5029 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5030 (dp5031 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5032 (dp5033 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5034 (dp5035 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Push Promise Frames Received' p5036 sg22 I00 sg37 g38 sg39 g5036 sbag3 (g7 g8 NtRp5037 (dp5038 g11 Nsg12 I97 sg13 I01 sg14 g3 (g15 g8 NtRp5039 (dp5040 g18 g3 (g19 g5 (ltRp5041 (dp5042 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5043 (dp5044 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5045 (dp5046 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5047 (dp5048 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Ping Frames Received' p5049 sg22 I00 sg37 g38 sg39 g5049 sbag3 (g7 g8 NtRp5050 (dp5051 g11 Nsg12 I98 sg13 I01 sg14 g3 (g15 g8 NtRp5052 (dp5053 g18 g3 (g19 g5 (ltRp5054 (dp5055 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5056 (dp5057 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5058 (dp5059 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5060 (dp5061 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Go Away Frames Received' p5062 sg22 I00 sg37 g38 sg39 g5062 sbag3 (g7 g8 NtRp5063 (dp5064 g11 Nsg12 I99 sg13 I01 sg14 g3 (g15 g8 NtRp5065 (dp5066 g18 g3 (g19 g5 (ltRp5067 (dp5068 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5069 (dp5070 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5071 (dp5072 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5073 (dp5074 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Window Update Frames Received' p5075 sg22 I00 sg37 g38 sg39 g5075 sbag3 (g7 g8 NtRp5076 (dp5077 g11 Nsg12 I100 sg13 I01 sg14 g3 (g15 g8 NtRp5078 (dp5079 g18 g3 (g19 g5 (ltRp5080 (dp5081 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5082 (dp5083 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5084 (dp5085 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5086 (dp5087 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Continuation Frames Received' p5088 sg22 I00 sg37 g38 sg39 g5088 sbag3 (g7 g8 NtRp5089 (dp5090 g11 Nsg12 I101 sg13 I01 sg14 g3 (g15 g8 NtRp5091 (dp5092 g18 g3 (g19 g5 (ltRp5093 (dp5094 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5095 (dp5096 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5097 (dp5098 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5099 (dp5100 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Data Frames Sent' p5101 sg22 I00 sg37 g38 sg39 g5101 sbag3 (g7 g8 NtRp5102 (dp5103 g11 Nsg12 I102 sg13 I01 sg14 g3 (g15 g8 NtRp5104 (dp5105 g18 g3 (g19 g5 (ltRp5106 (dp5107 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5108 (dp5109 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5110 (dp5111 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5112 (dp5113 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Header Frames Sent' p5114 sg22 I00 sg37 g38 sg39 g5114 sbag3 (g7 g8 NtRp5115 (dp5116 g11 Nsg12 I103 sg13 I01 sg14 g3 (g15 g8 NtRp5117 (dp5118 g18 g3 (g19 g5 (ltRp5119 (dp5120 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5121 (dp5122 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5123 (dp5124 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5125 (dp5126 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Priority Frames Sent' p5127 sg22 I00 sg37 g38 sg39 g5127 sbag3 (g7 g8 NtRp5128 (dp5129 g11 Nsg12 I104 sg13 I01 sg14 g3 (g15 g8 NtRp5130 (dp5131 g18 g3 (g19 g5 (ltRp5132 (dp5133 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5134 (dp5135 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5136 (dp5137 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5138 (dp5139 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Reset Stream Frames Sent' p5140 sg22 I00 sg37 g38 sg39 g5140 sbag3 (g7 g8 NtRp5141 (dp5142 g11 Nsg12 I105 sg13 I01 sg14 g3 (g15 g8 NtRp5143 (dp5144 g18 g3 (g19 g5 (ltRp5145 (dp5146 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5147 (dp5148 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5149 (dp5150 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5151 (dp5152 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Settings Frames Sent' p5153 sg22 I00 sg37 g38 sg39 g5153 sbag3 (g7 g8 NtRp5154 (dp5155 g11 Nsg12 I106 sg13 I01 sg14 g3 (g15 g8 NtRp5156 (dp5157 g18 g3 (g19 g5 (ltRp5158 (dp5159 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5160 (dp5161 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5162 (dp5163 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5164 (dp5165 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Push Promise Frames Sent' p5166 sg22 I00 sg37 g38 sg39 g5166 sbag3 (g7 g8 NtRp5167 (dp5168 g11 Nsg12 I107 sg13 I01 sg14 g3 (g15 g8 NtRp5169 (dp5170 g18 g3 (g19 g5 (ltRp5171 (dp5172 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5173 (dp5174 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5175 (dp5176 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5177 (dp5178 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Ping Frames Sent' p5179 sg22 I00 sg37 g38 sg39 g5179 sbag3 (g7 g8 NtRp5180 (dp5181 g11 Nsg12 I108 sg13 I01 sg14 g3 (g15 g8 NtRp5182 (dp5183 g18 g3 (g19 g5 (ltRp5184 (dp5185 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5186 (dp5187 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5188 (dp5189 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5190 (dp5191 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Go Away Frames Sent' p5192 sg22 I00 sg37 g38 sg39 g5192 sbag3 (g7 g8 NtRp5193 (dp5194 g11 Nsg12 I109 sg13 I01 sg14 g3 (g15 g8 NtRp5195 (dp5196 g18 g3 (g19 g5 (ltRp5197 (dp5198 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5199 (dp5200 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5201 (dp5202 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5203 (dp5204 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Window Update Frames Sent' p5205 sg22 I00 sg37 g38 sg39 g5205 sbag3 (g7 g8 NtRp5206 (dp5207 g11 Nsg12 I110 sg13 I01 sg14 g3 (g15 g8 NtRp5208 (dp5209 g18 g3 (g19 g5 (ltRp5210 (dp5211 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5212 (dp5213 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5214 (dp5215 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5216 (dp5217 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Continuation Frames Sent' p5218 sg22 I00 sg37 g38 sg39 g5218 sbag3 (g7 g8 NtRp5219 (dp5220 g11 Nsg12 I111 sg13 I01 sg14 g3 (g15 g8 NtRp5221 (dp5222 g18 g3 (g19 g5 (ltRp5223 (dp5224 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5225 (dp5226 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5227 (dp5228 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5229 (dp5230 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Streams Initiated by Client' p5231 sg22 I00 sg37 g38 sg39 g5231 sbag3 (g7 g8 NtRp5232 (dp5233 g11 Nsg12 I112 sg13 I01 sg14 g3 (g15 g8 NtRp5234 (dp5235 g18 g3 (g19 g5 (ltRp5236 (dp5237 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5238 (dp5239 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5240 (dp5241 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5242 (dp5243 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Streams Initiated by Server' p5244 sg22 I00 sg37 g38 sg39 g5244 sbag3 (g7 g8 NtRp5245 (dp5246 g11 Nsg12 I113 sg13 I01 sg14 g3 (g15 g8 NtRp5247 (dp5248 g18 g3 (g19 g5 (ltRp5249 (dp5250 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5251 (dp5252 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5253 (dp5254 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5255 (dp5256 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)' p5257 sg22 I00 sg37 g38 sg39 g5257 sbag3 (g7 g8 NtRp5258 (dp5259 g11 Nsg12 I114 sg13 I01 sg14 g3 (g15 g8 NtRp5260 (dp5261 g18 g3 (g19 g5 (ltRp5262 (dp5263 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5264 (dp5265 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5266 (dp5267 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5268 (dp5269 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)' p5270 sg22 I00 sg37 g38 sg39 g5270 sbag3 (g7 g8 NtRp5271 (dp5272 g11 Nsg12 I115 sg13 I01 sg14 g3 (g15 g8 NtRp5273 (dp5274 g18 g3 (g19 g5 (ltRp5275 (dp5276 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5277 (dp5278 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5279 (dp5280 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5281 (dp5282 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Streams Failed (Client to Server)' p5283 sg22 I00 sg37 g38 sg39 g5283 sbag3 (g7 g8 NtRp5284 (dp5285 g11 Nsg12 I116 sg13 I01 sg14 g3 (g15 g8 NtRp5286 (dp5287 g18 g3 (g19 g5 (ltRp5288 (dp5289 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5290 (dp5291 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5292 (dp5293 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5294 (dp5295 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Streams Failed (Server to Client)' p5296 sg22 I00 sg37 g38 sg39 g5296 sbag3 (g7 g8 NtRp5297 (dp5298 g11 Nsg12 I117 sg13 I01 sg14 g3 (g15 g8 NtRp5299 (dp5300 g18 g3 (g19 g5 (ltRp5301 (dp5302 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5303 (dp5304 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5305 (dp5306 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5307 (dp5308 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Connection Upgrade Succeeded' p5309 sg22 I00 sg37 g38 sg39 g5309 sbag3 (g7 g8 NtRp5310 (dp5311 g11 Nsg12 I118 sg13 I01 sg14 g3 (g15 g8 NtRp5312 (dp5313 g18 g3 (g19 g5 (ltRp5314 (dp5315 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5316 (dp5317 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5318 (dp5319 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5320 (dp5321 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Connection Upgrade Failed' p5322 sg22 I00 sg37 g38 sg39 g5322 sbag3 (g7 g8 NtRp5323 (dp5324 g11 Nsg12 I119 sg13 I01 sg14 g3 (g15 g8 NtRp5325 (dp5326 g18 g3 (g19 g5 (ltRp5327 (dp5328 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5329 (dp5330 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5331 (dp5332 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5333 (dp5334 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Protocol Error' p5335 sg22 I00 sg37 g38 sg39 g5335 sbag3 (g7 g8 NtRp5336 (dp5337 g11 Nsg12 I120 sg13 I01 sg14 g3 (g15 g8 NtRp5338 (dp5339 g18 g3 (g19 g5 (ltRp5340 (dp5341 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5342 (dp5343 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5344 (dp5345 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5346 (dp5347 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Internal Error' p5348 sg22 I00 sg37 g38 sg39 g5348 sbag3 (g7 g8 NtRp5349 (dp5350 g11 Nsg12 I121 sg13 I01 sg14 g3 (g15 g8 NtRp5351 (dp5352 g18 g3 (g19 g5 (ltRp5353 (dp5354 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5355 (dp5356 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5357 (dp5358 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5359 (dp5360 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Flow Control Error' p5361 sg22 I00 sg37 g38 sg39 g5361 sbag3 (g7 g8 NtRp5362 (dp5363 g11 Nsg12 I122 sg13 I01 sg14 g3 (g15 g8 NtRp5364 (dp5365 g18 g3 (g19 g5 (ltRp5366 (dp5367 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5368 (dp5369 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5370 (dp5371 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5372 (dp5373 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Settings Timeout Error' p5374 sg22 I00 sg37 g38 sg39 g5374 sbag3 (g7 g8 NtRp5375 (dp5376 g11 Nsg12 I123 sg13 I01 sg14 g3 (g15 g8 NtRp5377 (dp5378 g18 g3 (g19 g5 (ltRp5379 (dp5380 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5381 (dp5382 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5383 (dp5384 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5385 (dp5386 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Stream Closed Error' p5387 sg22 I00 sg37 g38 sg39 g5387 sbag3 (g7 g8 NtRp5388 (dp5389 g11 Nsg12 I124 sg13 I01 sg14 g3 (g15 g8 NtRp5390 (dp5391 g18 g3 (g19 g5 (ltRp5392 (dp5393 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5394 (dp5395 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5396 (dp5397 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5398 (dp5399 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Frame Size Error' p5400 sg22 I00 sg37 g38 sg39 g5400 sbag3 (g7 g8 NtRp5401 (dp5402 g11 Nsg12 I125 sg13 I01 sg14 g3 (g15 g8 NtRp5403 (dp5404 g18 g3 (g19 g5 (ltRp5405 (dp5406 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5407 (dp5408 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5409 (dp5410 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5411 (dp5412 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Refused Stream Error' p5413 sg22 I00 sg37 g38 sg39 g5413 sbag3 (g7 g8 NtRp5414 (dp5415 g11 Nsg12 I126 sg13 I01 sg14 g3 (g15 g8 NtRp5416 (dp5417 g18 g3 (g19 g5 (ltRp5418 (dp5419 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5420 (dp5421 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5422 (dp5423 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5424 (dp5425 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Stream Cancelled Error' p5426 sg22 I00 sg37 g38 sg39 g5426 sbag3 (g7 g8 NtRp5427 (dp5428 g11 Nsg12 I127 sg13 I01 sg14 g3 (g15 g8 NtRp5429 (dp5430 g18 g3 (g19 g5 (ltRp5431 (dp5432 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5433 (dp5434 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5435 (dp5436 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5437 (dp5438 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Compression Error' p5439 sg22 I00 sg37 g38 sg39 g5439 sbag3 (g7 g8 NtRp5440 (dp5441 g11 Nsg12 I128 sg13 I01 sg14 g3 (g15 g8 NtRp5442 (dp5443 g18 g3 (g19 g5 (ltRp5444 (dp5445 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5446 (dp5447 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5448 (dp5449 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5450 (dp5451 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Connect Error' p5452 sg22 I00 sg37 g38 sg39 g5452 sbag3 (g7 g8 NtRp5453 (dp5454 g11 Nsg12 I129 sg13 I01 sg14 g3 (g15 g8 NtRp5455 (dp5456 g18 g3 (g19 g5 (ltRp5457 (dp5458 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5459 (dp5460 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5461 (dp5462 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5463 (dp5464 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Enhance Calm Error' p5465 sg22 I00 sg37 g38 sg39 g5465 sbag3 (g7 g8 NtRp5466 (dp5467 g11 Nsg12 I130 sg13 I01 sg14 g3 (g15 g8 NtRp5468 (dp5469 g18 g3 (g19 g5 (ltRp5470 (dp5471 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5472 (dp5473 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5474 (dp5475 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5476 (dp5477 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 Inadequate Security Error' p5478 sg22 I00 sg37 g38 sg39 g5478 sbag3 (g7 g8 NtRp5479 (dp5480 g11 Nsg12 I131 sg13 I01 sg14 g3 (g15 g8 NtRp5481 (dp5482 g18 g3 (g19 g5 (ltRp5483 (dp5484 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5485 (dp5486 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5487 (dp5488 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5489 (dp5490 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'HTTP Client HTTP2.0 HTTP1_1 Required Error' p5491 sg22 I00 sg37 g38 sg39 g5491 sbag3 (g7 g8 NtRp5492 (dp5493 g11 Nsg12 I132 sg13 I01 sg14 g3 (g15 g8 NtRp5494 (dp5495 g18 g3 (g19 g5 (ltRp5496 (dp5497 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5498 (dp5499 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5500 (dp5501 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5502 (dp5503 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received' p5504 sg22 I00 sg37 g38 sg39 g5504 sbag3 (g7 g8 NtRp5505 (dp5506 g11 Nsg12 I133 sg13 I01 sg14 g3 (g15 g8 NtRp5507 (dp5508 g18 g3 (g19 g5 (ltRp5509 (dp5510 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5511 (dp5512 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5513 (dp5514 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5515 (dp5516 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent' p5517 sg22 I00 sg37 g38 sg39 g5517 sbag3 (g7 g8 NtRp5518 (dp5519 g11 Nsg12 I134 sg13 I01 sg14 g3 (g15 g8 NtRp5520 (dp5521 g18 g3 (g19 g5 (ltRp5522 (dp5523 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5524 (dp5525 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5526 (dp5527 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5528 (dp5529 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (close_notify)' p5530 sg22 I00 sg37 g38 sg39 g5530 sbag3 (g7 g8 NtRp5531 (dp5532 g11 Nsg12 I135 sg13 I01 sg14 g3 (g15 g8 NtRp5533 (dp5534 g18 g3 (g19 g5 (ltRp5535 (dp5536 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5537 (dp5538 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5539 (dp5540 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5541 (dp5542 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (close_notify)' p5543 sg22 I00 sg37 g38 sg39 g5543 sbag3 (g7 g8 NtRp5544 (dp5545 g11 Nsg12 I136 sg13 I01 sg14 g3 (g15 g8 NtRp5546 (dp5547 g18 g3 (g19 g5 (ltRp5548 (dp5549 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5550 (dp5551 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5552 (dp5553 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5554 (dp5555 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unexpected_message)' p5556 sg22 I00 sg37 g38 sg39 g5556 sbag3 (g7 g8 NtRp5557 (dp5558 g11 Nsg12 I137 sg13 I01 sg14 g3 (g15 g8 NtRp5559 (dp5560 g18 g3 (g19 g5 (ltRp5561 (dp5562 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5563 (dp5564 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5565 (dp5566 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5567 (dp5568 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (unexpected_message)' p5569 sg22 I00 sg37 g38 sg39 g5569 sbag3 (g7 g8 NtRp5570 (dp5571 g11 Nsg12 I138 sg13 I01 sg14 g3 (g15 g8 NtRp5572 (dp5573 g18 g3 (g19 g5 (ltRp5574 (dp5575 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5576 (dp5577 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5578 (dp5579 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5580 (dp5581 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (bad_record_mac)' p5582 sg22 I00 sg37 g38 sg39 g5582 sbag3 (g7 g8 NtRp5583 (dp5584 g11 Nsg12 I139 sg13 I01 sg14 g3 (g15 g8 NtRp5585 (dp5586 g18 g3 (g19 g5 (ltRp5587 (dp5588 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5589 (dp5590 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5591 (dp5592 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5593 (dp5594 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (bad_record_mac)' p5595 sg22 I00 sg37 g38 sg39 g5595 sbag3 (g7 g8 NtRp5596 (dp5597 g11 Nsg12 I140 sg13 I01 sg14 g3 (g15 g8 NtRp5598 (dp5599 g18 g3 (g19 g5 (ltRp5600 (dp5601 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5602 (dp5603 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5604 (dp5605 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5606 (dp5607 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decryption_failed)' p5608 sg22 I00 sg37 g38 sg39 g5608 sbag3 (g7 g8 NtRp5609 (dp5610 g11 Nsg12 I141 sg13 I01 sg14 g3 (g15 g8 NtRp5611 (dp5612 g18 g3 (g19 g5 (ltRp5613 (dp5614 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5615 (dp5616 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5617 (dp5618 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5619 (dp5620 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decryption_failed)' p5621 sg22 I00 sg37 g38 sg39 g5621 sbag3 (g7 g8 NtRp5622 (dp5623 g11 Nsg12 I142 sg13 I01 sg14 g3 (g15 g8 NtRp5624 (dp5625 g18 g3 (g19 g5 (ltRp5626 (dp5627 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5628 (dp5629 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5630 (dp5631 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5632 (dp5633 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (record_overflow)' p5634 sg22 I00 sg37 g38 sg39 g5634 sbag3 (g7 g8 NtRp5635 (dp5636 g11 Nsg12 I143 sg13 I01 sg14 g3 (g15 g8 NtRp5637 (dp5638 g18 g3 (g19 g5 (ltRp5639 (dp5640 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5641 (dp5642 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5643 (dp5644 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5645 (dp5646 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (record_overflow)' p5647 sg22 I00 sg37 g38 sg39 g5647 sbag3 (g7 g8 NtRp5648 (dp5649 g11 Nsg12 I144 sg13 I01 sg14 g3 (g15 g8 NtRp5650 (dp5651 g18 g3 (g19 g5 (ltRp5652 (dp5653 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5654 (dp5655 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5656 (dp5657 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5658 (dp5659 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decompression_failure)' p5660 sg22 I00 sg37 g38 sg39 g5660 sbag3 (g7 g8 NtRp5661 (dp5662 g11 Nsg12 I145 sg13 I01 sg14 g3 (g15 g8 NtRp5663 (dp5664 g18 g3 (g19 g5 (ltRp5665 (dp5666 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5667 (dp5668 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5669 (dp5670 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5671 (dp5672 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decompression_failure)' p5673 sg22 I00 sg37 g38 sg39 g5673 sbag3 (g7 g8 NtRp5674 (dp5675 g11 Nsg12 I146 sg13 I01 sg14 g3 (g15 g8 NtRp5676 (dp5677 g18 g3 (g19 g5 (ltRp5678 (dp5679 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5680 (dp5681 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5682 (dp5683 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5684 (dp5685 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (handshake_failure)' p5686 sg22 I00 sg37 g38 sg39 g5686 sbag3 (g7 g8 NtRp5687 (dp5688 g11 Nsg12 I147 sg13 I01 sg14 g3 (g15 g8 NtRp5689 (dp5690 g18 g3 (g19 g5 (ltRp5691 (dp5692 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5693 (dp5694 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5695 (dp5696 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5697 (dp5698 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (handshake_failure)' p5699 sg22 I00 sg37 g38 sg39 g5699 sbag3 (g7 g8 NtRp5700 (dp5701 g11 Nsg12 I148 sg13 I01 sg14 g3 (g15 g8 NtRp5702 (dp5703 g18 g3 (g19 g5 (ltRp5704 (dp5705 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5706 (dp5707 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5708 (dp5709 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5710 (dp5711 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (no_certificate)' p5712 sg22 I00 sg37 g38 sg39 g5712 sbag3 (g7 g8 NtRp5713 (dp5714 g11 Nsg12 I149 sg13 I01 sg14 g3 (g15 g8 NtRp5715 (dp5716 g18 g3 (g19 g5 (ltRp5717 (dp5718 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5719 (dp5720 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5721 (dp5722 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5723 (dp5724 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (no_certificate)' p5725 sg22 I00 sg37 g38 sg39 g5725 sbag3 (g7 g8 NtRp5726 (dp5727 g11 Nsg12 I150 sg13 I01 sg14 g3 (g15 g8 NtRp5728 (dp5729 g18 g3 (g19 g5 (ltRp5730 (dp5731 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5732 (dp5733 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5734 (dp5735 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5736 (dp5737 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (bad_certificate)' p5738 sg22 I00 sg37 g38 sg39 g5738 sbag3 (g7 g8 NtRp5739 (dp5740 g11 Nsg12 I151 sg13 I01 sg14 g3 (g15 g8 NtRp5741 (dp5742 g18 g3 (g19 g5 (ltRp5743 (dp5744 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5745 (dp5746 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5747 (dp5748 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5749 (dp5750 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (bad_certificate)' p5751 sg22 I00 sg37 g38 sg39 g5751 sbag3 (g7 g8 NtRp5752 (dp5753 g11 Nsg12 I152 sg13 I01 sg14 g3 (g15 g8 NtRp5754 (dp5755 g18 g3 (g19 g5 (ltRp5756 (dp5757 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5758 (dp5759 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5760 (dp5761 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5762 (dp5763 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unsupported_certificate)' p5764 sg22 I00 sg37 g38 sg39 g5764 sbag3 (g7 g8 NtRp5765 (dp5766 g11 Nsg12 I153 sg13 I01 sg14 g3 (g15 g8 NtRp5767 (dp5768 g18 g3 (g19 g5 (ltRp5769 (dp5770 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5771 (dp5772 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5773 (dp5774 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5775 (dp5776 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (unsupported_certificate)' p5777 sg22 I00 sg37 g38 sg39 g5777 sbag3 (g7 g8 NtRp5778 (dp5779 g11 Nsg12 I154 sg13 I01 sg14 g3 (g15 g8 NtRp5780 (dp5781 g18 g3 (g19 g5 (ltRp5782 (dp5783 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5784 (dp5785 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5786 (dp5787 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5788 (dp5789 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (certificate_revoked)' p5790 sg22 I00 sg37 g38 sg39 g5790 sbag3 (g7 g8 NtRp5791 (dp5792 g11 Nsg12 I155 sg13 I01 sg14 g3 (g15 g8 NtRp5793 (dp5794 g18 g3 (g19 g5 (ltRp5795 (dp5796 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5797 (dp5798 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5799 (dp5800 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5801 (dp5802 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (certificate_revoked)' p5803 sg22 I00 sg37 g38 sg39 g5803 sbag3 (g7 g8 NtRp5804 (dp5805 g11 Nsg12 I156 sg13 I01 sg14 g3 (g15 g8 NtRp5806 (dp5807 g18 g3 (g19 g5 (ltRp5808 (dp5809 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5810 (dp5811 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5812 (dp5813 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5814 (dp5815 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (certificate_expired)' p5816 sg22 I00 sg37 g38 sg39 g5816 sbag3 (g7 g8 NtRp5817 (dp5818 g11 Nsg12 I157 sg13 I01 sg14 g3 (g15 g8 NtRp5819 (dp5820 g18 g3 (g19 g5 (ltRp5821 (dp5822 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5823 (dp5824 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5825 (dp5826 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5827 (dp5828 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (certificate_expired)' p5829 sg22 I00 sg37 g38 sg39 g5829 sbag3 (g7 g8 NtRp5830 (dp5831 g11 Nsg12 I158 sg13 I01 sg14 g3 (g15 g8 NtRp5832 (dp5833 g18 g3 (g19 g5 (ltRp5834 (dp5835 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5836 (dp5837 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5838 (dp5839 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5840 (dp5841 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (certificate_unknown)' p5842 sg22 I00 sg37 g38 sg39 g5842 sbag3 (g7 g8 NtRp5843 (dp5844 g11 Nsg12 I159 sg13 I01 sg14 g3 (g15 g8 NtRp5845 (dp5846 g18 g3 (g19 g5 (ltRp5847 (dp5848 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5849 (dp5850 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5851 (dp5852 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5853 (dp5854 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (certificate_unknown)' p5855 sg22 I00 sg37 g38 sg39 g5855 sbag3 (g7 g8 NtRp5856 (dp5857 g11 Nsg12 I160 sg13 I01 sg14 g3 (g15 g8 NtRp5858 (dp5859 g18 g3 (g19 g5 (ltRp5860 (dp5861 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5862 (dp5863 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5864 (dp5865 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5866 (dp5867 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (illegal_parameter)' p5868 sg22 I00 sg37 g38 sg39 g5868 sbag3 (g7 g8 NtRp5869 (dp5870 g11 Nsg12 I161 sg13 I01 sg14 g3 (g15 g8 NtRp5871 (dp5872 g18 g3 (g19 g5 (ltRp5873 (dp5874 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5875 (dp5876 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5877 (dp5878 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5879 (dp5880 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (illegal_parameter)' p5881 sg22 I00 sg37 g38 sg39 g5881 sbag3 (g7 g8 NtRp5882 (dp5883 g11 Nsg12 I162 sg13 I01 sg14 g3 (g15 g8 NtRp5884 (dp5885 g18 g3 (g19 g5 (ltRp5886 (dp5887 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5888 (dp5889 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5890 (dp5891 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5892 (dp5893 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unknown_ca)' p5894 sg22 I00 sg37 g38 sg39 g5894 sbag3 (g7 g8 NtRp5895 (dp5896 g11 Nsg12 I163 sg13 I01 sg14 g3 (g15 g8 NtRp5897 (dp5898 g18 g3 (g19 g5 (ltRp5899 (dp5900 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5901 (dp5902 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5903 (dp5904 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5905 (dp5906 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (unknown_ca)' p5907 sg22 I00 sg37 g38 sg39 g5907 sbag3 (g7 g8 NtRp5908 (dp5909 g11 Nsg12 I164 sg13 I01 sg14 g3 (g15 g8 NtRp5910 (dp5911 g18 g3 (g19 g5 (ltRp5912 (dp5913 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5914 (dp5915 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5916 (dp5917 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5918 (dp5919 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (access_denied)' p5920 sg22 I00 sg37 g38 sg39 g5920 sbag3 (g7 g8 NtRp5921 (dp5922 g11 Nsg12 I165 sg13 I01 sg14 g3 (g15 g8 NtRp5923 (dp5924 g18 g3 (g19 g5 (ltRp5925 (dp5926 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5927 (dp5928 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5929 (dp5930 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5931 (dp5932 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (access_denied)' p5933 sg22 I00 sg37 g38 sg39 g5933 sbag3 (g7 g8 NtRp5934 (dp5935 g11 Nsg12 I166 sg13 I01 sg14 g3 (g15 g8 NtRp5936 (dp5937 g18 g3 (g19 g5 (ltRp5938 (dp5939 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5940 (dp5941 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5942 (dp5943 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5944 (dp5945 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decode_error)' p5946 sg22 I00 sg37 g38 sg39 g5946 sbag3 (g7 g8 NtRp5947 (dp5948 g11 Nsg12 I167 sg13 I01 sg14 g3 (g15 g8 NtRp5949 (dp5950 g18 g3 (g19 g5 (ltRp5951 (dp5952 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5953 (dp5954 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5955 (dp5956 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5957 (dp5958 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decode_error)' p5959 sg22 I00 sg37 g38 sg39 g5959 sbag3 (g7 g8 NtRp5960 (dp5961 g11 Nsg12 I168 sg13 I01 sg14 g3 (g15 g8 NtRp5962 (dp5963 g18 g3 (g19 g5 (ltRp5964 (dp5965 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5966 (dp5967 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5968 (dp5969 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5970 (dp5971 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (decrypt_error)' p5972 sg22 I00 sg37 g38 sg39 g5972 sbag3 (g7 g8 NtRp5973 (dp5974 g11 Nsg12 I169 sg13 I01 sg14 g3 (g15 g8 NtRp5975 (dp5976 g18 g3 (g19 g5 (ltRp5977 (dp5978 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5979 (dp5980 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5981 (dp5982 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5983 (dp5984 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (decrypt_error)' p5985 sg22 I00 sg37 g38 sg39 g5985 sbag3 (g7 g8 NtRp5986 (dp5987 g11 Nsg12 I170 sg13 I01 sg14 g3 (g15 g8 NtRp5988 (dp5989 g18 g3 (g19 g5 (ltRp5990 (dp5991 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp5992 (dp5993 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp5994 (dp5995 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp5996 (dp5997 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (export_restriction)' p5998 sg22 I00 sg37 g38 sg39 g5998 sbag3 (g7 g8 NtRp5999 (dp6000 g11 Nsg12 I171 sg13 I01 sg14 g3 (g15 g8 NtRp6001 (dp6002 g18 g3 (g19 g5 (ltRp6003 (dp6004 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6005 (dp6006 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6007 (dp6008 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6009 (dp6010 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (export_restriction)' p6011 sg22 I00 sg37 g38 sg39 g6011 sbag3 (g7 g8 NtRp6012 (dp6013 g11 Nsg12 I172 sg13 I01 sg14 g3 (g15 g8 NtRp6014 (dp6015 g18 g3 (g19 g5 (ltRp6016 (dp6017 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6018 (dp6019 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6020 (dp6021 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6022 (dp6023 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (protocol_version)' p6024 sg22 I00 sg37 g38 sg39 g6024 sbag3 (g7 g8 NtRp6025 (dp6026 g11 Nsg12 I173 sg13 I01 sg14 g3 (g15 g8 NtRp6027 (dp6028 g18 g3 (g19 g5 (ltRp6029 (dp6030 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6031 (dp6032 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6033 (dp6034 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6035 (dp6036 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (protocol_version)' p6037 sg22 I00 sg37 g38 sg39 g6037 sbag3 (g7 g8 NtRp6038 (dp6039 g11 Nsg12 I174 sg13 I01 sg14 g3 (g15 g8 NtRp6040 (dp6041 g18 g3 (g19 g5 (ltRp6042 (dp6043 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6044 (dp6045 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6046 (dp6047 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6048 (dp6049 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (insufficient_security)' p6050 sg22 I00 sg37 g38 sg39 g6050 sbag3 (g7 g8 NtRp6051 (dp6052 g11 Nsg12 I175 sg13 I01 sg14 g3 (g15 g8 NtRp6053 (dp6054 g18 g3 (g19 g5 (ltRp6055 (dp6056 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6057 (dp6058 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6059 (dp6060 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6061 (dp6062 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (insufficient_security)' p6063 sg22 I00 sg37 g38 sg39 g6063 sbag3 (g7 g8 NtRp6064 (dp6065 g11 Nsg12 I176 sg13 I01 sg14 g3 (g15 g8 NtRp6066 (dp6067 g18 g3 (g19 g5 (ltRp6068 (dp6069 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6070 (dp6071 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6072 (dp6073 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6074 (dp6075 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (internal_error)' p6076 sg22 I00 sg37 g38 sg39 g6076 sbag3 (g7 g8 NtRp6077 (dp6078 g11 Nsg12 I177 sg13 I01 sg14 g3 (g15 g8 NtRp6079 (dp6080 g18 g3 (g19 g5 (ltRp6081 (dp6082 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6083 (dp6084 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6085 (dp6086 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6087 (dp6088 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (internal_error)' p6089 sg22 I00 sg37 g38 sg39 g6089 sbag3 (g7 g8 NtRp6090 (dp6091 g11 Nsg12 I178 sg13 I01 sg14 g3 (g15 g8 NtRp6092 (dp6093 g18 g3 (g19 g5 (ltRp6094 (dp6095 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6096 (dp6097 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6098 (dp6099 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6100 (dp6101 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (user_canceled)' p6102 sg22 I00 sg37 g38 sg39 g6102 sbag3 (g7 g8 NtRp6103 (dp6104 g11 Nsg12 I179 sg13 I01 sg14 g3 (g15 g8 NtRp6105 (dp6106 g18 g3 (g19 g5 (ltRp6107 (dp6108 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6109 (dp6110 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6111 (dp6112 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6113 (dp6114 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (user_canceled)' p6115 sg22 I00 sg37 g38 sg39 g6115 sbag3 (g7 g8 NtRp6116 (dp6117 g11 Nsg12 I180 sg13 I01 sg14 g3 (g15 g8 NtRp6118 (dp6119 g18 g3 (g19 g5 (ltRp6120 (dp6121 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6122 (dp6123 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6124 (dp6125 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6126 (dp6127 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (no_renegotiation)' p6128 sg22 I00 sg37 g38 sg39 g6128 sbag3 (g7 g8 NtRp6129 (dp6130 g11 Nsg12 I181 sg13 I01 sg14 g3 (g15 g8 NtRp6131 (dp6132 g18 g3 (g19 g5 (ltRp6133 (dp6134 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6135 (dp6136 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6137 (dp6138 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6139 (dp6140 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Sent (no_renegotiation)' p6141 sg22 I00 sg37 g38 sg39 g6141 sbag3 (g7 g8 NtRp6142 (dp6143 g11 Nsg12 I182 sg13 I01 sg14 g3 (g15 g8 NtRp6144 (dp6145 g18 g3 (g19 g5 (ltRp6146 (dp6147 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6148 (dp6149 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6150 (dp6151 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6152 (dp6153 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (undefined error)' p6154 sg22 I00 sg37 g38 sg39 g6154 sbag3 (g7 g8 NtRp6155 (dp6156 g11 Nsg12 I183 sg13 I01 sg14 g3 (g15 g8 NtRp6157 (dp6158 g18 g3 (g19 g5 (ltRp6159 (dp6160 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6161 (dp6162 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6163 (dp6164 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6165 (dp6166 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (undefined error)' p6167 sg22 I00 sg37 g38 sg39 g6167 sbag3 (g7 g8 NtRp6168 (dp6169 g11 Nsg12 I184 sg13 I01 sg14 g3 (g15 g8 NtRp6170 (dp6171 g18 g3 (g19 g5 (ltRp6172 (dp6173 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6174 (dp6175 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6176 (dp6177 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6178 (dp6179 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (no cipher)' p6180 sg22 I00 sg37 g38 sg39 g6180 sbag3 (g7 g8 NtRp6181 (dp6182 g11 Nsg12 I185 sg13 I01 sg14 g3 (g15 g8 NtRp6183 (dp6184 g18 g3 (g19 g5 (ltRp6185 (dp6186 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6187 (dp6188 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6189 (dp6190 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6191 (dp6192 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (no cipher)' p6193 sg22 I00 sg37 g38 sg39 g6193 sbag3 (g7 g8 NtRp6194 (dp6195 g11 Nsg12 I186 sg13 I01 sg14 g3 (g15 g8 NtRp6196 (dp6197 g18 g3 (g19 g5 (ltRp6198 (dp6199 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6200 (dp6201 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6202 (dp6203 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6204 (dp6205 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (no certificate)' p6206 sg22 I00 sg37 g38 sg39 g6206 sbag3 (g7 g8 NtRp6207 (dp6208 g11 Nsg12 I187 sg13 I01 sg14 g3 (g15 g8 NtRp6209 (dp6210 g18 g3 (g19 g5 (ltRp6211 (dp6212 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6213 (dp6214 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6215 (dp6216 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6217 (dp6218 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (no certificate)' p6219 sg22 I00 sg37 g38 sg39 g6219 sbag3 (g7 g8 NtRp6220 (dp6221 g11 Nsg12 I188 sg13 I01 sg14 g3 (g15 g8 NtRp6222 (dp6223 g18 g3 (g19 g5 (ltRp6224 (dp6225 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6226 (dp6227 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6228 (dp6229 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6230 (dp6231 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (bad certificate)' p6232 sg22 I00 sg37 g38 sg39 g6232 sbag3 (g7 g8 NtRp6233 (dp6234 g11 Nsg12 I189 sg13 I01 sg14 g3 (g15 g8 NtRp6235 (dp6236 g18 g3 (g19 g5 (ltRp6237 (dp6238 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6239 (dp6240 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6241 (dp6242 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6243 (dp6244 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (bad certificate)' p6245 sg22 I00 sg37 g38 sg39 g6245 sbag3 (g7 g8 NtRp6246 (dp6247 g11 Nsg12 I190 sg13 I01 sg14 g3 (g15 g8 NtRp6248 (dp6249 g18 g3 (g19 g5 (ltRp6250 (dp6251 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6252 (dp6253 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6254 (dp6255 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6256 (dp6257 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received (unsupported certificate)' p6258 sg22 I00 sg37 g38 sg39 g6258 sbag3 (g7 g8 NtRp6259 (dp6260 g11 Nsg12 I191 sg13 I01 sg14 g3 (g15 g8 NtRp6261 (dp6262 g18 g3 (g19 g5 (ltRp6263 (dp6264 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6265 (dp6266 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6267 (dp6268 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6269 (dp6270 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent (unsupported certificate)' p6271 sg22 I00 sg37 g38 sg39 g6271 sbag3 (g7 g8 NtRp6272 (dp6273 g11 Nsg12 I192 sg13 I01 sg14 g3 (g15 g8 NtRp6274 (dp6275 g18 g3 (g19 g5 (ltRp6276 (dp6277 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6278 (dp6279 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6280 (dp6281 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6282 (dp6283 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Received' p6284 sg22 I00 sg37 g38 sg39 g6284 sbag3 (g7 g8 NtRp6285 (dp6286 g11 Nsg12 I193 sg13 I01 sg14 g3 (g15 g8 NtRp6287 (dp6288 g18 g3 (g19 g5 (ltRp6289 (dp6290 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6291 (dp6292 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6293 (dp6294 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6295 (dp6296 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Errors Sent' p6297 sg22 I00 sg37 g38 sg39 g6297 sbag3 (g7 g8 NtRp6298 (dp6299 g11 Nsg12 I194 sg13 I01 sg14 g3 (g15 g8 NtRp6300 (dp6301 g18 g3 (g19 g5 (ltRp6302 (dp6303 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6304 (dp6305 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6306 (dp6307 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6308 (dp6309 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Client Hello Sent' p6310 sg22 I00 sg37 g38 sg39 g6310 sbag3 (g7 g8 NtRp6311 (dp6312 g11 Nsg12 I195 sg13 I01 sg14 g3 (g15 g8 NtRp6313 (dp6314 g18 g3 (g19 g5 (ltRp6315 (dp6316 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6317 (dp6318 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6319 (dp6320 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6321 (dp6322 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Client Hello Received' p6323 sg22 I00 sg37 g38 sg39 g6323 sbag3 (g7 g8 NtRp6324 (dp6325 g11 Nsg12 I196 sg13 I01 sg14 g3 (g15 g8 NtRp6326 (dp6327 g18 g3 (g19 g5 (ltRp6328 (dp6329 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6330 (dp6331 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6332 (dp6333 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6334 (dp6335 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Server Hello Sent' p6336 sg22 I00 sg37 g38 sg39 g6336 sbag3 (g7 g8 NtRp6337 (dp6338 g11 Nsg12 I197 sg13 I01 sg14 g3 (g15 g8 NtRp6339 (dp6340 g18 g3 (g19 g5 (ltRp6341 (dp6342 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6343 (dp6344 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6345 (dp6346 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6347 (dp6348 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Server Hello Received' p6349 sg22 I00 sg37 g38 sg39 g6349 sbag3 (g7 g8 NtRp6350 (dp6351 g11 Nsg12 I198 sg13 I01 sg14 g3 (g15 g8 NtRp6352 (dp6353 g18 g3 (g19 g5 (ltRp6354 (dp6355 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6356 (dp6357 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6358 (dp6359 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6360 (dp6361 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Hello Requests Sent' p6362 sg22 I00 sg37 g38 sg39 g6362 sbag3 (g7 g8 NtRp6363 (dp6364 g11 Nsg12 I199 sg13 I01 sg14 g3 (g15 g8 NtRp6365 (dp6366 g18 g3 (g19 g5 (ltRp6367 (dp6368 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6369 (dp6370 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6371 (dp6372 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6373 (dp6374 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'Hello Requests Received' p6375 sg22 I00 sg37 g38 sg39 g6375 sbag3 (g7 g8 NtRp6376 (dp6377 g11 Nsg12 I200 sg13 I01 sg14 g3 (g15 g8 NtRp6378 (dp6379 g18 g3 (g19 g5 (ltRp6380 (dp6381 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6382 (dp6383 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6384 (dp6385 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6386 (dp6387 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Session Reuse Success' p6388 sg22 I00 sg37 g38 sg39 g6388 sbag3 (g7 g8 NtRp6389 (dp6390 g11 Nsg12 I201 sg13 I01 sg14 g3 (g15 g8 NtRp6391 (dp6392 g18 g3 (g19 g5 (ltRp6393 (dp6394 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6395 (dp6396 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6397 (dp6398 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6399 (dp6400 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Session Reuse Failed' p6401 sg22 I00 sg37 g38 sg39 g6401 sbag3 (g7 g8 NtRp6402 (dp6403 g11 Nsg12 I202 sg13 I01 sg14 g3 (g15 g8 NtRp6404 (dp6405 g18 g3 (g19 g5 (ltRp6406 (dp6407 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6408 (dp6409 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6410 (dp6411 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6412 (dp6413 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Concurrent Sessions' p6414 sg22 I00 sg37 g38 sg39 g6414 sbag3 (g7 g8 NtRp6415 (dp6416 g11 Nsg12 I203 sg13 I01 sg14 g3 (g15 g8 NtRp6417 (dp6418 g18 g3 (g19 g5 (ltRp6419 (dp6420 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6421 (dp6422 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6423 (dp6424 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6425 (dp6426 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Bytes Sent' p6427 sg22 I00 sg37 g38 sg39 g6427 sbag3 (g7 g8 NtRp6428 (dp6429 g11 Nsg12 I204 sg13 I01 sg14 g3 (g15 g8 NtRp6430 (dp6431 g18 g3 (g19 g5 (ltRp6432 (dp6433 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6434 (dp6435 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6436 (dp6437 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6438 (dp6439 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Bytes Received' p6440 sg22 I00 sg37 g38 sg39 g6440 sbag3 (g7 g8 NtRp6441 (dp6442 g11 Nsg12 I205 sg13 I01 sg14 g3 (g15 g8 NtRp6443 (dp6444 g18 g3 (g19 g5 (ltRp6445 (dp6446 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6447 (dp6448 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6449 (dp6450 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6451 (dp6452 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Throughput Bytes' p6453 sg22 I00 sg37 g38 sg39 g6453 sbag3 (g7 g8 NtRp6454 (dp6455 g11 Nsg12 I206 sg13 I01 sg14 g3 (g15 g8 NtRp6456 (dp6457 g18 g3 (g19 g5 (ltRp6458 (dp6459 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6460 (dp6461 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6462 (dp6463 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6464 (dp6465 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Application Data Bytes' p6466 sg22 I00 sg37 g38 sg39 g6466 sbag3 (g7 g8 NtRp6467 (dp6468 g11 Nsg12 I207 sg13 I01 sg14 g3 (g15 g8 NtRp6469 (dp6470 g18 g3 (g19 g5 (ltRp6471 (dp6472 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6473 (dp6474 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6475 (dp6476 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6477 (dp6478 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Certificate Validation Failure' p6479 sg22 I00 sg37 g38 sg39 g6479 sbag3 (g7 g8 NtRp6480 (dp6481 g11 Nsg12 I208 sg13 I01 sg14 g3 (g15 g8 NtRp6482 (dp6483 g18 g3 (g19 g5 (ltRp6484 (dp6485 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6486 (dp6487 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6488 (dp6489 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6490 (dp6491 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Certificate Self Signed' p6492 sg22 I00 sg37 g38 sg39 g6492 sbag3 (g7 g8 NtRp6493 (dp6494 g11 Nsg12 I209 sg13 I01 sg14 g3 (g15 g8 NtRp6495 (dp6496 g18 g3 (g19 g5 (ltRp6497 (dp6498 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6499 (dp6500 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6501 (dp6502 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6503 (dp6504 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Certificate CA Signed' p6505 sg22 I00 sg37 g38 sg39 g6505 sbag3 (g7 g8 NtRp6506 (dp6507 g11 Nsg12 I210 sg13 I01 sg14 g3 (g15 g8 NtRp6508 (dp6509 g18 g3 (g19 g5 (ltRp6510 (dp6511 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6512 (dp6513 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6514 (dp6515 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6516 (dp6517 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Alerts Received (unrecognized name)' p6518 sg22 I00 sg37 g38 sg39 g6518 sbag3 (g7 g8 NtRp6519 (dp6520 g11 Nsg12 I211 sg13 I01 sg14 g3 (g15 g8 NtRp6521 (dp6522 g18 g3 (g19 g5 (ltRp6523 (dp6524 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6525 (dp6526 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6527 (dp6528 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6529 (dp6530 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL SNI extension sent successfully' p6531 sg22 I00 sg37 g38 sg39 g6531 sbag3 (g7 g8 NtRp6532 (dp6533 g11 Nsg12 I212 sg13 I01 sg14 g3 (g15 g8 NtRp6534 (dp6535 g18 g3 (g19 g5 (ltRp6536 (dp6537 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6538 (dp6539 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6540 (dp6541 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6542 (dp6543 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL SNI extension mismatch' p6544 sg22 I00 sg37 g38 sg39 g6544 sbag3 (g7 g8 NtRp6545 (dp6546 g11 Nsg12 I213 sg13 I01 sg14 g3 (g15 g8 NtRp6547 (dp6548 g18 g3 (g19 g5 (ltRp6549 (dp6550 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6551 (dp6552 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6553 (dp6554 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6555 (dp6556 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL session ticket reuse success' p6557 sg22 I00 sg37 g38 sg39 g6557 sbag3 (g7 g8 NtRp6558 (dp6559 g11 Nsg12 I214 sg13 I01 sg14 g3 (g15 g8 NtRp6560 (dp6561 g18 g3 (g19 g5 (ltRp6562 (dp6563 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6564 (dp6565 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6566 (dp6567 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6568 (dp6569 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL session ticket reuse failure' p6570 sg22 I00 sg37 g38 sg39 g6570 sbag3 (g7 g8 NtRp6571 (dp6572 g11 Nsg12 I215 sg13 I01 sg14 g3 (g15 g8 NtRp6573 (dp6574 g18 g3 (g19 g5 (ltRp6575 (dp6576 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6577 (dp6578 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6579 (dp6580 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6581 (dp6582 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Negotiation Finished Successfully' p6583 sg22 I00 sg37 g38 sg39 g6583 sbag3 (g7 g8 NtRp6584 (dp6585 g11 Nsg12 I216 sg13 I01 sg14 g3 (g15 g8 NtRp6586 (dp6587 g18 g3 (g19 g5 (ltRp6588 (dp6589 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6590 (dp6591 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6592 (dp6593 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6594 (dp6595 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'SSL Negotiation Finished Successfuly' p6596 sg22 I00 sg37 g38 sg39 g6596 sbag3 (g7 g8 NtRp6597 (dp6598 g11 Nsg12 I217 sg13 I01 sg14 g3 (g15 g8 NtRp6599 (dp6600 g18 g3 (g19 g5 (ltRp6601 (dp6602 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6603 (dp6604 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6605 (dp6606 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6607 (dp6608 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN Sent' p6609 sg22 I00 sg37 g38 sg39 g6609 sbag3 (g7 g8 NtRp6610 (dp6611 g11 Nsg12 I218 sg13 I01 sg14 g3 (g15 g8 NtRp6612 (dp6613 g18 g3 (g19 g5 (ltRp6614 (dp6615 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6616 (dp6617 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6618 (dp6619 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6620 (dp6621 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN_SYN-ACK Received' p6622 sg22 I00 sg37 g38 sg39 g6622 sbag3 (g7 g8 NtRp6623 (dp6624 g11 Nsg12 I219 sg13 I01 sg14 g3 (g15 g8 NtRp6625 (dp6626 g18 g3 (g19 g5 (ltRp6627 (dp6628 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6629 (dp6630 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6631 (dp6632 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6633 (dp6634 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN Failed' p6635 sg22 I00 sg37 g38 sg39 g6635 sbag3 (g7 g8 NtRp6636 (dp6637 g11 Nsg12 I220 sg13 I01 sg14 g3 (g15 g8 NtRp6638 (dp6639 g18 g3 (g19 g5 (ltRp6640 (dp6641 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6642 (dp6643 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6644 (dp6645 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6646 (dp6647 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP SYN-ACK Sent' p6648 sg22 I00 sg37 g38 sg39 g6648 sbag3 (g7 g8 NtRp6649 (dp6650 g11 Nsg12 I221 sg13 I01 sg14 g3 (g15 g8 NtRp6651 (dp6652 g18 g3 (g19 g5 (ltRp6653 (dp6654 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6655 (dp6656 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6657 (dp6658 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6659 (dp6660 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connection Requests Failed' p6661 sg22 I00 sg37 g38 sg39 g6661 sbag3 (g7 g8 NtRp6662 (dp6663 g11 Nsg12 I222 sg13 I01 sg14 g3 (g15 g8 NtRp6664 (dp6665 g18 g3 (g19 g5 (ltRp6666 (dp6667 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6668 (dp6669 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6670 (dp6671 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6672 (dp6673 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections Established' p6674 sg22 I00 sg37 g38 sg39 g6674 sbag3 (g7 g8 NtRp6675 (dp6676 g11 Nsg12 I223 sg13 I01 sg14 g3 (g15 g8 NtRp6677 (dp6678 g18 g3 (g19 g5 (ltRp6679 (dp6680 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6681 (dp6682 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6683 (dp6684 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6685 (dp6686 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN Sent' p6687 sg22 I00 sg37 g38 sg39 g6687 sbag3 (g7 g8 NtRp6688 (dp6689 g11 Nsg12 I224 sg13 I01 sg14 g3 (g15 g8 NtRp6690 (dp6691 g18 g3 (g19 g5 (ltRp6692 (dp6693 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6694 (dp6695 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6696 (dp6697 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6698 (dp6699 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN Received' p6700 sg22 I00 sg37 g38 sg39 g6700 sbag3 (g7 g8 NtRp6701 (dp6702 g11 Nsg12 I225 sg13 I01 sg14 g3 (g15 g8 NtRp6703 (dp6704 g18 g3 (g19 g5 (ltRp6705 (dp6706 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6707 (dp6708 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6709 (dp6710 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6711 (dp6712 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN-ACK Sent' p6713 sg22 I00 sg37 g38 sg39 g6713 sbag3 (g7 g8 NtRp6714 (dp6715 g11 Nsg12 I226 sg13 I01 sg14 g3 (g15 g8 NtRp6716 (dp6717 g18 g3 (g19 g5 (ltRp6718 (dp6719 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6720 (dp6721 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6722 (dp6723 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6724 (dp6725 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP FIN-ACK Received' p6726 sg22 I00 sg37 g38 sg39 g6726 sbag3 (g7 g8 NtRp6727 (dp6728 g11 Nsg12 I227 sg13 I01 sg14 g3 (g15 g8 NtRp6729 (dp6730 g18 g3 (g19 g5 (ltRp6731 (dp6732 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6733 (dp6734 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6735 (dp6736 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6737 (dp6738 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Resets Sent' p6739 sg22 I00 sg37 g38 sg39 g6739 sbag3 (g7 g8 NtRp6740 (dp6741 g11 Nsg12 I228 sg13 I01 sg14 g3 (g15 g8 NtRp6742 (dp6743 g18 g3 (g19 g5 (ltRp6744 (dp6745 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6746 (dp6747 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6748 (dp6749 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6750 (dp6751 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Resets Received' p6752 sg22 I00 sg37 g38 sg39 g6752 sbag3 (g7 g8 NtRp6753 (dp6754 g11 Nsg12 I229 sg13 I01 sg14 g3 (g15 g8 NtRp6755 (dp6756 g18 g3 (g19 g5 (ltRp6757 (dp6758 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6759 (dp6760 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6761 (dp6762 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6763 (dp6764 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Retries' p6765 sg22 I00 sg37 g38 sg39 g6765 sbag3 (g7 g8 NtRp6766 (dp6767 g11 Nsg12 I230 sg13 I01 sg14 g3 (g15 g8 NtRp6768 (dp6769 g18 g3 (g19 g5 (ltRp6770 (dp6771 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6772 (dp6773 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6774 (dp6775 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6776 (dp6777 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Timeouts' p6778 sg22 I00 sg37 g38 sg39 g6778 sbag3 (g7 g8 NtRp6779 (dp6780 g11 Nsg12 I231 sg13 I01 sg14 g3 (g15 g8 NtRp6781 (dp6782 g18 g3 (g19 g5 (ltRp6783 (dp6784 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6785 (dp6786 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6787 (dp6788 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6789 (dp6790 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Accept Queue Entries' p6791 sg22 I00 sg37 g38 sg39 g6791 sbag3 (g7 g8 NtRp6792 (dp6793 g11 Nsg12 I232 sg13 I01 sg14 g3 (g15 g8 NtRp6794 (dp6795 g18 g3 (g19 g5 (ltRp6796 (dp6797 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6798 (dp6799 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6800 (dp6801 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6802 (dp6803 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Listen Queue Drops' p6804 sg22 I00 sg37 g38 sg39 g6804 sbag3 (g7 g8 NtRp6805 (dp6806 g11 Nsg12 I233 sg13 I01 sg14 g3 (g15 g8 NtRp6807 (dp6808 g18 g3 (g19 g5 (ltRp6809 (dp6810 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6811 (dp6812 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6813 (dp6814 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6815 (dp6816 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in ESTABLISHED State' p6817 sg22 I00 sg37 g38 sg39 g6817 sbag3 (g7 g8 NtRp6818 (dp6819 g11 Nsg12 I234 sg13 I01 sg14 g3 (g15 g8 NtRp6820 (dp6821 g18 g3 (g19 g5 (ltRp6822 (dp6823 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6824 (dp6825 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6826 (dp6827 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6828 (dp6829 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in SYN-SENT State' p6830 sg22 I00 sg37 g38 sg39 g6830 sbag3 (g7 g8 NtRp6831 (dp6832 g11 Nsg12 I235 sg13 I01 sg14 g3 (g15 g8 NtRp6833 (dp6834 g18 g3 (g19 g5 (ltRp6835 (dp6836 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6837 (dp6838 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6839 (dp6840 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6841 (dp6842 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in SYN-RECEIVED State' p6843 sg22 I00 sg37 g38 sg39 g6843 sbag3 (g7 g8 NtRp6844 (dp6845 g11 Nsg12 I236 sg13 I01 sg14 g3 (g15 g8 NtRp6846 (dp6847 g18 g3 (g19 g5 (ltRp6848 (dp6849 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6850 (dp6851 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6852 (dp6853 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6854 (dp6855 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in FIN-WAIT-1 State' p6856 sg22 I00 sg37 g38 sg39 g6856 sbag3 (g7 g8 NtRp6857 (dp6858 g11 Nsg12 I237 sg13 I01 sg14 g3 (g15 g8 NtRp6859 (dp6860 g18 g3 (g19 g5 (ltRp6861 (dp6862 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6863 (dp6864 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6865 (dp6866 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6867 (dp6868 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in FIN-WAIT-2 State' p6869 sg22 I00 sg37 g38 sg39 g6869 sbag3 (g7 g8 NtRp6870 (dp6871 g11 Nsg12 I238 sg13 I01 sg14 g3 (g15 g8 NtRp6872 (dp6873 g18 g3 (g19 g5 (ltRp6874 (dp6875 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6876 (dp6877 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6878 (dp6879 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6880 (dp6881 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in TIME-WAIT State' p6882 sg22 I00 sg37 g38 sg39 g6882 sbag3 (g7 g8 NtRp6883 (dp6884 g11 Nsg12 I239 sg13 I01 sg14 g3 (g15 g8 NtRp6885 (dp6886 g18 g3 (g19 g5 (ltRp6887 (dp6888 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6889 (dp6890 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6891 (dp6892 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6893 (dp6894 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in CLOSE STATE' p6895 sg22 I00 sg37 g38 sg39 g6895 sbag3 (g7 g8 NtRp6896 (dp6897 g11 Nsg12 I240 sg13 I01 sg14 g3 (g15 g8 NtRp6898 (dp6899 g18 g3 (g19 g5 (ltRp6900 (dp6901 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6902 (dp6903 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6904 (dp6905 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6906 (dp6907 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in CLOSE-WAIT State' p6908 sg22 I00 sg37 g38 sg39 g6908 sbag3 (g7 g8 NtRp6909 (dp6910 g11 Nsg12 I241 sg13 I01 sg14 g3 (g15 g8 NtRp6911 (dp6912 g18 g3 (g19 g5 (ltRp6913 (dp6914 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6915 (dp6916 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6917 (dp6918 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6919 (dp6920 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in LAST-ACK State' p6921 sg22 I00 sg37 g38 sg39 g6921 sbag3 (g7 g8 NtRp6922 (dp6923 g11 Nsg12 I242 sg13 I01 sg14 g3 (g15 g8 NtRp6924 (dp6925 g18 g3 (g19 g5 (ltRp6926 (dp6927 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6928 (dp6929 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6930 (dp6931 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6932 (dp6933 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in LISTENING State' p6934 sg22 I00 sg37 g38 sg39 g6934 sbag3 (g7 g8 NtRp6935 (dp6936 g11 Nsg12 I243 sg13 I01 sg14 g3 (g15 g8 NtRp6937 (dp6938 g18 g3 (g19 g5 (ltRp6939 (dp6940 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6941 (dp6942 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6943 (dp6944 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6945 (dp6946 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Connections in CLOSING State' p6947 sg22 I00 sg37 g38 sg39 g6947 sbag3 (g7 g8 NtRp6948 (dp6949 g11 Nsg12 I244 sg13 I01 sg14 g3 (g15 g8 NtRp6950 (dp6951 g18 g3 (g19 g5 (ltRp6952 (dp6953 g12 I-1 sg22 I00 sg11 Nsbsg23 g3 (g24 g5 (ltRp6954 (dp6955 g12 I-1 sg22 I00 sg11 Nsbsg11 Nsg12 I-1 sg27 g3 (g28 g5 (ltRp6956 (dp6957 g12 I-1 sg22 I00 sg11 Nsbsg22 I00 sg31 g3 (g32 g5 (ltRp6958 (dp6959 g12 I-1 sg22 I00 sg11 Nsbsbsg35 S'TCP Internally Aborted Connections' p6960 sg22 I00 sg37 g38 sg39 g6960 sbatRp6961 (dp6962 g12 I244 sg22 I00 sg11 Nsbs.</svRestConfiguration> </statManagerOptions> <currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent> 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/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/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/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml index d08dbaa6e..e4f715c84 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml @@ -22,6 +22,11 @@ description: > {% 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 @@ -39,6 +44,11 @@ scenarios: 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 @@ -44,6 +44,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/yardstick/benchmark/contexts/standalone/model.py b/yardstick/benchmark/contexts/standalone/model.py index fa78fc1eb..1004c62d1 100644 --- a/yardstick/benchmark/contexts/standalone/model.py +++ b/yardstick/benchmark/contexts/standalone/model.py @@ -564,7 +564,7 @@ class StandaloneContextHelper(object): key_filename = ''.join( [constants.YARDSTICK_ROOT_PATH, 'yardstick/resources/files/yardstick_key-', - id_name]) + id_name, '-', vm_name]) ssh.SSH.gen_keys(key_filename) node['key_filename'] = key_filename # Update image with public key diff --git a/yardstick/benchmark/contexts/standalone/ovs_dpdk.py b/yardstick/benchmark/contexts/standalone/ovs_dpdk.py index 73311f0c2..a1af3c72b 100644 --- a/yardstick/benchmark/contexts/standalone/ovs_dpdk.py +++ b/yardstick/benchmark/contexts/standalone/ovs_dpdk.py @@ -46,7 +46,8 @@ class OvsDpdkContext(base.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' @@ -145,8 +146,8 @@ class OvsDpdkContext(base.Context): 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)), lcore_mask, @@ -166,8 +167,7 @@ class OvsDpdkContext(base.Context): 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}' + 'set Interface {port} type={type_}{dpdk_args}{dpdk_rxq}') chmod_vpath = 'chmod 0777 {0}/var/run/openvswitch/dpdkvhostuser*' cmd_list = [ @@ -176,6 +176,8 @@ class OvsDpdkContext(base.Context): 'ovs-vsctl add-br {0} -- set bridge {0} datapath_type=netdev'. format(MAIN_BRIDGE) ] + dpdk_rxq = " options:n_rxq={queue}".format( + queue=self.ovs_properties.get("queues", 1)) ordered_network = collections.OrderedDict(self.networks) for index, vnf in enumerate(ordered_network.values()): @@ -183,10 +185,7 @@ class OvsDpdkContext(base.Context): dpdk_args = " options:dpdk-devargs=%s" % vnf.get("phy_port") dpdk_list.append(ovs_add_port.format( br=MAIN_BRIDGE, 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))) + type_='dpdk', dpdk_args=dpdk_args, dpdk_rxq=dpdk_rxq)) # Sorting the array to make sure we execute dpdk0... in the order list.sort(dpdk_list) @@ -196,7 +195,7 @@ class OvsDpdkContext(base.Context): for index, _ in enumerate(ordered_network): cmd_list.append(ovs_add_port.format( br=MAIN_BRIDGE, port='dpdkvhostuser%s' % index, - type_='dpdkvhostuser', dpdk_args="")) + type_='dpdkvhostuser', dpdk_args="", dpdk_rxq="")) ovs_flow = ("ovs-ofctl add-flow {0} in_port=%s,action=output:%s". format(MAIN_BRIDGE)) diff --git a/yardstick/benchmark/runners/duration.py b/yardstick/benchmark/runners/duration.py index 14fd8bb47..55c3690fd 100644 --- a/yardstick/benchmark/runners/duration.py +++ b/yardstick/benchmark/runners/duration.py @@ -106,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/proxduration.py b/yardstick/benchmark/runners/proxduration.py index 61a468fd3..e217904b9 100644 --- a/yardstick/benchmark/runners/proxduration.py +++ b/yardstick/benchmark/runners/proxduration.py @@ -112,7 +112,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/scenarios/base.py b/yardstick/benchmark/scenarios/base.py index 90a87ac29..1737bb942 100644 --- a/yardstick/benchmark/scenarios/base.py +++ b/yardstick/benchmark/scenarios/base.py @@ -50,6 +50,9 @@ class Scenario(object): def run(self, *args): """Entry point for scenario classes, called from runner worker""" + def is_ended(self): + return False + def teardown(self): """Default teardown implementation for Scenario classes""" pass diff --git a/yardstick/benchmark/scenarios/networking/vnf_generic.py b/yardstick/benchmark/scenarios/networking/vnf_generic.py index 0a06178af..d8f062522 100644 --- a/yardstick/benchmark/scenarios/networking/vnf_generic.py +++ b/yardstick/benchmark/scenarios/networking/vnf_generic.py @@ -63,6 +63,9 @@ class NetworkServiceTestCase(scenario_base.Scenario): self.bin_path = get_nsb_option('bin_path', '') self._mq_ids = [] + 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 diff --git a/yardstick/benchmark/scenarios/parser/parser.py b/yardstick/benchmark/scenarios/parser/parser.py index 5b2b49c2c..a0f8e9e72 100644 --- a/yardstick/benchmark/scenarios/parser/parser.py +++ b/yardstick/benchmark/scenarios/parser/parser.py @@ -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" diff --git a/yardstick/benchmark/scenarios/storage/storperf.py b/yardstick/benchmark/scenarios/storage/storperf.py index 8093cd2d2..e4c72dc8f 100644 --- a/yardstick/benchmark/scenarios/storage/storperf.py +++ b/yardstick/benchmark/scenarios/storage/storperf.py @@ -87,7 +87,9 @@ class StorPerf(base.Scenario): 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: @@ -213,11 +215,20 @@ class StorPerf(base.Scenario): # else: # time.sleep(int(esti_time)/2) - result_res = requests.get('http://%s:5000/api/v1.0/jobs?id=%s' % - (self.target, job_id)) + 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?' + 'type=status&id=%s' % (self.target, job_id)) result_res_content = jsonutils.loads( result_res.content) - result.update(result_res_content) def initialize_disks(self): diff --git a/yardstick/common/exceptions.py b/yardstick/common/exceptions.py index 10c1f3f27..5e0df973a 100644 --- a/yardstick/common/exceptions.py +++ b/yardstick/common/exceptions.py @@ -83,6 +83,10 @@ class InvalidType(YardstickException): message = 'Type "%(type_to_convert)s" is not valid' +class InvalidRxfFile(YardstickException): + message = 'Loaded rxf file has unexpected format' + + class InfluxDBConfigurationMissing(YardstickException): message = ('InfluxDB configuration is not available. Add "influxdb" as ' 'a dispatcher and the configuration section') @@ -420,3 +424,15 @@ class InvalidMacAddress(YardstickException): 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/network_services/libs/ixia_libs/ixnet/ixnet_api.py b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py index 7548b338a..556682b29 100644 --- a/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py +++ b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.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. @@ -41,15 +41,29 @@ C_VLAN = 1 ETHER_TYPE_802_1ad = '0x88a8' -IP_VERSION_4_MASK = 24 -IP_VERSION_6_MASK = 64 - TRAFFIC_STATUS_STARTED = 'started' TRAFFIC_STATUS_STOPPED = 'stopped' +PROTOCOL_STATUS_UP = 'up' +PROTOCOL_STATUS_DOWN = ['down', 'notStarted'] + SUPPORTED_PROTO = [PROTO_UDP] +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 @@ -107,6 +121,11 @@ class IxNextgen(object): # pragma: no cover 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_config_element_by_flow_group_name(self, flow_group_name): """Get a config element using the flow group name @@ -161,6 +180,15 @@ class IxNextgen(object): # pragma: no cover 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: (str) protocol status: 'up', 'down' or 'notStarted' + """ + return self.ixnet.getAttribute(proto, '-sessionStatus')[0] + def is_traffic_running(self): """Returns true if traffic state == TRAFFIC_STATUS_STARTED""" return self._get_traffic_state() == TRAFFIC_STATUS_STARTED @@ -169,6 +197,28 @@ class IxNextgen(object): # pragma: no cover """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(self._get_protocol_status(proto) == PROTOCOL_STATUS_UP + for proto in protocols) + + 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(self._get_protocol_status(proto) in PROTOCOL_STATUS_DOWN + for proto in protocols) + @staticmethod def _parse_framesize(framesize): """Parse "framesize" config param. to return a list of weighted pairs @@ -225,15 +275,20 @@ class IxNextgen(object): # pragma: no cover zip(self._cfg['cards'], self._cfg['ports'])] log.info('Create and assign vports: %s', ports) - for port in ports: - vport = self.ixnet.add(self.ixnet.getRoot(), 'vport') - self.ixnet.commit() - self.ixnet.execute('assignPorts', [port], [], [vport], True) + + 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): + 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 @@ -243,7 +298,7 @@ class IxNextgen(object): # pragma: no cover traffic_item = self.ixnet.add(self.ixnet.getRoot() + '/traffic', 'trafficItem') self.ixnet.setMultiAttribute(traffic_item, '-name', 'RFC2544', - '-trafficType', 'raw') + '-trafficType', traffic_type) self.ixnet.commit() traffic_item_id = self.ixnet.remapIds(traffic_item)[0] @@ -251,27 +306,25 @@ class IxNextgen(object): # pragma: no cover '-trackBy', 'trafficGroupId0') self.ixnet.commit() - def _create_flow_groups(self): - """Create the flow groups between the assigned ports""" + 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') - vports = self.ixnet.getList(self.ixnet.getRoot(), 'vport') - uplink_ports = vports[::2] - downlink_ports = vports[1::2] + index = 0 - for up, down in zip(uplink_ports, downlink_ports): + 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 + '/protocols'], - '-destinations', [down + '/protocols']) + '-sources', [up], + '-destinations', [down]) self.ixnet.setMultiAttribute( endpoint_set_2, '-name', str(index + 2), - '-sources', [down + '/protocols'], - '-destinations', [up + '/protocols']) + '-sources', [down], + '-destinations', [up]) self.ixnet.commit() index += 2 @@ -281,7 +334,7 @@ class IxNextgen(object): # pragma: no cover '/traffic/protocolTemplate:"{}"'.format(protocol_name)) self.ixnet.execute('append', previous_element, protocol) - def _setup_config_elements(self): + def _setup_config_elements(self, add_default_proto=True): """Setup the config elements The traffic item is configured to allow individual configurations per @@ -303,12 +356,13 @@ class IxNextgen(object): # pragma: no cover self.ixnet.setAttribute(config_element + '/frameRateDistribution', '-streamDistribution', 'splitRateEvenly') self.ixnet.commit() - 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 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"') - def create_traffic_model(self): + def create_traffic_model(self, uplink_ports, downlink_ports): """Create a traffic item and the needed flow groups Each flow group inside the traffic item (only one is present) @@ -319,10 +373,27 @@ class IxNextgen(object): # pragma: no cover FlowGroup3: port3 -> port4 FlowGroup4: port3 <- port4 """ - self._create_traffic_item() - self._create_flow_groups() + 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() + def create_ipv4_traffic_model(self, uplink_topologies, downlink_topologies): + """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_topologies, downlink_topologies) + self._setup_config_elements(False) + def _update_frame_mac(self, ethernet_descriptor, field, mac_address): """Set the MAC address in a config element stack Ethernet field @@ -366,16 +437,15 @@ class IxNextgen(object): # pragma: no cover raise exceptions.IxNetworkFlowNotPresent(flow_group=fg_id) type = traffic_param.get('traffic_type', 'fixedDuration') - rate = traffic_param['rate'] 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']['framesize']) - srcmac = str(traffic_param.get('srcmac', '00:00:00:00:00:01')) - dstmac = str(traffic_param.get('dstmac', '00:00:00:00:00:02')) + 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']['QinQ']: + 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'] @@ -400,21 +470,27 @@ class IxNextgen(object): # pragma: no cover self.ixnet.setMultiAttribute( config_element + '/transmissionControl', '-type', type, '-duration', duration) + self.ixnet.setMultiAttribute( config_element + '/frameRate', - '-rate', rate, '-type', rate_unit) - self.ixnet.setMultiAttribute( - config_element + '/frameSize', - '-type', 'weightedPairs', - '-weightedRangePairs', weighted_range_pairs) + '-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() - self._update_frame_mac( - self._get_stack_item(fg_id, PROTO_ETHERNET)[0], - 'destinationAddress', dstmac) - self._update_frame_mac( - self._get_stack_item(fg_id, PROTO_ETHERNET)[0], - 'sourceAddress', srcmac) + 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 = { @@ -474,20 +550,24 @@ class IxNextgen(object): # pragma: no cover if not self._get_config_element_by_flow_group_name(fg_id): raise exceptions.IxNetworkFlowNotPresent(flow_group=fg_id) - count = traffic_param['outer_l3']['count'] - srcip = str(traffic_param['outer_l3']['srcip']) - dstip = str(traffic_param['outer_l3']['dstip']) - srcseed = traffic_param['outer_l3']['srcseed'] - dstseed = traffic_param['outer_l3']['dstseed'] - srcmask = traffic_param['outer_l3']['srcmask'] or IP_VERSION_4_MASK - dstmask = traffic_param['outer_l3']['dstmask'] or IP_VERSION_4_MASK - - self._update_ipv4_address( - self._get_stack_item(fg_id, PROTO_IPV4)[0], - 'srcIp', srcip, srcseed, srcmask, count) - self._update_ipv4_address( - self._get_stack_item(fg_id, PROTO_IPV4)[0], - 'dstIp', dstip, dstseed, dstmask, count) + 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 + 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) def update_l4(self, traffic): """Update the L4 headers @@ -501,7 +581,10 @@ class IxNextgen(object): # pragma: no cover if not self._get_config_element_by_flow_group_name(fg_id): raise exceptions.IxNetworkFlowNotPresent(flow_group=fg_id) - proto = traffic_param['outer_l3']['proto'] + 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) @@ -514,12 +597,15 @@ class IxNextgen(object): # pragma: no cover dstport = traffic_param['outer_l4']['dstport'] dstmask = traffic_param['outer_l4']['dstportmask'] - if proto in SUPPORTED_PROTO: - self._update_udp_port(self._get_stack_item(fg_id, proto)[0], - 'srcPort', srcport, seed, srcmask, count) - - self._update_udp_port(self._get_stack_item(fg_id, proto)[0], - 'dstPort', dstport, seed, dstmask, count) + 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): @@ -553,6 +639,39 @@ class IxNextgen(object): # pragma: no cover 'getColumnValues', view_obj, data_ixia) for data_yardstick, data_ixia in name_map.items()} + 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 @@ -570,6 +689,12 @@ class IxNextgen(object): # pragma: no cover self.LATENCY_NAME_MAP)) return stats + 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 @@ -613,6 +738,60 @@ class IxNextgen(object): # pragma: no cover 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', @@ -698,3 +877,29 @@ class IxNextgen(object): # pragma: no cover 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 diff --git a/yardstick/network_services/traffic_profile/__init__.py b/yardstick/network_services/traffic_profile/__init__.py index a1b26a24d..91d8a665f 100644 --- a/yardstick/network_services/traffic_profile/__init__.py +++ b/yardstick/network_services/traffic_profile/__init__.py @@ -28,6 +28,7 @@ def register_modules(): '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', ] for module in modules: diff --git a/yardstick/network_services/traffic_profile/base.py b/yardstick/network_services/traffic_profile/base.py index 4fbceea9b..ea3f17874 100644 --- a/yardstick/network_services/traffic_profile/base.py +++ b/yardstick/network_services/traffic_profile/base.py @@ -97,6 +97,9 @@ class TrafficProfile(object): self.params = tp_config self.config = TrafficProfileConfig(tp_config) + def is_ended(self): + return False + 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 6cbdb8ab2..3ccec637d 100644 --- a/yardstick/network_services/traffic_profile/http_ixload.py +++ b/yardstick/network_services/traffic_profile/http_ixload.py @@ -106,8 +106,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): @@ -171,6 +173,90 @@ 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 exceptions.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 exceptions.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"]) + def start_http_test(self): self.ix_load = IxLoad() @@ -197,16 +283,18 @@ 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) + self.reassign_ports(self.test, repository, self.ports_to_reassign) except Exception: # pylint: disable=broad-except LOG.exception("Exception occurred during reassign_ports") @@ -246,7 +334,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() @@ -258,7 +346,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) @@ -296,6 +384,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 44bf2eafc..0b7a78c2c 100644 --- a/yardstick/network_services/traffic_profile/ixia_rfc2544.py +++ b/yardstick/network_services/traffic_profile/ixia_rfc2544.py @@ -28,6 +28,8 @@ class IXIARFC2544Profile(trex_traffic_profile.TrexProfile): DOWNLINK = 'downlink' DROP_PERCENT_ROUND = 6 RATE_ROUND = 5 + STATUS_SUCCESS = "Success" + STATUS_FAIL = "Failure" def __init__(self, yaml_data): super(IXIARFC2544Profile, self).__init__(yaml_data) @@ -56,68 +58,83 @@ class IXIARFC2544Profile(trex_traffic_profile.TrexProfile): 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 - - if value.get('outer_l3v4'): - ip = value['outer_l3v4'] - src_key, dst_key = 'srcip4', 'dstip4' - else: - ip = value['outer_l3v6'] - src_key, dst_key = 'srcip6', 'dstip6' - - srcip, srcmask = self._get_ip_and_mask(ip[src_key]) - dstip, dstmask = self._get_ip_and_mask(ip[dst_key]) - - outer_l4 = value.get('outer_l4') - src_port, src_port_mask = self._get_fixed_and_mask(outer_l4['srcport']) - dst_port, dst_port_mask = self._get_fixed_and_mask(outer_l4['dstport']) - result[traffickey] = { - 'bidir': False, - 'id': port_id, - 'rate': self.rate, - 'rate_unit': self.rate_unit, - 'outer_l2': { - 'framesize': value['outer_l2']['framesize'], - 'framesPerSecond': True, - 'QinQ': value['outer_l2'].get('QinQ'), - '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'], - 'srcseed': ip.get('srcseed', 1), - 'dstseed': ip.get('dstseed', 1), - 'srcip': srcip, - 'dstip': dstip, - 'srcmask': srcmask, - 'dstmask': dstmask, - 'type': key, - 'proto': ip['proto'], - }, - 'outer_l4': { - 'srcport': src_port, - 'dstport': dst_port, - 'srcportmask': src_port_mask, - 'dstportmask': dst_port_mask, - 'count': outer_l4['count'], - 'seed': outer_l4.get('seed', 1) - } - - } - except KeyError: + 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': {}, + } + + 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'), + }) + + 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, ixia_obj): @@ -159,7 +176,7 @@ class IXIARFC2544Profile(trex_traffic_profile.TrexProfile): self._ixia_traffic_generate(traffic, ixia_obj) return first_run - def get_drop_percentage(self, samples, tol_min, tolerance, + def get_drop_percentage(self, samples, tol_min, tolerance, precision, first_run=False): completed = False drop_percent = 100 @@ -193,6 +210,10 @@ class IXIARFC2544Profile(trex_traffic_profile.TrexProfile): else: 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]['Store-Forward_Avg_latency_ns'] for iface in samples])) / num_ifaces @@ -203,6 +224,10 @@ class IXIARFC2544Profile(trex_traffic_profile.TrexProfile): sum([samples[iface]['Store-Forward_Max_latency_ns'] for iface in samples])) / num_ifaces + 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['DropPercentage'] = drop_percent 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/prox_binsearch.py b/yardstick/network_services/traffic_profile/prox_binsearch.py index 16a0411ec..f924cf419 100644 --- a/yardstick/network_services/traffic_profile/prox_binsearch.py +++ b/yardstick/network_services/traffic_profile/prox_binsearch.py @@ -66,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. @@ -93,7 +96,7 @@ 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 + theor_max_thruput = 0.0 result_samples = {} @@ -195,9 +198,9 @@ class ProxBinSearchProfile(ProxProfile): LOG.info( ">>>##>> Result Reached PktSize %s Theor_Max_Thruput %s Actual_throughput %s", - pkt_size, theor_max_thruput, result_samples.get("RxThroughput", 0)) + 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) + 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_profile.py b/yardstick/network_services/traffic_profile/prox_profile.py index 343ef1da2..de4b3f9a0 100644 --- a/yardstick/network_services/traffic_profile/prox_profile.py +++ b/yardstick/network_services/traffic_profile/prox_profile.py @@ -16,6 +16,7 @@ from __future__ import absolute_import import logging +import multiprocessing from yardstick.network_services.traffic_profile.base import TrafficProfile from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxProfileHelper @@ -56,7 +57,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 @@ -116,7 +117,7 @@ class ProxProfile(TrafficProfile): try: pkt_size = next(self.pkt_size_iterator) except StopIteration: - self.done = True + self.done.set() return # Adjust packet size upwards if it's less than the minimum diff --git a/yardstick/network_services/utils.py b/yardstick/network_services/utils.py index 4b987fafe..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") 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..115fddcf0 --- /dev/null +++ b/yardstick/network_services/vnf_generic/vnf/agnostic_vnf.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 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, task_id): + super(AgnosticVnf, self).__init__(name, vnfd, task_id) + + 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/epc_vnf.py b/yardstick/network_services/vnf_generic/vnf/epc_vnf.py new file mode 100644 index 000000000..66d16d07f --- /dev/null +++ b/yardstick/network_services/vnf_generic/vnf/epc_vnf.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 logging + +from yardstick.network_services.vnf_generic.vnf import base + +LOG = logging.getLogger(__name__) + + +class EPCVnf(base.GenericVNF): + + def __init__(self, name, vnfd, task_id): + super(EPCVnf, self).__init__(name, vnfd, task_id) + + 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/prox_helpers.py b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py index 3241719e8..321c05779 100644 --- a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py +++ b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py @@ -984,7 +984,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 diff --git a/yardstick/network_services/vnf_generic/vnf/sample_vnf.py b/yardstick/network_services/vnf_generic/vnf/sample_vnf.py index a09f2a7a9..21719cbf0 100644 --- a/yardstick/network_services/vnf_generic/vnf/sample_vnf.py +++ b/yardstick/network_services/vnf_generic/vnf/sample_vnf.py @@ -13,6 +13,7 @@ # limitations under the License. import logging +import decimal from multiprocessing import Queue, Value, Process import os import posixpath @@ -499,6 +500,7 @@ class Rfc2544ResourceHelper(object): self._rfc2544 = None self._tolerance_low = None self._tolerance_high = None + self._tolerance_precision = None @property def rfc2544(self): @@ -519,6 +521,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 = \ @@ -537,9 +545,13 @@ class Rfc2544ResourceHelper(object): 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): diff --git a/yardstick/network_services/vnf_generic/vnf/tg_ixload.py b/yardstick/network_services/vnf_generic/vnf/tg_ixload.py index e0fc47dbf..d25402740 100644 --- a/yardstick/network_services/vnf_generic/vnf/tg_ixload.py +++ b/yardstick/network_services/vnf_generic/vnf/tg_ixload.py @@ -20,9 +20,11 @@ import os import shutil import subprocess +from oslo_serialization import jsonutils + from yardstick.common import utils -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 import sample_vnf + LOG = logging.getLogger(__name__) @@ -43,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}" @@ -59,7 +62,7 @@ class ResourceDataHelper(list): } -class IxLoadResourceHelper(ClientResourceHelper): +class IxLoadResourceHelper(sample_vnf.ClientResourceHelper): RESULTS_MOUNT = "/mnt/Results" @@ -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, task_id, setup_env_helper_type=None, resource_helper_type=None): @@ -132,6 +135,21 @@ class IxLoadTrafficGen(SampleVNFTrafficGen): name, vnfd, task_id, setup_env_helper_type, 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) + + links[name]["ip"]["gateway"] = gateway + 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 @@ -143,11 +161,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") 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..2fba89b22 --- /dev/null +++ b/yardstick/network_services/vnf_generic/vnf/tg_landslide.py @@ -0,0 +1,1226 @@ +# 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 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, task_id, 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, task_id, + 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_rfc2544_ixia.py b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py index 94ab06980..89f8194c0 100644 --- a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py +++ b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py @@ -96,7 +96,10 @@ class IxiaResourceHelper(ClientResourceHelper): """Initialize the IXIA IxNetwork client and configure the server""" self.client.clear_config() self.client.assign_ports() - self.client.create_traffic_model() + vports = self.client.get_vports() + uplink_vports = vports[::2] + downlink_vports = vports[1::2] + self.client.create_traffic_model(uplink_vports, downlink_vports) def run_traffic(self, traffic_profile, *args): if self._terminated.value: @@ -104,6 +107,7 @@ class IxiaResourceHelper(ClientResourceHelper): min_tol = self.rfc_helper.tolerance_low max_tol = self.rfc_helper.tolerance_high + precision = self.rfc_helper.tolerance_precision default = "00:00:00:00:00:00" self._build_ports() @@ -131,7 +135,7 @@ class IxiaResourceHelper(ClientResourceHelper): traffic_profile.config.duration) completed, samples = traffic_profile.get_drop_percentage( - samples, min_tol, max_tol, first_run=first_run) + samples, min_tol, max_tol, precision, first_run=first_run) self._queue.put(samples) if completed: diff --git a/yardstick/tests/functional/common/test_packages.py b/yardstick/tests/functional/common/test_packages.py index 5dead4e55..14de46bcf 100644 --- a/yardstick/tests/functional/common/test_packages.py +++ b/yardstick/tests/functional/common/test_packages.py @@ -39,16 +39,21 @@ class PipPackagesTestCase(base.BaseFunctionalTestCase): utils.execute_command('sudo rm -rf %s' % self.TMP_FOLDER) def _remove_package(self, package): - os.system('%s pip uninstall %s -y' % (self.PYTHONPATH, 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('pip list', + 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 diff --git a/yardstick/tests/unit/benchmark/runner/test_arithmetic.py b/yardstick/tests/unit/benchmark/runner/test_arithmetic.py index 7b1e1e976..35d935cd5 100644 --- a/yardstick/tests/unit/benchmark/runner/test_arithmetic.py +++ b/yardstick/tests/unit/benchmark/runner/test_arithmetic.py @@ -14,16 +14,26 @@ 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): - def __init__(self): + 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): @@ -218,3 +228,219 @@ class ArithmeticRunnerTest(unittest.TestCase): 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_duration.py b/yardstick/tests/unit/benchmark/runner/test_duration.py index d4801ef2c..fa47e96bf 100644 --- a/yardstick/tests/unit/benchmark/runner/test_duration.py +++ b/yardstick/tests/unit/benchmark/runner/test_duration.py @@ -97,9 +97,9 @@ class DurationRunnerTest(unittest.TestCase): multiprocessing.Event(), mock.Mock()) self._assert_defaults__worker_run_setup_and_teardown() - self.assertGreater(self.benchmark.pre_run_wait_time.call_count, 2) - self.assertGreater(self.benchmark.my_method.call_count, 2) - self.assertGreater(self.benchmark.post_run_wait_time.call_count, 2) + 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': {}} @@ -140,9 +140,9 @@ class DurationRunnerTest(unittest.TestCase): time.sleep(0.1) self._assert_defaults__worker_run_setup_and_teardown() - self.assertGreater(self.benchmark.pre_run_wait_time.call_count, 2) - self.assertGreater(self.benchmark.my_method.count, 103) - self.assertGreater(self.benchmark.post_run_wait_time.call_count, 2) + 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(): @@ -181,9 +181,9 @@ class DurationRunnerTest(unittest.TestCase): time.sleep(0.1) self._assert_defaults__worker_run_setup_and_teardown() - self.assertGreater(self.benchmark.pre_run_wait_time.call_count, 2) - self.assertGreater(self.benchmark.my_method.count, 103) - self.assertGreater(self.benchmark.post_run_wait_time.call_count, 2) + 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(): diff --git a/yardstick/tests/unit/benchmark/runner/test_proxduration.py b/yardstick/tests/unit/benchmark/runner/test_proxduration.py index 3299c5b05..056195fd3 100644 --- a/yardstick/tests/unit/benchmark/runner/test_proxduration.py +++ b/yardstick/tests/unit/benchmark/runner/test_proxduration.py @@ -97,7 +97,7 @@ class ProxDurationRunnerTest(unittest.TestCase): {}, multiprocessing.Event(), mock.Mock()) self._assert_defaults__worker_run_setup_and_teardown() - self.assertGreater(self.benchmark.my_method.call_count, 2) + self.assertGreater(self.benchmark.my_method.call_count, 0) def test__worker_process_called_without_cfg(self): scenario_cfg = {'runner': {}} diff --git a/yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py index c4ac347f4..ba63e5f9e 100644 --- a/yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py +++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py @@ -6,11 +6,6 @@ # 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 @@ -18,13 +13,9 @@ from oslo_serialization import jsonutils from yardstick.benchmark.scenarios.compute import lmbench from yardstick.common import exceptions as y_exc +from yardstick import ssh -# pylint: disable=unused-argument -# disable this for now because I keep forgetting mock patch arg ordering - - -@mock.patch('yardstick.benchmark.scenarios.compute.lmbench.ssh') class LmbenchTestCase(unittest.TestCase): def setUp(self): @@ -38,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" @@ -58,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", @@ -69,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", @@ -86,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", @@ -105,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", @@ -125,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", @@ -144,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.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", @@ -162,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.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", @@ -179,16 +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) 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 index d04dfd42b..c80cbbe77 100644 --- 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 @@ -212,6 +212,47 @@ class TestIxNextgen(unittest.TestCase): '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') @@ -293,6 +334,21 @@ class TestIxNextgen(unittest.TestCase): 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') + @mock.patch.object(IxNetwork, 'IxNet') def test_connect(self, mock_ixnet): mock_ixnet.return_value = self.ixnet @@ -346,8 +402,8 @@ class TestIxNextgen(unittest.TestCase): self.ixnet_gen._cfg = config self.assertIsNone(self.ixnet_gen.assign_ports()) - self.assertEqual(self.ixnet.execute.call_count, 2) - self.assertEqual(self.ixnet.commit.call_count, 4) + 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') @@ -380,17 +436,24 @@ class TestIxNextgen(unittest.TestCase): '-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'] - self.ixnet_gen._create_flow_groups() + 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', ['1/protocols'], - '-destinations', ['2/protocols']), - mock.call('endp2', '-name', '2', '-sources', ['2/protocols'], - '-destinations', ['1/protocols'])]) + 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): @@ -420,12 +483,31 @@ class TestIxNextgen(unittest.TestCase): def test_create_traffic_model(self, mock__setup_config_elements, mock__create_flow_groups, mock__create_traffic_item): - - self.ixnet_gen.create_traffic_model() - mock__create_traffic_item.assert_called_once() - mock__create_flow_groups.assert_called_once() + 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) + 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'] + self.ixnet_gen.create_ipv4_traffic_model(uplink_topologies, + downlink_topologies) + 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(False) + def test__update_frame_mac(self): with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item') as \ mock_get_field: @@ -510,6 +592,26 @@ class TestIxNextgen(unittest.TestCase): mock.call(port_statistics, self.ixnet_gen.PORT_STATS_NAME_MAP), mock.call(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__update_ipv4_address(self): with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item', return_value='field_desc'): @@ -576,6 +678,9 @@ class TestIxNextgen(unittest.TestCase): 'outer_l3': { 'proto': 'unsupported', }, + 'outer_l4': { + 'seed': 1 + } }, } with mock.patch.object(self.ixnet_gen, @@ -631,3 +736,34 @@ class TestIxNextgen(unittest.TestCase): 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' + 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' + 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/traffic_profile/test_http.py b/yardstick/tests/unit/network_services/traffic_profile/test_http.py index d44fab2b5..874ec37d4 100644 --- a/yardstick/tests/unit/network_services/traffic_profile/test_http.py +++ b/yardstick/tests/unit/network_services/traffic_profile/test_http.py @@ -19,13 +19,21 @@ from yardstick.network_services.traffic_profile import http class TestTrafficProfileGenericHTTP(unittest.TestCase): - TP_CONFIG = {'traffic_profile': {'duration': 10}} + 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) diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py b/yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py index 57de6602d..1adab48bc 100644 --- a/yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py +++ b/yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py @@ -17,6 +17,7 @@ import mock from oslo_serialization import jsonutils +from yardstick.common import exceptions from yardstick.network_services.traffic_profile import http_ixload from yardstick.network_services.traffic_profile.http_ixload import \ join_non_strings, validate_non_string_sequence @@ -45,6 +46,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 = { @@ -56,6 +77,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) ixload = http_ixload.IXLOADHttpTest(j) @@ -66,6 +88,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 = [ @@ -91,6 +114,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) ixload = http_ixload.IXLOADHttpTest(j) @@ -112,6 +136,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) ixload = http_ixload.IXLOADHttpTest(j) @@ -160,6 +185,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) ixload = http_ixload.IXLOADHttpTest(j) @@ -178,6 +204,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) ixload = http_ixload.IXLOADHttpTest(j) @@ -198,6 +225,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) @@ -211,6 +239,105 @@ 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": {}}} + + ixload.test = mock.Mock() + ixload.test.communityList = community_list + + ixload.update_network_param = mock.Mock() + + ixload.update_config() + + ixload.update_network_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(exceptions.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(exceptions.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") + @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, *args): @@ -224,6 +351,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) @@ -248,6 +376,7 @@ class TestIxLoadTrafficGen(unittest.TestCase): "card": "CARD", "ports": ports, }, + 'links_param': {} } j = jsonutils.dump_as_bytes(test_input) 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 index 0759ecebd..5b39b6cd1 100644 --- a/yardstick/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py +++ b/yardstick/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py @@ -586,7 +586,8 @@ class TestIXIARFC2544Profile(unittest.TestCase): 'Store-Forward_Max_latency_ns': 28} } rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE) - completed, samples = rfc2544_profile.get_drop_percentage(samples, 0, 1) + completed, samples = rfc2544_profile.get_drop_percentage( + samples, 0, 1, 4) self.assertTrue(completed) self.assertEqual(66.9, samples['TxThroughput']) self.assertEqual(66.833, samples['RxThroughput']) @@ -610,7 +611,7 @@ class TestIXIARFC2544Profile(unittest.TestCase): rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE) rfc2544_profile.rate = 1000 completed, samples = rfc2544_profile.get_drop_percentage( - samples, 0, 0.05) + samples, 0, 0.05, 4) self.assertFalse(completed) self.assertEqual(66.9, samples['TxThroughput']) self.assertEqual(66.833, samples['RxThroughput']) @@ -632,7 +633,7 @@ class TestIXIARFC2544Profile(unittest.TestCase): rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE) rfc2544_profile.rate = 1000 completed, samples = rfc2544_profile.get_drop_percentage( - samples, 0.2, 1) + samples, 0.2, 1, 4) self.assertFalse(completed) self.assertEqual(66.9, samples['TxThroughput']) self.assertEqual(66.833, samples['RxThroughput']) @@ -655,7 +656,7 @@ class TestIXIARFC2544Profile(unittest.TestCase): rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE) rfc2544_profile.rate = 1000 completed, samples = rfc2544_profile.get_drop_percentage( - samples, 0.2, 1) + samples, 0.2, 1, 4) self.assertFalse(completed) self.assertEqual(0.0, samples['TxThroughput']) self.assertEqual(66.833, samples['RxThroughput']) @@ -676,7 +677,7 @@ class TestIXIARFC2544Profile(unittest.TestCase): } rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE) completed, samples = rfc2544_profile.get_drop_percentage( - samples, 0, 1, first_run=True) + samples, 0, 1, 4, first_run=True) self.assertTrue(completed) self.assertEqual(66.9, samples['TxThroughput']) self.assertEqual(66.833, samples['RxThroughput']) 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_prox_profile.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_profile.py index cf31cc27c..11bee03a4 100644 --- a/yardstick/tests/unit/network_services/traffic_profile/test_prox_profile.py +++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_profile.py @@ -100,13 +100,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 = { 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..3374cbe76 --- /dev/null +++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_agnostic_vnf.py @@ -0,0 +1,70 @@ +# 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 +import uuid + +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._id = uuid.uuid1().int + self.vnfd = VNFD['vnfd:vnfd-catalog']['vnfd'][0] + self.agnostic_vnf = agnostic_vnf.AgnosticVnf(NAME, self.vnfd, self._id) + + 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/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..6d14ddb54 --- /dev/null +++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_epc_vnf.py @@ -0,0 +1,94 @@ +# 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 +import uuid + +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._id = uuid.uuid1().int + self.vnfd = VNFD['vnfd:vnfd-catalog']['vnfd'][0] + self.epc_vnf = epc_vnf.EPCVnf(NAME, self.vnfd, self._id) + + def test___init__(self, *args): + _epc_vnf = epc_vnf.EPCVnf(NAME, self.vnfd, self._id) + 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, self._id) + 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_prox_helpers.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py index 3b095647c..3d6ebb25b 100644 --- a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py +++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py @@ -1527,14 +1527,16 @@ class TestProxResourceHelper(unittest.TestCase): def test_run_traffic(self): setup_helper = mock.MagicMock() helper = prox_helpers.ProxResourceHelper(setup_helper) - traffic_profile = mock.MagicMock(**{"done": True}) + 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 = prox_helpers.ProxResourceHelper(setup_helper) - traffic_profile = mock.MagicMock(**{"done": True}) + traffic_profile = mock.MagicMock() + traffic_profile.done.is_set.return_value = True helper._run_traffic_once(traffic_profile) self.assertEqual(helper._terminated.value, 1) 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 index 4a1d8c30e..c9d42fb3e 100644 --- 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 @@ -1206,6 +1206,7 @@ class TestRfc2544ResourceHelper(unittest.TestCase): 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) + self.assertEqual(rfc2544_resource_helper._tolerance_precision, 2) scenario_helper.scenario_cfg = {} # ensure that resource_helper caches self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.15) @@ -1240,6 +1241,7 @@ class TestRfc2544ResourceHelper(unittest.TestCase): rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper) self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.2) + self.assertEqual(rfc2544_resource_helper._tolerance_precision, 1) def test_property_tolerance_low_not_range(self): scenario_helper = ScenarioHelper('name1') 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 index 53474b96e..e7f6206eb 100644 --- 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 @@ -57,6 +57,7 @@ class TestIxLoadTrafficGen(ut_base.BaseUnitTestCase): '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', @@ -71,6 +72,7 @@ class TestIxLoadTrafficGen(ut_base.BaseUnitTestCase): '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', @@ -129,6 +131,17 @@ class TestIxLoadTrafficGen(ut_base.BaseUnitTestCase): ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd, 'task_id') 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, 'task_id') + 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): @@ -189,6 +202,8 @@ class TestIxLoadTrafficGen(ut_base.BaseUnitTestCase): 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': {}}) @@ -208,6 +223,8 @@ class TestIxLoadTrafficGen(ut_base.BaseUnitTestCase): 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': {}}) 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..1736d0f17 --- /dev/null +++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_landslide.py @@ -0,0 +1,1954 @@ +# 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 mock +import requests +import time +import unittest +import uuid + +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._id = uuid.uuid1().int + + 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._id) + 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._id) + 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, self._id) + 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, self._id) + 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) |