feat(telemetry): Rework 95/36495/16
authorPeter Mikus <pmikus@cisco.com>
Fri, 24 Jun 2022 10:32:28 +0000 (10:32 +0000)
committerPeter Mikus <peter.mikus@protonmail.ch>
Tue, 28 Jun 2022 11:36:18 +0000 (11:36 +0000)
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I0a84ce88b318c488ba2d519b20237c88b9f9f1e6

92 files changed:
resources/libraries/python/Constants.py
resources/libraries/python/ContainerUtils.py
resources/libraries/python/TelemetryUtil.py
resources/libraries/python/VPPUtil.py
resources/libraries/python/topology.py
resources/libraries/robot/performance/performance_actions.robot
resources/templates/telemetry/vppctl_clear_stats.yaml [new file with mode: 0644]
resources/templates/telemetry/vppctl_runtime.yaml [new file with mode: 0644]
resources/templates/telemetry/vppctl_show_stats.yaml [new file with mode: 0644]
resources/templates/telemetry/vppctl_test_teardown.yaml [new file with mode: 0644]
resources/tools/telemetry/bundle_vppctl.py [new file with mode: 0644]
tests/vpp/device/__init__.robot
tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-scapy.robot
tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2memif-1dcr-scapy.robot
tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2memif-1dcr-scapy.robot
tests/vpp/device/container_memif/regenerate_testcases.py
tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot
tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot
tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot
tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot
tests/vpp/device/crypto/ethip4/regenerate_testcases.py
tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot
tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot
tests/vpp/device/crypto/ethip6/regenerate_testcases.py
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-gtpu-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-ah-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-esp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-l2tpv3oip-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-tcp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-udp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-tcp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-udp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-tcp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-udp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-tcp-scapy.robot
tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-udp-scapy.robot
tests/vpp/device/flow/regenerate_testcases.py
tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-namespace-scapy.robot
tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-scapy.robot
tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2tap-scapy.robot
tests/vpp/device/interfaces/regenerate_testcases.py
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlblklistbase-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44det-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-scapy.robot
tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-scapy.robot
tests/vpp/device/ip4/regenerate_testcases.py
tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-scapy.robot
tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot
tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot
tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lisp-ip4base-scapy.robot
tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip4base-scapy.robot
tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip6base-scapy.robot
tests/vpp/device/ip4_tunnels/lisp/regenerate_testcases.py
tests/vpp/device/ip4_tunnels/regenerate_testcases.py
tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-scapy.robot
tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlblklistbase-scapy.robot
tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-scapy.robot
tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ipolicemarkbase-scapy.robot
tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-scapy.robot
tests/vpp/device/ip6/regenerate_testcases.py
tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip4base-scapy.robot
tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip6base-scapy.robot
tests/vpp/device/ip6_tunnels/lisp/regenerate_testcases.py
tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sf-scapy.robot
tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sl-scapy.robot
tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-macip-iacl1sl-scapy.robot
tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sf-scapy.robot
tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sl-scapy.robot
tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-scapy.robot
tests/vpp/device/l2bd/regenerate_testcases.py
tests/vpp/device/l2patch/2n1l-10ge2p1x710-ethip4-l2patch-scapy.robot
tests/vpp/device/l2patch/regenerate_testcases.py
tests/vpp/device/l2xc/2n1l-10ge2p1x710-ethip4-l2xcbase-scapy.robot
tests/vpp/device/l2xc/regenerate_testcases.py
tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot
tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy.robot
tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot
tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-scapy.robot
tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-scapy.robot
tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-scapy.robot
tests/vpp/device/srv6/regenerate_testcases.py
tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhost-1vm-scapy.robot
tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy.robot
tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2vhost-1vm-scapy.robot
tests/vpp/device/vm_vhost/ethip4/regenerate_testcases.py
tests/vpp/device/vm_vhost/ethip6/2n1l-10ge2p1x710-ethip6-ip6base-eth-2vhost-1vm-scapy.robot
tests/vpp/device/vm_vhost/ethip6/regenerate_testcases.py

index 83e0854..566dec7 100644 (file)
@@ -246,6 +246,12 @@ class Constants:
     # Default path to VPP API socket.
     SOCKSVR_PATH = u"/run/vpp/api.sock"
 
+    # Default path to VPP CLI socket.
+    SOCKCLI_PATH = u"/run/vpp/cli.sock"
+
+    # Default path to VPP API Stats socket.
+    SOCKSTAT_PATH = u"/run/vpp/stats.sock"
+
     # Number of trials to execute in MRR test.
     PERF_TRIAL_MULTIPLICITY = get_int_from_env(u"PERF_TRIAL_MULTIPLICITY", 10)
 
@@ -287,9 +293,6 @@ class Constants:
     #  /tmp directory is inside the DUT1 docker.
     DUT1_UUID = get_str_from_env(u"DUT1_UUID", u"")
 
