Added RFC2544 Trex template 19/66919/2
authorChornyi, TarasX <tarasx.chornyi@intel.com>
Mon, 11 Feb 2019 10:24:10 +0000 (12:24 +0200)
committerChornyi, TarasX <tarasx.chornyi@intel.com>
Tue, 12 Feb 2019 17:23:58 +0000 (19:23 +0200)
JIRA: YARDSTICK-1592

Change-Id: I36d96c932bff399be05e44dcd86096ee50614ad8
Signed-off-by: Chornyi Taras <tarasx.chornyi@intel.com>
samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml [moved from samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_2ports.yaml with 70% similarity]
samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_64B_trex.yaml
samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml
samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml [new file with mode: 0644]
samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml [new file with mode: 0644]

@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Intel Corporation
+# Copyright (c) 2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', '2') %}
 nsd:nsd-catalog:
     nsd:
     -   id: agnostic-topology
@@ -26,24 +28,25 @@ nsd:nsd-catalog:
             VNF model: ../../vnf_descriptors/agnostic_vnf.yaml      #VNF type
 
         vld:
-        -   id: uplink_0
-            name: tg__0 to vnf__0 link 1
+{% for vport in range(0,vports,2|int) %}
+        -   id: uplink_{{loop.index0}}
+            name: tg__0 to vnf__0 link {{vport + 1}}
             type: ELAN
             vnfd-connection-point-ref:
             -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe0
+                vnfd-connection-point-ref: xe{{vport}}
                 vnfd-id-ref: tg__0
             -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe0
+                vnfd-connection-point-ref: xe{{vport}}
                 vnfd-id-ref: vnf__0
-
-        -   id: downlink_0
-            name: vnf__0 to tg__0 link 2
+        -   id: downlink_{{loop.index0}}
+            name: vnf__0 to tg__0 link {{vport + 2}}
             type: ELAN
             vnfd-connection-point-ref:
             -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe1
+                vnfd-connection-point-ref: xe{{vport+1}}
                 vnfd-id-ref: vnf__0
             -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: tg__0
\ No newline at end of file
+                vnfd-connection-point-ref: xe{{vport+1}}
+                vnfd-id-ref: tg__0
+{% endfor %}
\ No newline at end of file
index 53935de..db8f95c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Intel Corporation
+# Copyright (c) 2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ schema: yardstick:task:0.1
 scenarios:
 - type: NSPerf
   traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
-  topology: agnostic_vnf_topology_trex_2ports.yaml
+  topology: agnostic_vnf_topology_trex_tmpl.yaml
   nodes:
     tg__0: tg_0.yardstick
     vnf__0: vnf_0.yardstick
index 44c7f6d..158de81 100644 (file)
@@ -18,7 +18,7 @@ schema: yardstick:task:0.1
 scenarios:
 - type: NSPerf-RFC2544
   traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
