diff options
Diffstat (limited to 'samples')
13 files changed, 877 insertions, 0 deletions
diff --git a/samples/MoongenL2fwd.yaml b/samples/MoongenL2fwd.yaml new file mode 100644 index 000000000..8c00bfec6 --- /dev/null +++ b/samples/MoongenL2fwd.yaml @@ -0,0 +1,96 @@ +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# VSPERF specific configuration file for execution of RFC2544 throughput +# traffic. Traffic executed by traffic generator is forwarded directly +# between interfaces connected to the traffic generator. So test will only +# benchmark the performance of OVS external bridge at controller node. +# Details about supported test options and test case execution can be +# found in VSPERF documentation: +# +# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html + +schema: "yardstick:task:0.1" + +scenarios: +{% for multistream in [1, 1000] %} +- + type: MoongenTestPMD + options: + multistream: {{multistream}} + frame_size: 1024 + testpmd_queue: 2 + trafficgen_port1: 'ens4' + trafficgen_port2: 'ens5' + moongen_host_user: 'root' + moongen_host_passwd: 'root' + moongen_host_ip: '192.168.37.2' + moongen_dir: '/home/lua-trafficgen' + moongen_runBidirec: 'true' + Package_Loss: 0 + SearchRuntime: 60 + moongen_port1_mac: '88:cf:98:2f:4d:ed' + moongen_port2_mac: '88:cf:98:2f:4d:ee' + forward_type: 'l2fwd' + + host: testpmd.demo + + runner: + type: Sequence + scenario_option_name: frame_size + sequence: + - 64 + + sla: + # The throughput SLA (or any other SLA) cannot be set to a meaningful + # value without knowledge of the server and networking environment, + # possibly including prior testing in that environment to establish + # a baseline SLA level under well-understood circumstances. + throughput_rx_mpps: 0.5 +{% endfor %} + +context: + name: demo + image: yardstick-image + flavor: + vcpus: 10 + ram: 20480 + disk: 6 + extra_specs: + hw:mem_page_size: "1GB" + hw:cpu_policy: "dedicated" + hw:vif_multiqueue_enabled: "true" + user: ubuntu + + placement_groups: + pgrp1: + policy: "availability" + + servers: + testpmd: + floating_ip: true + placement: "pgrp1" + + networks: + test: + cidr: '10.0.1.0/24' + test2: + cidr: '10.0.2.0/24' + gateway_ip: 'null' + port_security_enabled: False + enable_dhcp: 'false' + test3: + cidr: '10.0.3.0/24' + gateway_ip: 'null' + port_security_enabled: False + enable_dhcp: 'false' diff --git a/samples/MoongenTestPMD.yaml b/samples/MoongenTestPMD.yaml new file mode 100644 index 000000000..b389a19bc --- /dev/null +++ b/samples/MoongenTestPMD.yaml @@ -0,0 +1,106 @@ +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# VSPERF specific configuration file for execution of RFC2544 throughput +# traffic. Traffic executed by traffic generator is forwarded directly +# between interfaces connected to the traffic generator. So test will only +# benchmark the performance of OVS external bridge at controller node. +# Details about supported test options and test case execution can be +# found in VSPERF documentation: +# +# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html + +schema: "yardstick:task:0.1" + +scenarios: +{% for multistream in [1, 1000] %} +- + type: MoongenTestPMD + options: + multistream: {{multistream}} + frame_size: 1024 + testpmd_queue: 2 + trafficgen_port1: 'ens5' + trafficgen_port2: 'ens6' + moongen_host_user: 'root' + moongen_host_passwd: 'root' + moongen_host_ip: '192.168.37.2' + moongen_dir: '/home/lua-trafficgen' + moongen_runBidirec: 'true' + Package_Loss: 0 + SearchRuntime: 60 + moongen_port1_mac: '88:cf:98:2f:4d:ed' + moongen_port2_mac: '88:cf:98:2f:4d:ee' + forward_type: 'testpmd' + + host: testpmd.demo + + runner: + type: Sequence + scenario_option_name: frame_size + sequence: + - 64 + + sla: + # The throughput SLA (or any other SLA) cannot be set to a meaningful + # value without knowledge of the server and networking environment, + # possibly including prior testing in that environment to establish + # a baseline SLA level under well-understood circumstances. + throughput_rx_mpps: 0.5 +{% endfor %} + +context: + name: demo + #image: yardstick-image + image: yardstick-nsb-image + flavor: + vcpus: 10 + ram: 20480 + disk: 6 + extra_specs: + hw:mem_page_size: "1GB" + hw:cpu_policy: "dedicated" + hw:vif_multiqueue_enabled: "true" + user: ubuntu + + placement_groups: + pgrp1: + policy: "availability" + + servers: + testpmd: + floating_ip: true + placement: "pgrp1" + + networks: + test: + cidr: '10.0.1.0/24' + provider: "sriov" + physical_network: "sriov2" + segmentation_id: "1063" + test2: + cidr: '10.0.2.0/24' + gateway_ip: 'null' + provider: "sriov" + physical_network: "sriov2" + segmentation_id: "1061" + #port_security_enabled: False + enable_dhcp: 'false' + test3: + cidr: '10.0.3.0/24' + provider: "sriov" + physical_network: "sriov2" + segmentation_id: "1062" + gateway_ip: 'null' + #port_security_enabled: False + enable_dhcp: 'false' diff --git a/samples/ping-mixed-network.yaml b/samples/ping-mixed-network.yaml new file mode 100644 index 000000000..76e05c9aa --- /dev/null +++ b/samples/ping-mixed-network.yaml @@ -0,0 +1,65 @@ +############################################################################## +## Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################### +--- +# Sample benchmark task config file +# measure network latency using ping +# This test case sample uses existing network to be public network, +# and also create the private network by heat like normal ping. + +schema: "yardstick:task:0.1" + +{% set public_net = public_net or 'public' %} +{% set public_subnet = public_subnet or 'public_subnet' %} +{% set provider = provider or none %} +{% set physical_network = physical_network or 'physnet1' %} +{% set segmentation_id = segmentation_id or none %} + +scenarios: +- + type: Ping + options: + packetsize: 200 + host: athena.demo + target: ares.demo + + runner: + type: Duration + duration: 60 + interval: 1 + + sla: + max_rtt: 10 + action: monitor + +context: + name: demo + image: yardstick-image + flavor: yardstick-flavor + user: ubuntu + + servers: + athena: + ares: + + networks: + test: + cidr: '10.0.1.0/24' + {% if provider == "vlan" %} + provider: {{provider}} + physical_network: {{physical_network}} + {% if segmentation_id %} + segmentation_id: {{segmentation_id}} + {% endif %} + {% endif %} + + {{ public_net }}: + net_flags: + is_existing: true + is_public: true + subnet: {{ public_subnet }} diff --git a/samples/ping-one-exising-network.yaml b/samples/ping-one-exising-network.yaml new file mode 100644 index 000000000..9e33148d6 --- /dev/null +++ b/samples/ping-one-exising-network.yaml @@ -0,0 +1,50 @@ +############################################################################## +## Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################### +--- +# Sample benchmark task config file +# measure network latency using ping +# This sample use one existing network as both public network and private network. + +schema: "yardstick:task:0.1" + +{% set public_net = public_net or 'public' %} +{% set public_subnet = public_subnet or 'public_subnet' %} + +scenarios: +- + type: Ping + options: + packetsize: 200 + host: athena.demo + target: ares.demo + + runner: + type: Duration + duration: 60 + interval: 1 + + sla: + max_rtt: 10 + action: monitor + +context: + name: demo + image: yardstick-image + flavor: yardstick-flavor + user: ubuntu + + servers: + athena: + ares: + + networks: + {{ public_net }}: + net_flags: + is_existing: true + subnet: {{ public_subnet }} diff --git a/samples/ping-two-exising-network.yaml b/samples/ping-two-exising-network.yaml new file mode 100644 index 000000000..adea43ef5 --- /dev/null +++ b/samples/ping-two-exising-network.yaml @@ -0,0 +1,58 @@ +############################################################################## +## Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################### +--- +# Sample benchmark task config file +# measure network latency using ping +# This sample use two existing network, one as public network to replace for +# floating ip, one as private network to ping between VMs. + +schema: "yardstick:task:0.1" + +{% set private_net = private_net or 'private' %} +{% set private_subnet = private_subnet or 'private_subnet' %} +{% set public_net = public_net or 'public' %} +{% set public_subnet = public_subnet or 'public_subnet' %} + +scenarios: +- + type: Ping + options: + packetsize: 200 + host: athena.demo + target: ares.demo + + runner: + type: Duration + duration: 60 + interval: 1 + + sla: + max_rtt: 10 + action: monitor + +context: + name: demo + image: yardstick-image + flavor: yardstick-flavor + user: ubuntu + + servers: + athena: + ares: + + networks: + {{ private_net }}: + net_flags: + is_existing: true + subnet: {{ private_subnet }} + {{ public_net }}: + net_flags: + is_existing: true + is_public: true + subnet: {{ public_subnet }} diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml new file mode 100644 index 000000000..eaeee7103 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml @@ -0,0 +1,89 @@ +# Copyright (c) 2016-2018 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +{% set mem = mem or 20480 %} +{% set vcpus = vcpus or 10 %} +{% set vports = vports or 2 %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: vfw-tg-topology-scale-up.yaml + nodes: + tg__0: tg_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + uplink: {64B: 100} + downlink: {64B: 100} + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: 0.0001 - 0.0001 + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: 'SW', file: vfw_vnf_pipeline_cores_{{vcpus}}_ports_{{vports}}_lb_1_sw.conf } + runner: + type: Iteration + iterations: 10 + interval: 35 +context: + # put node context first, so we don't HEAT deploy if node has errors + name: yardstick + image: yardstick-samplevnfs + flavor: + vcpus: {{ vcpus }} + ram: {{ mem }} + disk: 6 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: {{ vcpus }} + hw:cpu_threads: 1 + user: ubuntu + placement_groups: + pgrp1: + policy: "availability" + servers: + tg_0: + floating_ip: true + placement: "pgrp1" + vnf_0: + floating_ip: true + placement: "pgrp1" + networks: + mgmt: + cidr: '10.0.1.0/24' +{% for vport in range(1,vports,2|int) %} + uplink_{{loop.index0}}: + cidr: '10.1.{{vport}}.0/24' + gateway_ip: 'null' + port_security_enabled: False + enable_dhcp: 'false' + downlink_{{loop.index0}}: + cidr: '10.1.{{vport+1}}.0/24' + gateway_ip: 'null' + port_security_enabled: False + enable_dhcp: 'false' +{% endfor %} diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml new file mode 100644 index 000000000..d4bf8d6d1 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2016-2018 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +{% set vports = get(extra_args, 'vports', '2') %} +nsd:nsd-catalog: + nsd: + - id: 3tg-topology + name: 3tg-topology + short-name: 3tg-topology + description: 3tg-topology + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type + + vld: +{% for vport in range(0,vports,2|int) %} + - id: uplink_{{loop.index0}} + name: tg__0 to vnf__0 link {{vport + 1}} + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{vport}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe{{vport}} + vnfd-id-ref: vnf__0 + - id: downlink_{{loop.index0}} + name: vnf__0 to tg__0 link {{vport + 2}} + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe{{vport+1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{vport+1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf new file mode 100644 index 000000000..b31d0546c --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf @@ -0,0 +1,52 @@ +[PIPELINE0] +type = MASTER +core = 0 + +[PIPELINE1] +type = ARPICMP +core = 0 +pktq_in = SWQ0 +pktq_out = SWQ1 +pktq_in_prv = RXQ1.0 +prv_to_pub_map = (1,0) + +[PIPELINE2] +type = TXRX +core = 1 +pipeline_txrx_type = RXRX +dest_if_offset = 176 +pktq_in = RXQ1.0 RXQ0.0 +pktq_out = SWQ2 SWQ3 SWQ0 + +[PIPELINE3] +type = LOADB +core = 2 +pktq_in = SWQ2 SWQ3 +pktq_out = SWQ4 SWQ5 +outport_offset = 136 +n_vnf_threads = 1 +n_lb_tuples = 5 +loadb_debug = 0 +lib_arp_debug = 0 +prv_que_handler = (0,) + +[PIPELINE4] +type = VFW +core = 3 +pktq_in = SWQ4 SWQ5 +pktq_out = SWQ6 SWQ7 +n_rules = 10 +prv_que_handler = (0) +n_flows = 2000000 +traffic_type = 4 +pkt_type = ipv4 +tcp_be_liberal = 0 + +[PIPELINE5] +type = TXRX +core = 1 +pipeline_txrx_type = TXTX +dest_if_offset = 176 +pktq_in = SWQ6 SWQ7 SWQ1 +pktq_out = TXQ1.0 TXQ0.0 + diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf new file mode 100644 index 000000000..3bf8dc68b --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf @@ -0,0 +1,52 @@ + +[PIPELINE0] +type = MASTER +core = 0 + +[PIPELINE1] +type = ARPICMP +core = 0 +pktq_in = SWQ0 +pktq_out = SWQ1 +pktq_in_prv = RXQ2.0 RXQ3.0 +prv_to_pub_map = (2,0)(3,1) + +[PIPELINE2] +type = TXRX +core = 1 +pipeline_txrx_type = RXRX +dest_if_offset = 176 +pktq_in = RXQ2.0 RXQ0.0 RXQ3.0 RXQ1.0 +pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ0 + +[PIPELINE3] +type = LOADB +core = 2 +pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 +pktq_out = SWQ6 SWQ7 SWQ8 SWQ9 +outport_offset = 136 +n_vnf_threads = 1 +n_lb_tuples = 5 +loadb_debug = 0 +lib_arp_debug = 0 +prv_que_handler = (0,2,) + +[PIPELINE4] +type = VFW +core = 3 +pktq_in = SWQ6 SWQ7 SWQ8 SWQ9 +pktq_out = SWQ10 SWQ11 SWQ12 SWQ13 +n_rules = 10 +prv_que_handler = (0) +n_flows = 2000000 +traffic_type = 4 +pkt_type = ipv4 +tcp_be_liberal = 0 + +[PIPELINE5] +type = TXRX +core = 1 +pipeline_txrx_type = TXTX +dest_if_offset = 176 +pktq_in = SWQ10 SWQ11 SWQ12 SWQ13 SWQ1 +pktq_out = TXQ2.0 TXQ0.0 TXQ3.0 TXQ1.0 diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf new file mode 100644 index 000000000..1d55d8855 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf @@ -0,0 +1,51 @@ +[PIPELINE0] +type = MASTER +core = 0 + +[PIPELINE1] +type = ARPICMP +core = 0 +pktq_in = SWQ0 +pktq_out = SWQ1 +pktq_in_prv = RXQ5.0 RXQ3.0 RXQ4.0 +prv_to_pub_map = (5,2)(3,0)(4,1) + +[PIPELINE2] +type = TXRX +core = 1 +pipeline_txrx_type = RXRX +dest_if_offset = 176 +pktq_in = RXQ5.0 RXQ2.0 RXQ3.0 RXQ0.0 RXQ4.0 RXQ1.0 +pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ0 + +[PIPELINE3] +type = LOADB +core = 2 +pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 +pktq_out = SWQ8 SWQ9 SWQ10 SWQ11 SWQ12 SWQ13 +outport_offset = 136 +n_vnf_threads = 1 +n_lb_tuples = 5 +loadb_debug = 0 +lib_arp_debug = 0 +prv_que_handler = (0,2,4,) + +[PIPELINE4] +type = VFW +core = 3 +pktq_in = SWQ8 SWQ9 SWQ10 SWQ11 SWQ12 SWQ13 +pktq_out = SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 +n_rules = 10 +prv_que_handler = (0) +n_flows = 2000000 +traffic_type = 4 +pkt_type = ipv4 +tcp_be_liberal = 0 + +[PIPELINE5] +type = TXRX +core = 1 +pipeline_txrx_type = TXTX +dest_if_offset = 176 +pktq_in = SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 SWQ1 +pktq_out = TXQ5.0 TXQ2.0 TXQ3.0 TXQ0.0 TXQ4.0 TXQ1.0 diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf new file mode 100644 index 000000000..8434fee34 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf @@ -0,0 +1,52 @@ +[PIPELINE0] +type = MASTER +core = 0 + +[PIPELINE1] +type = ARPICMP +core = 0 +pktq_in = SWQ0 +pktq_out = SWQ1 +pktq_in_prv = RXQ6.0 RXQ7.0 RXQ4.0 RXQ5.0 +prv_to_pub_map = (6,2)(7,3)(4,0)(5,1) + +[PIPELINE2] +type = TXRX +core = 1 +pipeline_txrx_type = RXRX +dest_if_offset = 176 +pktq_in = RXQ6.0 RXQ2.0 RXQ7.0 RXQ3.0 RXQ4.0 RXQ0.0 RXQ5.0 RXQ1.0 +pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ0 + +[PIPELINE3] +type = LOADB +core = 2 +pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 +pktq_out = SWQ10 SWQ11 SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17 +outport_offset = 136 +n_vnf_threads = 1 +n_lb_tuples = 5 +loadb_debug = 0 +lib_arp_debug = 0 +prv_que_handler = (0,2,4,6,) + +[PIPELINE4] +type = VFW +core = 3 +pktq_in = SWQ10 SWQ11 SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17 +pktq_out = SWQ18 SWQ19 SWQ20 SWQ21 SWQ22 SWQ23 SWQ24 SWQ25 +n_rules = 10 +prv_que_handler = (0) +n_flows = 2000000 +traffic_type = 4 +pkt_type = ipv4 +tcp_be_liberal = 0 + +[PIPELINE5] +type = TXRX +core = 1 +pipeline_txrx_type = TXTX +dest_if_offset = 176 +pktq_in = SWQ18 SWQ19 SWQ20 SWQ21 SWQ22 SWQ23 SWQ24 SWQ25 SWQ1 +pktq_out = TXQ6.0 TXQ2.0 TXQ7.0 TXQ3.0 TXQ4.0 TXQ0.0 TXQ5.0 TXQ1.0 + diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf new file mode 100644 index 000000000..51d97e0f8 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf @@ -0,0 +1,52 @@ +[PIPELINE0] +type = MASTER +core = 0 + +[PIPELINE1] +type = ARPICMP +core = 0 +pktq_in = SWQ0 +pktq_out = SWQ1 +pktq_in_prv = RXQ7.0 RXQ8.0 RXQ5.0 RXQ6.0 RXQ9.0 +prv_to_pub_map = (7,2)(8,3)(5,0)(6,1)(9,4) + +[PIPELINE2] +type = TXRX +core = 1 +pipeline_txrx_type = RXRX +dest_if_offset = 176 +pktq_in = RXQ7.0 RXQ2.0 RXQ8.0 RXQ3.0 RXQ5.0 RXQ0.0 RXQ6.0 RXQ1.0 RXQ9.0 RXQ4.0 +pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ10 SWQ11 SWQ0 + +[PIPELINE3] +type = LOADB +core = 2 +pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ10 SWQ11 +pktq_out = SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 SWQ20 SWQ21 +outport_offset = 136 +n_vnf_threads = 1 +n_lb_tuples = 5 +loadb_debug = 0 +lib_arp_debug = 0 +prv_que_handler = (0,2,4,6,8,) + +[PIPELINE4] +type = VFW +core = 3 +pktq_in = SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 SWQ20 SWQ21 +pktq_out = SWQ22 SWQ23 SWQ24 SWQ25 SWQ26 SWQ27 SWQ28 SWQ29 SWQ30 SWQ31 +n_rules = 10 +prv_que_handler = (0) +n_flows = 2000000 +traffic_type = 4 +pkt_type = ipv4 +tcp_be_liberal = 0 + +[PIPELINE5] +type = TXRX +core = 1 +pipeline_txrx_type = TXTX +dest_if_offset = 176 +pktq_in = SWQ22 SWQ23 SWQ24 SWQ25 SWQ26 SWQ27 SWQ28 SWQ29 SWQ30 SWQ31 SWQ1 +pktq_out = TXQ7.0 TXQ2.0 TXQ8.0 TXQ3.0 TXQ5.0 TXQ0.0 TXQ6.0 TXQ1.0 TXQ9.0 TXQ4.0 + diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml new file mode 100644 index 000000000..d2cc18c15 --- /dev/null +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml @@ -0,0 +1,102 @@ +# Copyright (c) 2016-2018 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# flow definition for ACL tests - 1K flows - ipv4 only +# +# the number of flows defines the widest range of parameters +# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255 +# and it should define only 16 flows +# +# there is assumption that packets generated will have a random sequences of following addresses pairs +# in the packets +# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512) +# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512) +# ... +# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512) +# +# not all combination should be filled +# Any other field with random range will be added to flow definition +# +# the example.yaml provides all possibilities for traffic generation +# +# the profile defines a public and private side to make limited traffic correlation +# between private and public side same way as it is made by IXIA solution. +# +{% set vports = get(extra_args, 'vports', '2') %} +--- +schema: "nsb:traffic_profile:0.1" + +# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator + +name: rfc2544 +description: Traffic profile to run RFC2544 latency +traffic_profile: + traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput + frame_rate: 100 # pc of linerate + # that specifies a range (e.g. ipv4 address, port) +{% set count = 0 %} +{% for vport in range(vports|int) %} +uplink_{{vport}}: + ipv4: + id: {{count + 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: {{count + 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') }}" +{% set count = count + 2 %} +{% endfor %}
\ No newline at end of file |