From 0f087977e39bee0a24f06c16e1b69b7400eb2f0f Mon Sep 17 00:00:00 2001 From: Serhiy Pshyk Date: Fri, 5 Oct 2018 17:50:38 +0100 Subject: Add vBNG PPPoE test cases functionality Added vBNG PPPoE test cases functionality which allows to: - create and configure access network connections (PPPoE subscribers); - create and configure core network connections; - configure and run traffic between access and core network topologies. JIRA: YARDSTICK-1508 Change-Id: I90975505fe7318227a837d97e8db4a06712de7eb Signed-off-by: Serhiy Pshyk Signed-off-by: Oleksandr Naumets --- .../bng/tc_bng_pppoe_rfc2544_ixia_4port_IMIX.yaml | 62 +++++++++ .../nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX.yaml | 63 ++++++++++ .../traffic_profiles/ixia_ipv4_latency.yaml | 2 +- .../traffic_profiles/ixia_ipv4_latency_vbng-4.yaml | 139 +++++++++++++++++++++ 4 files changed, 265 insertions(+), 1 deletion(-) create mode 100644 samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_4port_IMIX.yaml create mode 100644 samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX.yaml create mode 100644 samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng-4.yaml (limited to 'samples/vnf_samples') diff --git a/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_4port_IMIX.yaml b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_4port_IMIX.yaml new file mode 100644 index 000000000..14aa97a4a --- /dev/null +++ b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_4port_IMIX.yaml @@ -0,0 +1,62 @@ +# Copyright (c) 2018 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf + traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_vbng-4.yaml" + topology: "../agnostic/agnostic_vnf_topology_ixia_4ports.yaml" + ixia_config: IxiaPppoeClient + nodes: + tg__0: tg_0.yardstick + vnf__0: vnf_0.yardstick + options: + pppoe_client: # access network + sessions_per_port: 4000 + sessions_per_svlan: 1000 + pap_user: 'wfnos' + pap_password: '' + ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}] + s_vlan: 100 # s-vlan applies per device group + c_vlan: 1000 # c-vlan applies per subscriber + ipv4_client: # core network + sessions_per_port: 1 + sessions_per_vlan: 1 + ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}] + gateway_ip: [{'vnf__0': 'xe1'}, {'vnf__0': 'xe3'}] + vlan: 101 + bgp: + bgp_type: external + dut_ip: 10.0.0.3 + as_number: 65000 + framesize: + uplink: {70B: 33, 940B: 33, 1470B: 34} + downlink: {68B: 3, 932B: 1, 1470B: 96} + flow: + src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}] + dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}] + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: 0.0001 - 0.0001 + runner: + type: Iteration + iterations: 10 + interval: 75 +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod_ixia_4port.yaml diff --git a/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX.yaml b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX.yaml new file mode 100644 index 000000000..5fbe0c70a --- /dev/null +++ b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX.yaml @@ -0,0 +1,63 @@ +# Copyright (c) 2018 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf + traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_vbng-4.yaml" + topology: "../agnostic/agnostic_vnf_topology_ixia_2ports.yaml" + ixia_config: IxiaPppoeClient + nodes: + tg__0: tg_0.yardstick + vnf__0: vnf_0.yardstick + options: + pppoe_client: # access network + sessions_per_port: 4000 + sessions_per_svlan: 1000 + pap_user: 'wfnos' + pap_password: '' + ip: [{'tg__0': 'xe0'}] + s_vlan: 100 # s-vlan applies per device group + c_vlan: 1000 # c-vlan applies per subscriber + ipv4_client: # core network + sessions_per_port: 1 + sessions_per_vlan: 1 + ip: [{'tg__0': 'xe1'}] + gateway_ip: [{'vnf__0': 'xe1'}] + prefix: '24' + vlan: 101 + bgp: + bgp_type: external + dut_ip: 10.0.0.3 + as_number: 65000 + framesize: + uplink: {64B: 100} + downlink: {64B: 100} + flow: + src_ip: [{'tg__0': 'xe0'}] + dst_ip: [{'tg__0': 'xe1'}] + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: 0.0001 - 0.0001 + runner: + type: Iteration + iterations: 10 + interval: 75 +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod_ixia.yaml diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml index f71c08861..275509aa0 100644 --- a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml +++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml @@ -19,7 +19,7 @@ # the profile defines a public and private side to make limited traffic correlation # between private and public side same way as it is made by IXIA solution. # -schema: "isb:traffic_profile:0.1" +schema: "nsb:traffic_profile:0.1" # This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng-4.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng-4.yaml new file mode 100644 index 000000000..e65876c30 --- /dev/null +++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng-4.yaml @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +schema: "nsb:traffic_profile:0.1" + +# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator + +name: rfc2544 +description: Traffic profile to run RFC2544 latency +traffic_profile: + traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput + frame_rate : 25% # pc of linerate + duration: {{ duration }} + enable_latency: True + +uplink_0: + ipv4: + id: 1 + outer_l2: + framesize: + 64B: "{{get(imix, 'imix.uplink.64B', '0') }}" + 68B: "{{get(imix, 'imix.uplink.68B', '0') }}" + 70B: "{{get(imix, 'imix.uplink.70B', '0') }}" + 128B: "{{get(imix, 'imix.uplink.128B', '0') }}" + 256B: "{{get(imix, 'imix.uplink.256B', '0') }}" + 373b: "{{get(imix, 'imix.uplink.373B', '0') }}" + 512B: "{{get(imix, 'imix.uplink.512B', '0') }}" + 570B: "{{get(imix, 'imix.uplink.570B', '0') }}" + 932B: "{{get(imix, 'imix.uplink.932B', '0') }}" + 940B: "{{get(imix, 'imix.uplink.940B', '0') }}" + 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}" + 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}" + 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}" + 1470B: "{{get(imix, 'imix.uplink.1470B', '0') }}" + 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}" + + outer_l3v4: + priority: + tos: + # Precedence values: + # 0 - (000) Routine + # 1 - (001) Priority + # 2 - (010) Immediate + # 3 - (011) Flash + # 4 - (100) Flash Override + # 5 - (101) CRITIC/ECP + # 6 - (110) Internetwork Control + # 7 - (111) Network Control + precedence: [0, 4, 7] +downlink_0: + ipv4: + id: 2 + outer_l2: + framesize: + 64B: "{{get(imix, 'imix.downlink.64B', '0') }}" + 68B: "{{get(imix, 'imix.downlink.68B', '0') }}" + 70B: "{{get(imix, 'imix.downlink.70B', '0') }}" + 128B: "{{get(imix, 'imix.downlink.128B', '0') }}" + 256B: "{{get(imix, 'imix.downlink.256B', '0') }}" + 373b: "{{get(imix, 'imix.downlink.373B', '0') }}" + 512B: "{{get(imix, 'imix.downlink.512B', '0') }}" + 570B: "{{get(imix, 'imix.downlink.570B', '0') }}" + 932B: "{{get(imix, 'imix.downlink.932B', '0') }}" + 940B: "{{get(imix, 'imix.downlink.940B', '0') }}" + 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}" + 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}" + 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}" + 1470B: "{{get(imix, 'imix.downlink.1470B', '0') }}" + 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}" + + outer_l3v4: + priority: + tos: + precedence: [0, 4, 7] +uplink_1: + ipv4: + id: 3 + outer_l2: + framesize: + 64B: "{{get(imix, 'imix.uplink.64B', '0') }}" + 68B: "{{get(imix, 'imix.uplink.68B', '0') }}" + 70B: "{{get(imix, 'imix.uplink.70B', '0') }}" + 128B: "{{get(imix, 'imix.uplink.128B', '0') }}" + 256B: "{{get(imix, 'imix.uplink.256B', '0') }}" + 373b: "{{get(imix, 'imix.uplink.373B', '0') }}" + 512B: "{{get(imix, 'imix.uplink.512B', '0') }}" + 570B: "{{get(imix, 'imix.uplink.570B', '0') }}" + 932B: "{{get(imix, 'imix.uplink.932B', '0') }}" + 940B: "{{get(imix, 'imix.uplink.940B', '0') }}" + 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}" + 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}" + 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}" + 1470B: "{{get(imix, 'imix.uplink.1470B', '0') }}" + 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}" + + outer_l3v4: + priority: + tos: + precedence: [0, 4, 7] +downlink_1: + ipv4: + id: 4 + outer_l2: + framesize: + 64B: "{{get(imix, 'imix.downlink.64B', '0') }}" + 68B: "{{get(imix, 'imix.downlink.68B', '0') }}" + 70B: "{{get(imix, 'imix.downlink.70B', '0') }}" + 128B: "{{get(imix, 'imix.downlink.128B', '0') }}" + 256B: "{{get(imix, 'imix.downlink.256B', '0') }}" + 373b: "{{get(imix, 'imix.downlink.373B', '0') }}" + 512B: "{{get(imix, 'imix.downlink.512B', '0') }}" + 570B: "{{get(imix, 'imix.downlink.570B', '0') }}" + 932B: "{{get(imix, 'imix.downlink.932B', '0') }}" + 940B: "{{get(imix, 'imix.downlink.940B', '0') }}" + 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}" + 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}" + 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}" + 1470B: "{{get(imix, 'imix.downlink.1470B', '0') }}" + 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}" + + outer_l3v4: + priority: + tos: + precedence: [0, 4, 7] -- cgit 1.2.3-korg