-  topology: agnostic_vnf_topology_trex_2ports.yaml
+  topology: agnostic_vnf_topology_trex_tmpl.yaml
   nodes:
     tg__0: trafficgen_0.yardstick
     vnf__0: vnf_0.yardstick
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml
new file mode 100644 (file)
index 0000000..79c3b90
--- /dev/null
@@ -0,0 +1,62 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set framesize = framesize or "{64B: 100}" %}
+{% set vports = vports or 2 %}
+{% set rate = rate or 100 %}
+{% set drop_rate = drop_rate or "0.0001 - 0.0001" %}
+{% set iterations = iterations or 1 %}
+{% set queues_per_port = queues_per_port or 1 %}
+{% set pod_file = pod_file or "/etc/yardstick/nodes/pod_trex.yaml" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: agnostic_vnf_topology_trex_tmpl.yaml
+  extra_args:
+    vports: {{vports}}
+    rate: {{rate}}
+  nodes:
+    tg__0: trafficgen_0.yardstick
+    vnf__0: vnf_0.yardstick
+  options:
+    framesize:
+      uplink: {{framesize}}
+      downlink: {{framesize}}
+    flow:
+      src_ip: [
+{% for vport in range(0,vports,2|int) %}
+       {'tg__0': 'xe{{vport}}'},
+{% endfor %}  ]
+      dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+      {'tg__0': 'xe{{vport}}'},
+{% endfor %}  ]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: {{drop_rate}}
+      queues_per_port: {{queues_per_port}}
+    vnf__0:
+        []
+  runner:
+    type: Iteration
+    iterations: {{iterations}}
+    interval: 5
+context:
+  type: Node
+  name: yardstick
+  nfvi_type: baremetal
+  file: {{pod_file}}
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml
new file mode 100644 (file)
index 0000000..066efca
--- /dev/null
@@ -0,0 +1,79 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = get(extra_args, 'vports', 2) %}
+{% set rate = get(extra_args, 'rate', 100) %}
+---
+schema: "nsb:traffic_profile:0.1"
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+  traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+  frame_rate: {{ rate }}  # pc of linerate
+  duration: {{ duration }}
+
+
+{% for vport in range(0,(vports/2)|int) %}
+uplink_{{vport}}:
+  ipv4:
+    id: {{vport * 2  + 1}}
+    outer_l2:
+      framesize:
+        64B: "{{ get(imix, 'imix.uplink.64B', '0') }}"
+        128B: "{{ get(imix, 'imix.uplink.128B', '0') }}"
+        256B: "{{ get(imix, 'imix.uplink.256B', '0') }}"
+        373b: "{{ get(imix, 'imix.uplink.373B', '0') }}"
+        512B: "{{ get(imix, 'imix.uplink.512B', '0') }}"
+        570B: "{{ get(imix, 'imix.uplink.570B', '0') }}"
+        1400B: "{{ get(imix, 'imix.uplink.1400B', '0') }}"
+        1500B: "{{ get(imix, 'imix.uplink.1500B', '0') }}"
+        1518B: "{{ get(imix, 'imix.uplink.1518B', '0') }}"
+    outer_l3v4:
+      proto: "udp"
+      srcip4: "{{ get(flow, 'flow.src_ip_{{vport}}', '1.1.1.1-1.1.255.255') }}"
+      dstip4: "{{ get(flow, 'flow.dst_ip_{{vport}}', '90.90.1.1-90.90.255.255') }}"
+      count: "{{ get(flow, 'flow.count', '1') }}"
+      ttl: 32
+      dscp: 0
+    outer_l4:
+      srcport: "{{ get(flow, 'flow.src_port_{{vport}}', '1234-4321') }}"
+      dstport: "{{ get(flow, 'flow.dst_port_{{vport}}', '2001-4001') }}"
+      count: "{{ get(flow, 'flow.count', '1') }}"
+downlink_{{vport}}:
+  ipv4:
+    id: {{vport * 2 + 2}}
+    outer_l2:
+      framesize:
+        64B: "{{ get(imix, 'imix.downlink.64B', '0') }}"
+        128B: "{{ get(imix, 'imix.downlink.128B', '0') }}"
+        256B: "{{ get(imix, 'imix.downlink.256B', '0') }}"
+        373b: "{{ get(imix, 'imix.downlink.373B', '0') }}"
+        512B: "{{ get(imix, 'imix.downlink.512B', '0') }}"
+        570B: "{{ get(imix, 'imix.downlink.570B', '0') }}"
+        1400B: "{{ get(imix, 'imix.downlink.1400B', '0') }}"
+        1500B: "{{ get(imix, 'imix.downlink.1500B', '0') }}"
+        1518B: "{{ get(imix, 'imix.downlink.1518B', '0') }}"
+
+    outer_l3v4:
+      proto: "udp"
+      srcip4: "{{ get(flow, 'flow.dst_ip_{{vport}}', '90.90.1.1-90.90.255.255') }}"
+      dstip4: "{{ get(flow, 'flow.src_ip_{{vport}}', '1.1.1.1-1.1.255.255') }}"
+      count: "{{ get(flow, 'flow.count', '1') }}"
+      ttl: 32
+      dscp: 0
+    outer_l4:
+      srcport: "{{ get(flow, 'flow.dst_port_{{vport}}', '1234-4321') }}"
+      dstport: "{{ get(flow, 'flow.src_port_{{vport}}', '2001-4001') }}"
+      count: "{{ get(flow, 'flow.count', '1') }}"
+{% endfor %}
\ No newline at end of file