-    # Default path to VPP API Stats socket.
-    SOCKSTAT_PATH = u"/run/vpp/stats.sock"
-
     # Global "kill switch" for CRC checking during runtime.
     FAIL_ON_CRC_MISMATCH = get_pessimistic_bool_from_env(
         u"FAIL_ON_CRC_MISMATCH"
index 633144e..7ec8258 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -587,6 +587,12 @@ class ContainerEngine:
         topo_instance = BuiltIn().get_library_instance(
             u"resources.libraries.python.topology.Topology"
         )
+        topo_instance.add_new_socket(
+            self.container.node,
+            SocketType.CLI,
+            self.container.name,
+            self.container.cli_socket,
+        )
         topo_instance.add_new_socket(
             self.container.node,
             SocketType.PAPI,
@@ -1277,6 +1283,7 @@ class Container:
                 path = f"/tmp/vpp_sockets/{value}"
                 self.__dict__[u"socket_dir"] = path
                 self.__dict__[u"api_socket"] = f"{path}/api.sock"
+                self.__dict__[u"cli_socket"] = f"{path}/cli.sock"
                 self.__dict__[u"stats_socket"] = f"{path}/stats.sock"
             self.__dict__[attr] = value
         else:
index be2f479..2d4bb09 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -133,7 +133,7 @@ class TelemetryUtil:
         for node in nodes.values():
             if node[u"type"] == NodeType.DUT:
                 try:
-                    for socket in node[u"sockets"][u"PAPI"].values():
+                    for socket in node[u"sockets"][u"CLI"].values():
                         TelemetryUtil.run_telemetry(
                             node, profile=profile, hook=socket
                         )
index 0d5dea5..daeb568 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -72,6 +72,8 @@ class VPPUtil:
         PapiSocketExecutor.disconnect_all_sockets_by_node(node)
         DUTSetup.restart_service(node, Constants.VPP_UNIT)
         if node_key:
+            Topology.add_new_socket(
+                node, SocketType.CLI, node_key, Constants.SOCKCLI_PATH)
             Topology.add_new_socket(
                 node, SocketType.PAPI, node_key, Constants.SOCKSVR_PATH)
             Topology.add_new_socket(
index fba2dcb..4546928 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -71,6 +71,8 @@ class SocketType:
     PAPI = u"PAPI"
     # VPP PAPI Stats (legacy option until stats are migrated to Socket PAPI)
     STATS = u"STATS"
+    # VPP Socket CLI
+    CLI = u"CLI"
 
 
 DICT__nodes = load_topo_from_yaml()
index 98f53ae..3235dfa 100644 (file)
@@ -94,7 +94,7 @@
 | | ... | ramp_up_duration=${ramp_up_duration}
 | | ... | ramp_up_rate=${ramp_up_rate}
 | | Run Telemetry On All DUTs
-| | ... | ${nodes} | profile=vpp_runtime.yaml
+| | ... | ${nodes} | profile=vppctl_runtime.yaml
 | | Stop traffic on tg
 
 | Additional Statistics Action For vpp-runtime-iperf3
 | | | ... | bind=${iperf_client_bind}
 | | | ... | affinity=${iperf_client_affinity}
 | | Run Telemetry On All DUTs
-| | ... | ${nodes} | profile=vpp_runtime.yaml
+| | ... | ${nodes} | profile=vppctl_runtime.yaml
 | | iPerf Client Stop Remote Exec | ${nodes['${iperf_client_node}']} | ${pids}
 
 | Additional Statistics Action For noop
 | | ... | Additional Statistics Action for clear VPP statistics.
 | |
 | | Run Telemetry On All DUTs
-| | ... | ${nodes} | profile=vpp_clear_stats.yaml
+| | ... | ${nodes} | profile=vppctl_clear_stats.yaml
 
 | Additional Statistics Action For vpp-enable-packettrace
 | | [Documentation]
 | | ... | Additional Statistics Action for show VPP statistics.
 | |
 | | Run Telemetry On All DUTs
-| | ... | ${nodes} | profile=vpp_show_stats.yaml
+| | ... | ${nodes} | profile=vppctl_show_stats.yaml
diff --git a/resources/templates/telemetry/vppctl_clear_stats.yaml b/resources/templates/telemetry/vppctl_clear_stats.yaml
new file mode 100644 (file)
index 0000000..7c5124e
--- /dev/null
@@ -0,0 +1,218 @@
+---
+logging:
+  version: 1
+  formatters:
+    console_stdout:
+      format: '%(asctime)s - %(name)s - %(message)s'
+    console_stderr:
+      format: '%(message)s'
+    prom:
+      format: '%(message)s'
+  handlers:
+    console_stdout:
+      class: logging.StreamHandler
+      level: INFO
+      formatter: console_stdout
+      stream: ext://sys.stdout
+    console_stderr:
+      class: logging.StreamHandler
+      level: ERROR
+      formatter: console_stderr
+      stream: ext://sys.stderr
+    prom:
+      class: logging.handlers.RotatingFileHandler
+      level: INFO
+      formatter: prom
+      filename: /tmp/metric.prom
+      mode: w
+  loggers:
+    prom:
+      handlers: [prom]
+      level: INFO
+      propagate: False
+  root:
+    level: INFO
+    handlers: [console_stdout, console_stderr]
+scheduler:
+  duration: 1
+programs:
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: calls
+          documentation: Number of calls total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors
+          documentation: Number of vectors total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: suspends
+          documentation: Number of suspends total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: clocks
+          documentation: Number of clocks total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors_calls
+          documentation: Number of vectors per call
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+    code: |
+      vppctl -s {socket} clear runtime
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: rx_packets
+          documentation: Number of received packets for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of received bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_error
+          documentation: Number of errors on interface
+          labelnames:
+            - name
+            - index
+        - name: tx_packets
+          documentation: Number of transitted packets for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of transitted bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_error
+          documentation: Number of errors on interface
+          labelnames:
+            - name
+            - index
+        - name: drops
+          documentation: Number of dropped packets for interface
+          labelnames:
+            - name
+            - index
+        - name: punt
+          documentation: Number of punted packets for interface
+          labelnames:
+            - name
+            - index
+        - name: ip4
+          documentation: Number of IPv4 packets for interface
+          labelnames:
+            - name
+            - index
+        - name: ip6
+          documentation: Number of IPv6 packets for interface
+          labelnames:
+            - name
+            - index
+        - name: mpls
+          documentation: Number of MPLS packets for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_no_buf
+          documentation: Number of out of buffer RX packets on interface
+          labelnames:
+            - name
+            - index
+        - name: rx_miss
+          documentation: Number of missed RX packets on interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} clear interfaces
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: rx_frames
+          documentation: Number of RX frames for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of RX bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_frames
+          documentation: Number of TX frames for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of TX bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_missed
+          documentation: Number of missed RX packets on interface
+          labelnames:
+            - name
+            - index
+        - name: tx_missed
+          documentation: Number of missed TX packets on interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} clear hardware
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: node_counter
+          documentation: Node counter
+          labelnames:
+            - name
+            - reason
+            - severity
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} clear node counters
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: calls
+          documentation: Load operations
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: packets
+          documentation: Load operations
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} perfmon reset
diff --git a/resources/templates/telemetry/vppctl_runtime.yaml b/resources/templates/telemetry/vppctl_runtime.yaml
new file mode 100644 (file)
index 0000000..d8ff734
--- /dev/null
@@ -0,0 +1,481 @@
+---
+logging:
+  version: 1
+  formatters:
+    console_stdout:
+      format: '%(asctime)s - %(name)s - %(message)s'
+    console_stderr:
+      format: '%(message)s'
+    prom:
+      format: '%(message)s'
+  handlers:
+    console_stdout:
+      class: logging.StreamHandler
+      level: INFO
+      formatter: console_stdout
+      stream: ext://sys.stdout
+    console_stderr:
+      class: logging.StreamHandler
+      level: ERROR
+      formatter: console_stderr
+      stream: ext://sys.stderr
+    prom:
+      class: logging.handlers.RotatingFileHandler
+      level: INFO
+      formatter: prom
+      filename: /tmp/metric.prom
+      mode: w
+  loggers:
+    prom:
+      handlers: [prom]
+      level: INFO
+      propagate: False
+  root:
+    level: INFO
+    handlers: [console_stdout, console_stderr]
+scheduler:
+  duration: 1
+programs:
+  - name: bundle_vppctl
+    metrics:
+      info:
+        - name: version
+          documentation: VPP version
+          namespace: vpp
+          subsystem: version
+          labelnames:
+            - version
+    code: |
+      vppctl -s {socket} show version
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: calls
+          documentation: Number of calls total
+          namespace: vpp
+          subsystem: runtime
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors
+          documentation: Number of vectors total
+          namespace: vpp
+          subsystem: runtime
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: suspends
+          documentation: Number of suspends total
+          namespace: vpp
+          subsystem: runtime
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: clocks
+          documentation: Number of clocks total
+          namespace: vpp
+          subsystem: runtime
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors_calls
+          documentation: Number of vectors per call
+          namespace: vpp
+          subsystem: runtime
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+    code: |
+      vppctl -s {socket} clear runtime
+      sleep {duration}
+      vppctl -s {socket} show runtime
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: rx_packets
+          documentation: Number of received packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of received bytes for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: rx_error
+          documentation: Number of errors on interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: tx_packets
+          documentation: Number of transitted packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of transitted bytes for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: tx_error
+          documentation: Number of errors on interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: drops
+          documentation: Number of dropped packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: punt
+          documentation: Number of punted packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: ip4
+          documentation: Number of IPv4 packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: ip6
+          documentation: Number of IPv6 packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: mpls
+          documentation: Number of MPLS packets for interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: rx_no_buf
+          documentation: Number of out of buffer RX packets on interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+        - name: rx_miss
+          documentation: Number of missed RX packets on interface
+          namespace: vpp
+          subsystem: interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} clear interfaces
+      sleep {duration}
+      vppctl -s {socket} show interface
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: node_counter
+          documentation: Node counter
+          namespace: vpp
+          subsystem: counters
+          labelnames:
+            - name
+            - reason
+            - severity
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} clear node counters
+      sleep {duration}
+      vppctl -s {socket} show node counters verbose
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: context_switches
+          documentation: Per-thread context switches
+          namespace: vpp
+          subsystem: context_switches
+          labelnames:
+            - name
+            - id
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle context-switches
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: minor_page_faults
+          documentation: Per-thread page faults (minor)
+          namespace: vpp
+          subsystem: page_faults
+          labelnames:
+            - name
+            - id
+        - name: major_page_faults
+          documentation: Per-thread page faults (major)
+          namespace: vpp
+          subsystem: page_faults
+          labelnames:
+            - name
+            - id
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle page-faults
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: calls
+          documentation: Instructions/packet, cycles/packet and IPC (calls)
+          namespace: vpp
+          subsystem: inst_and_clock
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: packets
+          documentation: Instructions/packet, cycles/packet and IPC (packets)
+          namespace: vpp
+          subsystem: inst_and_clock
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: packets_per_call
+          documentation: Instructions/packet, cycles/packet and IPC (packets/call)
+          namespace: vpp
+          subsystem: inst_and_clock
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: clocks_per_packets
+          documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+          namespace: vpp
+          subsystem: inst_and_clock
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: instructions_per_packets
+          documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+          namespace: vpp
+          subsystem: inst_and_clock
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: ipc
+          documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+          namespace: vpp
+          subsystem: inst_and_clock
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle inst-and-clock
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: l1_hit
+          documentation:  Cache hits and misses (L1 hit)
+          namespace: vpp
+          subsystem: cache_hierarchy
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: l1_miss
+          documentation:  Cache hits and misses (L1 miss)
+          namespace: vpp
+          subsystem: cache_hierarchy
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: l2_hit
+          documentation:  Cache hits and misses (L2 hit)
+          namespace: vpp
+          subsystem: cache_hierarchy
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: l2_miss
+          documentation:  Cache hits and misses (L2 miss)
+          namespace: vpp
+          subsystem: cache_hierarchy
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: l3_hit
+          documentation:  Cache hits and misses (L3 hit)
+          namespace: vpp
+          subsystem: cache_hierarchy
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: l3_miss
+          documentation:  Cache hits and misses (L3 miss)
+          namespace: vpp
+          subsystem: cache_hierarchy
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle cache-hierarchy
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: calls
+          documentation: Load operations (calls)
+          namespace: vpp
+          subsystem: load_blocks
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: packets
+          documentation: Load operations (packets)
+          namespace: vpp
+          subsystem: load_blocks
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle load-blocks
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: branches_per_call
+          documentation: Branches/call
+          namespace: vpp
+          subsystem: branch_mispred
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: branches_per_packet
+          documentation: Branches/packet
+          namespace: vpp
+          subsystem: branch_mispred
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: taken_per_call
+          documentation: Taken/call
+          namespace: vpp
+          subsystem: branch_mispred
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: taken_per_packet
+          documentation: Taken/packet
+          namespace: vpp
+          subsystem: branch_mispred
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+        - name: mis_predictions
+          documentation: Mis-predictions
+          namespace: vpp
+          subsystem: branch_mispred
+          labelnames:
+            - name
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle branch-mispred
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: runtime
+          documentation: RunTime
+          namespace: vpp
+          subsystem: memory_bandwidth
+          labelnames:
+            - name
+        - name: reads_mbs
+          documentation: Reads (MB/s)
+          namespace: vpp
+          subsystem: memory_bandwidth
+          labelnames:
+            - name
+        - name: writes_mbs
+          documentation: Writes (MB/s)
+          namespace: vpp
+          subsystem: memory_bandwidth
+          labelnames:
+            - name
+        - name: total_mbs
+          documentation: Total (MB/s)
+          namespace: vpp
+          subsystem: memory_bandwidth
+          labelnames:
+            - name
+    code: |
+      vppctl -s {socket} perfmon reset
+      vppctl -s {socket} perfmon start bundle memory-bandwidth
+      sleep {duration}
+      vppctl -s {socket} perfmon stop
+      vppctl -s {socket} show perfmon statistics
diff --git a/resources/templates/telemetry/vppctl_show_stats.yaml b/resources/templates/telemetry/vppctl_show_stats.yaml
new file mode 100644 (file)
index 0000000..83bb746
--- /dev/null
@@ -0,0 +1,201 @@
+---
+logging:
+  version: 1
+  formatters:
+    console_stdout:
+      format: '%(asctime)s - %(name)s - %(message)s'
+    console_stderr:
+      format: '%(message)s'
+    prom:
+      format: '%(message)s'
+  handlers:
+    console_stdout:
+      class: logging.StreamHandler
+      level: INFO
+      formatter: console_stdout
+      stream: ext://sys.stdout
+    console_stderr:
+      class: logging.StreamHandler
+      level: ERROR
+      formatter: console_stderr
+      stream: ext://sys.stderr
+    prom:
+      class: logging.handlers.RotatingFileHandler
+      level: INFO
+      formatter: prom
+      filename: /tmp/metric.prom
+      mode: w
+  loggers:
+    prom:
+      handlers: [prom]
+      level: INFO
+      propagate: False
+  root:
+    level: INFO
+    handlers: [console_stdout, console_stderr]
+scheduler:
+  duration: 1
+programs:
+  - name: bundle_vppctl
+    metrics:
+      counter:
+        - name: calls
+          documentation: Number of calls total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors
+          documentation: Number of vectors total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: suspends
+          documentation: Number of suspends total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: clocks
+          documentation: Number of clocks total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors_calls
+          documentation: Number of vectors per call
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+    code: |
+      vppctl -s {socket} show runtime
+  - name: bundle_vppctl
+    metrics:
+      counter:
+        - name: rx_packets
+          documentation: Number of received packets for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of received bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_error
+          documentation: Number of errors on interface
+          labelnames:
+            - name
+            - index
+        - name: tx_packets
+          documentation: Number of transitted packets for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of transitted bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_error
+          documentation: Number of errors on interface
+          labelnames:
+            - name
+            - index
+        - name: drops
+          documentation: Number of dropped packets for interface
+          labelnames:
+            - name
+            - index
+        - name: punt
+          documentation: Number of punted packets for interface
+          labelnames:
+            - name
+            - index
+        - name: ip4
+          documentation: Number of IPv4 packets for interface
+          labelnames:
+            - name
+            - index
+        - name: ip6
+          documentation: Number of IPv6 packets for interface
+          labelnames:
+            - name
+            - index
+        - name: mpls
+          documentation: Number of MPLS packets for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_no_buf
+          documentation: Number of out of buffer RX packets on interface
+          labelnames:
+            - name
+            - index
+        - name: rx_miss
+          documentation: Number of missed RX packets on interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} show interface
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: rx_frames
+          documentation: Number of RX frames for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of RX bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_frames
+          documentation: Number of TX frames for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of TX bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_missed
+          documentation: Number of missed RX packets on interface
+          labelnames:
+            - name
+            - index
+        - name: tx_missed
+          documentation: Number of missed TX packets on interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} show hardware verbose
+  - name: bundle_vppctl
+    metrics:
+      counter:
+        - name: node_counter
+          documentation: Node counter
+          labelnames:
+            - name
+            - reason
+            - severity
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} show node counters verbose
diff --git a/resources/templates/telemetry/vppctl_test_teardown.yaml b/resources/templates/telemetry/vppctl_test_teardown.yaml
new file mode 100644 (file)
index 0000000..10f2077
--- /dev/null
@@ -0,0 +1,201 @@
+---
+logging:
+  version: 1
+  formatters:
+    console_stdout:
+      format: '%(asctime)s - %(name)s - %(message)s'
+    console_stderr:
+      format: '%(message)s'
+    prom:
+      format: '%(message)s'
+  handlers:
+    console_stdout:
+      class: logging.StreamHandler
+      level: INFO
+      formatter: console_stdout
+      stream: ext://sys.stdout
+    console_stderr:
+      class: logging.StreamHandler
+      level: ERROR
+      formatter: console_stderr
+      stream: ext://sys.stderr
+    prom:
+      class: logging.handlers.RotatingFileHandler
+      level: INFO
+      formatter: prom
+      filename: /tmp/metric.prom
+      mode: w
+  loggers:
+    prom:
+      handlers: [prom]
+      level: INFO
+      propagate: False
+  root:
+    level: INFO
+    handlers: [console_stdout, console_stderr]
+scheduler:
+  duration: 0
+programs:
+  - name: bundle_vppctl
+    metrics:
+      counter:
+        - name: calls
+          documentation: Number of calls total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors
+          documentation: Number of vectors total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: suspends
+          documentation: Number of suspends total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: clocks
+          documentation: Number of clocks total
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+        - name: vectors_calls
+          documentation: Number of vectors per call
+          labelnames:
+            - name
+            - state
+            - thread_name
+            - thread_id
+            - thread_lcore
+    code: |
+      vppctl -s {socket} show runtime
+  - name: bundle_vppctl
+    metrics:
+      counter:
+        - name: rx_packets
+          documentation: Number of received packets for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of received bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_error
+          documentation: Number of errors on interface
+          labelnames:
+            - name
+            - index
+        - name: tx_packets
+          documentation: Number of transitted packets for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of transitted bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_error
+          documentation: Number of errors on interface
+          labelnames:
+            - name
+            - index
+        - name: drops
+          documentation: Number of dropped packets for interface
+          labelnames:
+            - name
+            - index
+        - name: punt
+          documentation: Number of punted packets for interface
+          labelnames:
+            - name
+            - index
+        - name: ip4
+          documentation: Number of IPv4 packets for interface
+          labelnames:
+            - name
+            - index
+        - name: ip6
+          documentation: Number of IPv6 packets for interface
+          labelnames:
+            - name
+            - index
+        - name: mpls
+          documentation: Number of MPLS packets for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_no_buf
+          documentation: Number of out of buffer RX packets on interface
+          labelnames:
+            - name
+            - index
+        - name: rx_miss
+          documentation: Number of missed RX packets on interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} show interface
+  - name: bundle_vppctl
+    metrics:
+      gauge:
+        - name: rx_frames
+          documentation: Number of RX frames for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_bytes
+          documentation: Number of RX bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_frames
+          documentation: Number of TX frames for interface
+          labelnames:
+            - name
+            - index
+        - name: tx_bytes
+          documentation: Number of TX bytes for interface
+          labelnames:
+            - name
+            - index
+        - name: rx_missed
+          documentation: Number of missed RX packets on interface
+          labelnames:
+            - name
+            - index
+        - name: tx_missed
+          documentation: Number of missed TX packets on interface
+          labelnames:
+            - name
+            - index
+    code: |
+      vppctl -s {socket} show hardware verbose
+  - name: bundle_vppctl
+    metrics:
+      counter:
+        - name: node_counter
+          documentation: Node counter
+          labelnames:
+            - name
+            - reason
+            - severity
+            - thread_name
+            - thread_id
+    code: |
+      vppctl -s {socket} show node counters verbose
diff --git a/resources/tools/telemetry/bundle_vppctl.py b/resources/tools/telemetry/bundle_vppctl.py
new file mode 100644 (file)
index 0000000..b417ab0
--- /dev/null
@@ -0,0 +1,424 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""VPP execution bundle."""
+
+from logging import getLogger
+from re import fullmatch, sub
+import subprocess
+import sys
+
+from .constants import Constants
+
+M_RUN_THREAD = (
+    r"Thread\s"
+    r"(?P<thread_id>\d+)\s"
+    r"(?P<thread_name>\S+)\s.*"
+    r"(?P<thread_lcore>\d+).*"
+)
+M_RUN_SEPARATOR = (
+    r"(-)+"
+)
+M_RUN_NODES = (
+    r"(?P<name>\S+)\s+"
+    r"(?P<state>\S+\s\S+|\S+)\s+"
+    r"(?P<calls>\d+)\s+"
+    r"(?P<vectors>\d+)\s+"
+    r"(?P<suspends>\d+)\s+"
+    r"(?P<clocks>\S+)\s+"
+    r"(?P<vectors_calls>\S+)"
+)
+M_RUN_TIME = (
+    r"Time\s\S+,\s\d+\ssec\sinternal\snode\svector\srate\s"
+    r"(?P<rate>\S+)\sloops/sec\s"
+    r"(?P<loops>\S+)"
+)
+M_INT_BEGIN = (
+    r"(?P<name>\S+)\s+"
+    r"(?P<index>\S+)\s+"
+    r"(?P<state>\S+)\s+"
+    r"(?P<mtu>\S+)\s+"
+    r"(?P<counter>\S+\s\S+|\S+)\s+"
+    r"(?P<count>\d+)"
+)
+M_INT_CONT = (
+    r"\s+"
+    r"(?P<counter>\S+\s\S+|\S+)\s+"
+    r"(?P<count>\d+)"
+)
+M_NODE_COUNTERS_THREAD = (
+    r"Thread\s"
+    r"(?P<thread_id>\d+)\s\("
+    r"(?P<thread_name>\S+)\):\s*"
+)
+M_NODE_COUNTERS = (
+    r"\s*"
+    r"(?P<count>\d+)\s+"
+    r"(?P<name>\S+)\s+"
+    r"(?P<reason>(\S+\s)+)\s+"
+    r"(?P<severity>\S+)\s+"
+    r"(?P<index>\d+)\s*"
+)
+M_PMB_CS_HEADER = (
+    r"\s*per-thread\s+context\s+switches.*"
+)
+M_PMB_CS = (
+    r"(?P<thread_name>\S+)\s+\("
+    r"(?P<thread_id>\S+)\)\s+\S+\s+"
+    r"(?P<context_switches>[\d\.]+)"
+)
+M_PMB_PF_HEADER = (
+    r"\s*per-thread\s+page\s+faults.*"
+)
+M_PMB_PF = (
+    r"(?P<thread_name>\S+)\s+\("
+    r"(?P<thread_id>\S+)\)\s+\S+\s+"
+    r"(?P<minor_page_faults>[\d\.]+)\s+"
+    r"(?P<major_page_faults>[\d\.]+)"
+)
+M_PMB_THREAD = (
+    r"\s*"
+    r"(?P<thread_name>\S+)\s+\("
+    r"(?P<thread_id>\d+)\)\s*"
+)
+M_PMB_IC_HEADER = (
+    r"\s*instructions/packet,\s+cycles/packet\s+and\s+IPC.*"
+)
+M_PMB_IC_NODE = (
+    r"\s*"
+    r"(?P<node_name>\S+)\s+"
+    r"(?P<calls>[\d\.]+)\s+"
+    r"(?P<packets>[\d\.]+)\s+"
+    r"(?P<packets_per_call>[\d\.]+)\s+"
+    r"(?P<clocks_per_packets>[\d\.]+)\s+"
+    r"(?P<instructions_per_packets>[\d\.]+)\s+"
+    r"(?P<ipc>[\d\.]+)"
+)
+M_PMB_CM_HEADER = (
+    r"\s*cache\s+hits\s+and\s+misses.*"
+)
+M_PMB_CM_NODE = (
+    r"\s*"
+    r"(?P<node_name>\S+)\s+"
+    r"(?P<l1_hit>[\d\.]+)\s+"
+    r"(?P<l1_miss>[\d\.]+)\s+"
+    r"(?P<l2_hit>[\d\.]+)\s+"
+    r"(?P<l2_miss>[\d\.]+)\s+"
+    r"(?P<l3_hit>[\d\.]+)\s+"
+    r"(?P<l3_miss>[\d\.]+)"
+)
+M_PMB_LO_HEADER = (
+    r"\s*load\s+operations.*"
+)
+M_PMB_LO_NODE = (
+    r"\s*"
+    r"(?P<node_name>\S+)\s+"
+    r"(?P<calls>[\d\.]+)\s+"
+    r"(?P<packets>[\d\.]+)\s+"
+    r"(?P<one>[\d\.]+)\s+"
+    r"(?P<two>[\d\.]+)\s+"
+    r"(?P<three>[\d\.]+)"
+)
+M_PMB_BM_HEADER = (
+    r"\s*Branches,\s+branches\s+taken\s+and\s+mis-predictions.*"
+)
+M_PMB_BM_NODE = (
+    r"\s*"
+    r"(?P<node_name>\S+)\s+"
+    r"(?P<branches_per_call>[\d\.]+)\s+"
+    r"(?P<branches_per_packet>[\d\.]+)\s+"
+    r"(?P<taken_per_call>[\d\.]+)\s+"
+    r"(?P<taken_per_packet>[\d\.]+)\s+"
+    r"(?P<mis_predictions>[\d\.]+)"
+)
+M_PMB_MB_HEADER = (
+    r"\s*memory\s+reads\s+and\s+writes\s+per\s+memory\s+controller.*"
+)
+M_PMB_MB = (
+    r"\s*"
+    r"(?P<name>\S+)\s+"
+    r"(?P<runtime>[\d\.]+)\s+"
+    r"(?P<reads_mbs>[\d\.]+)\s+"
+    r"(?P<writes_mbs>[\d\.]+)\s+"
+    r"(?P<total_mbs>[\d\.]+)"
+)
+
+
+class BundleVppctl:
+    """
+    Creates a VPP object. This is the main object for defining a VPP program,
+    and interacting with its output.
+    """
+    def __init__(self, program, serializer, hook):
+        """
+        Initialize Bundle VPP class.
+
+        :param program: VPP instructions.
+        :param serializer: Metric serializer.
+        :param hook: VPP CLI socket.
+        :type program: dict
+        :type serializer: Serializer
+        :type hook: int
+        """
+        self.obj = None
+        self.code = program["code"]
+        self.metrics = program["metrics"]
+        self.cli_command_list = list()
+        self.cli_replies_list = list()
+        self.serializer = serializer
+        self.hook = hook
+
+    def attach(self, duration):
+        """
+        Attach events to VPP.
+
+        :param duration: Trial duration.
+        :type duration: int
+        """
+        for command in self.code.splitlines():
+            self.cli_command_list.append(
+                command.format(duration=duration, socket=self.hook)
+            )
+
+    def detach(self):
+        """
+        Detach from VPP.
+        """
+
+    def fetch_data(self):
+        """
+        Fetch data by invoking subprocess calls.
+        """
+        for command in self.cli_command_list:
+            try:
+                replies = subprocess.getoutput(command)
+            except (AssertionError, AttributeError):
+                getLogger("console_stderr").error(
+                    f"Failed when executing command: {command}"
+                )
+                sys.exit(Constants.err_vpp_execute)
+
+            self.cli_replies_list.append(replies)
+            replies = sub(r"\x1b[^m]*m", "", replies)
+            if replies:
+                getLogger(__name__).info(replies)
+            else:
+                getLogger(__name__).info("<no reply>")
+        self.serializer.create(metrics=self.metrics)
+
+    def process_data(self):
+        """
+        Post process command reply.
+        """
+        for command in zip(self.cli_command_list, self.cli_replies_list):
+            self_fn = command[0].replace(
+                f"-s {self.hook} ", "").replace(" ", "_")
+            self_method_list = [meth for meth in dir(self)
+                                if callable(getattr(self, meth)) and
+                                meth.startswith('__') is False]
+            if self_fn not in self_method_list:
+                continue
+            try:
+                self_fn = getattr(self, self_fn)
+                self_fn(command[1])
+            except AttributeError:
+                pass
+            except (KeyError, ValueError, TypeError) as exc:
+                getLogger("console_stderr").error(
+                    f"Failed when processing data. Error message {exc}"
+                )
+                sys.exit(Constants.err_telemetry_process)
+
+    def vppctl_show_interface(self, reply):
+        """
+        Parse the show interface output.
+
+        :param reply: VPP reply.
+        :type reply: str
+        """
+        for line in reply.splitlines():
+            item = dict()
+            labels = dict()
+            if fullmatch(M_INT_BEGIN, line):
+                ifc = fullmatch(M_INT_BEGIN, line).groupdict()
+                metric = ifc["counter"].replace(" ", "_").replace("-", "_")
+                item["name"] = metric
+                item["value"] = ifc["count"]
+            if fullmatch(M_INT_CONT, line):
+                ifc_cnt = fullmatch(M_INT_CONT, line).groupdict()
+                metric = ifc_cnt["counter"].replace(" ", "_").replace("-", "_")
+                item["name"] = metric
+                item["value"] = ifc_cnt["count"]
+            if fullmatch(M_INT_BEGIN, line) or fullmatch(M_INT_CONT, line):
+                labels["name"] = ifc["name"]
+                labels["index"] = ifc["index"]
+                item["labels"] = labels
+                self.serializer.serialize(
+                    metric=metric, labels=labels, item=item
+                )
+
+    def vppctl_show_runtime(self, reply):
+        """
+        Parse the show runtime output.
+
+        :param reply: VPP reply.
+        :type reply: str
+        """
+        for line in reply.splitlines():
+            if fullmatch(M_RUN_THREAD, line):
+                thread = fullmatch(M_RUN_THREAD, line).groupdict()
+            if fullmatch(M_RUN_NODES, line):
+                nodes = fullmatch(M_RUN_NODES, line).groupdict()
+                for metric in self.serializer.metric_registry:
+                    item = dict()
+                    labels = dict()
+                    item["name"] = metric
+                    labels["name"] = nodes["name"]
+                    labels["state"] = nodes["state"]
+                    try:
+                        labels["thread_name"] = thread["thread_name"]
+                        labels["thread_id"] = thread["thread_id"]
+                        labels["thread_lcore"] = thread["thread_lcore"]
+                    except UnboundLocalError:
+                        labels["thread_name"] = "vpp_main"
+                        labels["thread_id"] = "0"
+                        labels["thread_lcore"] = "0"
+                    item["labels"] = labels
+                    item["value"] = nodes[metric]
+                    self.serializer.serialize(
+                        metric=metric, labels=labels, item=item
+                    )
+
+    def vppctl_show_node_counters_verbose(self, reply):
+        """
+        Parse the show node conuter output.
+
+        :param reply: VPP reply.
+        :type reply: str
+        """
+        for line in reply.splitlines():
+            if fullmatch(M_NODE_COUNTERS_THREAD, line):
+                thread = fullmatch(M_NODE_COUNTERS_THREAD, line).groupdict()
+            if fullmatch(M_NODE_COUNTERS, line):
+                nodes = fullmatch(M_NODE_COUNTERS, line).groupdict()
+                for metric in self.serializer.metric_registry_registry:
+                    item = dict()
+                    labels = dict()
+                    item["name"] = metric
+                    labels["name"] = nodes["name"]
+                    labels["reason"] = nodes["reason"]
+                    labels["severity"] = nodes["severity"]
+                    try:
+                        labels["thread_name"] = thread["thread_name"]
+                        labels["thread_id"] = thread["thread_id"]
+                    except UnboundLocalError:
+                        labels["thread_name"] = "vpp_main"
+                        labels["thread_id"] = "0"
+                    item["labels"] = labels
+                    item["value"] = nodes["count"]
+                    self.serializer.serialize(
+                        metric=metric, labels=labels, item=item
+                    )
+
+    def vppctl_show_perfmon_statistics(self, reply):
+        """
+        Parse the perfmon output.
+
+        :param reply: VPP reply.
+        :type reply: str
+        """
+        def perfmon_threads(reply, regex_threads):
+            for line in reply.splitlines():
+                if fullmatch(regex_threads, line):
+                    threads = fullmatch(regex_threads, line).groupdict()
+                    for metric in self.serializer.metric_registry:
+                        item = dict()
+                        labels = dict()
+                        item["name"] = metric
+                        labels["name"] = threads["thread_name"]
+                        labels["id"] = threads["thread_id"]
+                        item["labels"] = labels
+                        item["value"] = threads[metric]
+                        self.serializer.serialize(
+                            metric=metric, labels=labels, item=item
+                        )
+
+        def perfmon_nodes(reply, regex_threads, regex_nodes):
+            for line in reply.splitlines():
+                if fullmatch(regex_threads, line):
+                    thread = fullmatch(regex_threads, line).groupdict()
+                if fullmatch(regex_nodes, line):
+                    node = fullmatch(regex_nodes, line).groupdict()
+                    for metric in self.serializer.metric_registry:
+                        item = dict()
+                        labels = dict()
+                        item["name"] = metric
+                        labels["name"] = node["node_name"]
+                        labels["thread_name"] = thread["thread_name"]
+                        labels["thread_id"] = thread["thread_id"]
+                        item["labels"] = labels
+                        item["value"] = node[metric]
+                        self.serializer.serialize(
+                            metric=metric, labels=labels, item=item
+                        )
+
+        def perfmon_system(reply, regex_line):
+            for line in reply.splitlines():
+                if fullmatch(regex_line, line):
+                    name = fullmatch(regex_line, line).groupdict()
+                    for metric in self.serializer.metric_registry:
+                        item = dict()
+                        labels = dict()
+                        item["name"] = metric
+                        labels["name"] = name["name"]
+                        item["labels"] = labels
+                        item["value"] = name[metric]
+                        self.serializer.serialize(
+                            metric=metric, labels=labels, item=item
+                        )
+
+        reply = sub(r"\x1b[^m]*m", "", reply)
+
+        if fullmatch(M_PMB_CS_HEADER, reply.splitlines()[0]):
+            perfmon_threads(reply, M_PMB_CS)
+        if fullmatch(M_PMB_PF_HEADER, reply.splitlines()[0]):
+            perfmon_threads(reply, M_PMB_PF)
+        if fullmatch(M_PMB_IC_HEADER, reply.splitlines()[0]):
+            perfmon_nodes(reply, M_PMB_THREAD, M_PMB_IC_NODE)
+        if fullmatch(M_PMB_CM_HEADER, reply.splitlines()[0]):
+            perfmon_nodes(reply, M_PMB_THREAD, M_PMB_CM_NODE)
+        if fullmatch(M_PMB_LO_HEADER, reply.splitlines()[0]):
+            perfmon_nodes(reply, M_PMB_THREAD, M_PMB_LO_NODE)
+        if fullmatch(M_PMB_BM_HEADER, reply.splitlines()[0]):
+            perfmon_nodes(reply, M_PMB_THREAD, M_PMB_BM_NODE)
+        if fullmatch(M_PMB_MB_HEADER, reply.splitlines()[0]):
+            perfmon_system(reply, M_PMB_MB)
+
+    def vppctl_show_version(self, reply):
+        """
+        Parse the version output.
+
+        :param reply: VPP reply.
+        :type reply: str
+        """
+        for metric in self.serializer.metric_registry:
+            version = reply.split()[1]
+            item = dict()
+            labels = dict()
+            item["name"] = metric
+            labels["version"] = version
+            item["labels"] = labels
+            item["value"] = {}
+            self.serializer.serialize(
+                metric=metric, labels=labels, item=item
+            )
index 581144f..9453da3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 0ae1ecb..29f6993 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -59,7 +59,7 @@
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 5b2c0a8..ff33ab8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -58,7 +58,7 @@
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 82e9264..75d8fa0 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -57,7 +57,7 @@
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index d2db9b0..c91ae63 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -61,7 +61,7 @@
 | ${addr_range}= | ${24}
 | ${n_tunnels}= | ${11}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index cf13223..d424ee4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -61,7 +61,7 @@
 | ${addr_range}= | ${24}
 | ${n_tunnels}= | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index b07545e..88e769a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -62,7 +62,7 @@
 | ${tg_host_ip4}= | 192.168.3.3
 | ${ip4_plen}= | ${24}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 84aaa7c..ca456ce 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -62,7 +62,7 @@
 | ${tg_host_ip4}= | 192.168.3.3
 | ${ip4_plen}= | ${24}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 80f557a..3b417ab 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
 | ${ip6_plen}= | ${64}
 | ${ip6_plen_rt}= | ${128}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index e195212..71e92f8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
 | ${ip6_plen}= | ${64}
 | ${ip6_plen_rt}= | ${128}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index b1c6336..2cae24e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 090bcef..ac9d15e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -52,7 +52,7 @@
 | ${teid}= | ${12345}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index fd65ce4..1856684 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -52,7 +52,7 @@
 | ${spi}= | ${12345}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 3c6d10e..313b084 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -52,7 +52,7 @@
 | ${spi}= | ${12345}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 1c9a85d..c545ce2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${session_id}= | ${12345}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 498b01b..a2b0774 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${dst_port}= | ${200}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index f3c867e..27bfc98 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${dst_port}= | ${200}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index f4ea410..8abab2a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -51,7 +51,7 @@
 | ${dst_ip}= | 2.2.2.2
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index e263b56..44e8955 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -51,7 +51,7 @@
 | ${dst_ip}= | 2.2.2.2
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index a4545ef..993428e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${dst_port}= | ${200}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 6071e65..e338750 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${dst_port}= | ${200}
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 8a7e3a4..09ddbe4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -51,7 +51,7 @@
 | ${dst_ip}= | 1011:2022:3033:4044:5055:6066:7077:8088
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 0f019c7..0894364 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -51,7 +51,7 @@
 | ${dst_ip}= | 1011:2022:3033:4044:5055:6066:7077:8088
 | ${rxq}= | ${4}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index b622470..453b774 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
 | ${tg_ip_address_GW}= | 192.168.0.0
 | ${prefix}= | 24
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 64ecb55..eb65410 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -62,7 +62,7 @@
 | ${tg_ip_address_GW}= | 192.168.0.0
 | ${prefix}= | 24
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index f6e8e89..21cad9a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -57,7 +57,7 @@
 | ${overhead}= | ${0}
 | ${bid_TAP}= | tapBr
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index cc353c7..2dfa607 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index d66686e..2ebb0e6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 34e0fa6..1c39e86 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index aa85994..2899393 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -56,7 +56,7 @@
 | ${eir}= | ${150}
 | ${dscp}= | AF22
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 26aa8c3..399f780 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -55,7 +55,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 808ecc4..bc641af 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -79,7 +79,7 @@
 | ${out_net}= | 200.0.0.0
 | ${out_mask}= | ${32}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index de4df2b..2f6ed76 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -82,7 +82,7 @@
 | ${out_net_end}= | 68.142.68.0
 | ${out_mask}= | ${32}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 8770ce3..56ea25f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -79,7 +79,7 @@
 | ${out_net}= | 200.0.0.0
 | ${out_mask}= | ${32}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index a2efcf5..9c84afa 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -82,7 +82,7 @@
 | ${out_net_end}= | 68.142.68.0
 | ${out_mask}= | ${32}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index c601f31..926c029 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -73,7 +73,7 @@
 | ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
 | ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index aa0ed30..727a0bd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -55,7 +55,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${50}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index dcf48e8..e7252c6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -54,7 +54,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${50}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index efaab06..a3f2c60 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -58,7 +58,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${54}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 80d6947..e77829a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -59,7 +59,7 @@
 | ${overhead}= | ${54}
 | ${is_gpe}= | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 588e00a..7412447 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -60,7 +60,7 @@
 | ${ot_mode}= | 6to4
 | ${is_gpe}= | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 56c2e31..1b1f759 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index a763893..ea70db0 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 67f8ef3..2b000d9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -53,7 +53,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 3dfc121..bfd7d54 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -56,7 +56,7 @@
 | ${eir}= | ${150}
 | ${dscp}= | AF22
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index c838264..fe689ae 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -54,7 +54,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index b1c6336..2cae24e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 7ca92bd..20e11e8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -59,7 +59,7 @@
 | ${ot_mode}= | 4to6
 | ${is_gpe}= | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index e428a2e..937bd3c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -59,7 +59,7 @@
 | ${overhead}= | ${54}
 | ${is_gpe}= | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index b1c6336..2cae24e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 6aefa63..81612d2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -67,7 +67,7 @@
 | ${trex_stream1_subnet}= | 10.10.10.0/24
 | ${trex_stream2_subnet}= | 20.20.20.0/24
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 49690e0..bfabea5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -67,7 +67,7 @@
 | ${trex_stream1_subnet}= | 10.10.10.0/24
 | ${trex_stream2_subnet}= | 20.20.20.0/24
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index fdefa02..3efe9aa 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -68,7 +68,7 @@
 | ${tg_stream1_subnet}= | 10.0.0.0/18
 | ${tg_stream2_subnet}= | 20.0.0.0/18
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 0d93313..f17d410 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -67,7 +67,7 @@
 | ${trex_stream1_subnet}= | 10.10.10.0/24
 | ${trex_stream2_subnet}= | 20.20.20.0/24
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index c3c3301..fd33e16 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -67,7 +67,7 @@
 | ${trex_stream1_subnet}= | 10.10.10.0/24
 | ${trex_stream2_subnet}= | 20.20.20.0/24
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 2e058b5..0a18369 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -54,7 +54,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index e1bebee..4df0c0a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -54,7 +54,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index bab7a8b..f5d781a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -54,7 +54,7 @@
 | ${nic_vfs}= | 0
 | ${overhead}= | ${0}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 433266e..0dbcd2b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -70,7 +70,7 @@
 | ${dut2_if2_ip6}= | 2001:2::1
 | ${prefix}= | ${64}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index ff17255..aebc944 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -73,7 +73,7 @@
 | ${dut2_if2_ip6}= | 2001:2::1
 | ${prefix}= | ${64}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 6f69423..b156998 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -73,7 +73,7 @@
 | ${dut2_if2_ip6}= | 2001:2::1
 | ${prefix}= | ${64}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index dd5f6fa..693f979 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -86,7 +86,7 @@
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 379310e..ef98b30 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -86,7 +86,7 @@
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 43cd587..0b2808f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -86,7 +86,7 @@
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index b1c6336..2cae24e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index 88b105e..2107523 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -62,7 +62,7 @@
 | ${tg_if1_ip}= | 10.10.10.2
 | ${tg_if2_ip}= | 20.20.20.2
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 338914d..47110ba 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 | ${nf_dtc} | ${1}
 | ${nf_dtcr} | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
 | | [Documentation]
-| | ... | - **[Top]** TG=DUT=VM. 
+| | ... | - **[Top]** TG=DUT=VM.
 | | ... | - **[Enc]** Eth-IPv4.
 | | ... | - **[Cfg]** On DUT1 configure \
 | | ... | two L2BDs with MAC learning, each with vhost-user i/f to local \
 | | ... | VM and i/f to TG; configure VPP in VM to loop pkts back betwen its \
-| | ... | two virtio i/fs. 
+| | ... | two virtio i/fs.
 | | ... | - **[Ver]** Make TG verify IPv4 packets are switched \
 | | ... | thru DUT1 and VM in both directions and are correct on receive.
 | |
index 734b162..9227f69 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -59,7 +59,7 @@
 | ${nf_dtc} | ${1}
 | ${nf_dtcr} | ${1}
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index 87521e6..51070e4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
index e1ce837..4302625 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -62,7 +62,7 @@
 | ${tg_if1_ip}= | 2001:1::2
 | ${tg_if2_ip}= | 2001:2::2
 # Telemetry
-| ${telemetry_profile}= | vpp_test_teardown
+| ${telemetry_profile}= | vppctl_test_teardown
 
 *** Keywords ***
 | Local Template
index b1c6336..2cae24e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at: