aboutsummaryrefslogtreecommitdiffstats
path: root/samples/vnf_samples/traffic_profiles
diff options
context:
space:
mode:
Diffstat (limited to 'samples/vnf_samples/traffic_profiles')
-rw-r--r--samples/vnf_samples/traffic_profiles/example.yaml198
-rw-r--r--samples/vnf_samples/traffic_profiles/fixed.yaml24
-rw-r--r--samples/vnf_samples/traffic_profiles/imix_storage.yaml41
-rw-r--r--samples/vnf_samples/traffic_profiles/imix_video.yaml43
-rw-r--r--samples/vnf_samples/traffic_profiles/imix_voice.yaml41
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_1flow_Packets_vpe.yaml18
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml101
7 files changed, 466 insertions, 0 deletions
diff --git a/samples/vnf_samples/traffic_profiles/example.yaml b/samples/vnf_samples/traffic_profiles/example.yaml
new file mode 100644
index 000000000..71371995e
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/example.yaml
@@ -0,0 +1,198 @@
+# Copyright (c) 2016-2017 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 : rfc2544 # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100 # pc of linerate
+ flow_number: {{ flow.number }} #This decides how many frames should be generated. Each frame should have a random of the field
+ # that specifies a range (e.g. ipv4 address, port)
+
+private:
+ - ipv4_1:
+ outer_l2:
+ framesize:
+ 64B: {{ get(imix_small, 12) }}
+ 128B: {{get(imix_128B, 12) }}
+ 256B: {{get(imix_256B, 12) }}
+ 373b: {{ get(imix_373B, 12) }}
+ 570B: {{get(imix_570B, 12) }}
+ 1400B: {{get(imix_1400B, 12) }}
+ 1518b: {{get(imix_1500B, 12) }}
+ srcmac: {{src_mac}} # xe0.local_mac
+ dstmac: {{dst_mac}} # xe0.dst_mac
+ QinQ:
+ S-VLAN:
+ id: {{ get(flow.s_vlan_range, "0") }}
+ priority: 0
+ cfi: 0
+ C-VLAN:
+ id: {{ get(flow.c_vlan_range, "0") }}
+ priority: 0
+ cfi: 0
+ mpls:
+ label: {{ get(flow.mpls_label, "0") }}
+
+ outer_l3v4:
+ proto: {{ get(flow.outer_proto, "udp") }},
+ srcip4: {{ get(flow.outer_srcip4, "1.1.1.1") }}
+ dstip4: {{ get(flow.outer_dstip4, "90.90.90.90") }}
+ ttl: 32
+ dscp: {{ get(flow.tos, 0) }}
+
+ outer_l4:
+ srcport: {{ get(flow.outer_srcport, "3002") }}
+ dstport: {{ get(flow.outer_dstport, "3001") }}
+ vni: {{ get(flow.vxlan_vni, "2345") }} #optional
+ inner_l2: #optional
+ srcmac: {{ get(flow.inner_srcmac, "00:00:00:00:00:00") }}
+ dstmac: {{ get(flow.inner_dstmac, "00:00:00:00:00:00") }}
+
+ inner_l3v4: #optional
+ proto: {{ get(flow.inner_proto, "udp") }},
+ srcip4: {{ get(flow.inner_srcip4, "1.1.1.1") }}
+ dstip4: {{ get(flow.inner_dstip4, "90.90.90.90") }}
+ ttl: 32
+ dscp: {{ get(flow.inner_tos, 0) }}
+
+ inner_l3v6:
+ proto: {{ get(flow.inner_proto, "udp") }},
+ srcip6: {{ get(flow.inner_srcip6, "2001::1") }}
+ dstip6: {{ get(flow.outer_dstip6, "2001::11") }}
+ ttl: 32
+ tc: {{ get(flow.inner_tos, 0) }}
+
+ inner_l4:
+ srcport: {{ get(flow.inner_srcport, "3002") }}
+ dstport: {{ get(flow.inner_dstport, "3001") }}
+
+ - ipv6_2:
+ outer_l2:
+ framesize:
+ 64B: {{ get(imix_small, 12) }}
+ 128B: {{get(imix_128B, 12) }}
+ 256B: {{get(imix_256B, 12) }}
+ 373b: {{ get(imix_373B, 12) }}
+ 570B: {{get(imix_570B, 12) }}
+ 1400B: {{get(imix_1400B, 12) }}
+ 1518b: {{get(imix_1500B, 12) }}
+ srcmac: {{src_mac}} # xe0.local_mac
+ dstmac: {{dst_mac}} # xe0.dst_mac
+ QinQ:
+ S-VLAN:
+ id: {{ get(flow.s_vlan_range, "0") }}
+ priority: 0
+ cfi: 0
+ C-VLAN:
+ id: {{ get(flow.c_vlan_range, "0") }}
+ priority: 0
+ cfi: 0
+ mpls:
+ label: {{ get(flow.mpls_label, "0") }}
+
+ outer_l3v6:
+ proto: {{ get(flow.outer_proto, "udp") }},
+ srcip6: {{ get(flow.outer_srcip6, "2001::1") }}
+ dstip6: {{ get(flow.outer_dstip6, "2001::11") }}
+ ttl: 32
+ tc: {{ get(flow.outer_tos, 0) }}
+
+ outer_l4:
+ srcport: {{ get(flow.outer_srcport, "3002") }}
+ dstport: {{ get(flow.outer_dstport, "3001") }}
+ vni: {{ get(flow.vxlan_vni, "2345") }} #optional
+ inner_l2: #optional
+ srcmac: {{ get(flow.inner_srcmac, "00:00:00:00:00:00") }}
+ dstmac: {{ get(flow.inner_dstmac, "00:00:00:00:00:00") }}
+
+ inner_l3v4: #optional
+ proto: {{ get(flow.inner_proto, "udp") }},
+ srcip4: {{ get(flow.inner_srcip4, "1.1.1.1") }}
+ dstip4: {{ get(flow.inner_dstip4, "90.90.90.90") }}
+ ttl: 32
+ dscp: {{ get(flow.inner_tos, 0) }}
+
+ inner_l3v6:
+ proto: {{ get(flow.inner_proto, "udp") }},
+ srcip6: {{ get(flow.inner_srcip6, "2001::1") }}
+ dstip6: {{ get(flow.outer_dstip6, "2001::11") }}
+ ttl: 32
+ tc: {{ get(flow.inner_tos, 0) }}
+
+ inner_l4:
+ srcport: {{ get(flow.inner_srcport, "3002") }}
+ dstport: {{ get(flow.inner_dstport, "3001") }}
+
+public:
+ - ipv4_2:
+ outer_l2:
+ framesize:
+ 64B: {{ get(imix_small, 12) }}
+ 128B: {{get(imix_128B, 12) }}
+ 256B: {{get(imix_256B, 12) }}
+ 373b: {{ get(imix_373B, 12) }}
+ 570B: {{get(imix_570B, 12) }}
+ 1400B: {{get(imix_1400B, 12) }}
+ 1518b: {{get(imix_1500B, 12) }}
+ srcmac: {{get(private.ipv4_1.dst_mac}} # xe0.local_mac
+ dstmac: {{get)private.ipv4_1.src_mac}} # xe0.dst_mac
+ QinQ:
+ S-VLAN:
+ id: {{ get(flow.s_vlan_range, "0") }}
+ priority: 0
+ cfi: 0
+ C-VLAN:
+ id: {{ get(flow.c_vlan_range, "0") }}
+ priority: 0
+ cfi: 0
+ mpls:
+ label: {{ get(flow.mpls_label, "0") }}
+
+ outer_l3v4:
+ proto: {{ get(flow.outer_proto, "udp") }},
+ srcip4: {{ get(private.ipv4_1.outer_l3v4.dstip4) }}
+ dstip4: {{ get(private.ipv4_1.outer_l3v4.srcip4) }}
+ ttl: 32
+ dscp: {{ get(flow.tos, 0) }}
+
+ outer_l4:
+ srcport: {{ get(private.ipv4_1.outer_l4.dstport) }}
+ dstport: {{ get(private.ipv4_1.outer_l4.srcport) }}
+ vni: {{ get(flow.vxlan_vni, "2345") }} #optional
+ inner_l2: #optional
+ srcmac: {{ get(private.ipv4_1.outer_l4.inner_l2.dstmac) }}
+ dstmac: {{ get(private.ipv4_1.outer_l4.inner_l2.srcmac) }}
+
+ inner_l3v4: #optional
+ proto: {{ get(flow.inner_proto, "udp") }},
+ srcip4: {{ get(private.ipv4_1.inner_l3v4.dstip4) }}
+ dstip4: {{ get(private.ipv4_1.inner_l3v4.srcip4) }}
+ ttl: 32
+ dscp: {{ get(flow.inner_tos, 0) }}
+
+ inner_l3v6:
+ proto: {{ get(flow.inner_proto, "udp") }},
+ srcip6: {{ get(private.ipv4_1.inner_l3v6.dstip6) }}
+ dstip6: {{ get(private.ipv4_1.inner_l3v6.srcip6) }}
+ ttl: 32
+ tc: {{ get(flow.inner_tos, 0) }}
+
+ inner_l4:
+ srcport: {{ get(private.ipv4_1.inner_l4.dstport) }}
+ dstport: {{ get(private.ipv4_1.inner_l4.srcport) }}
diff --git a/samples/vnf_samples/traffic_profiles/fixed.yaml b/samples/vnf_samples/traffic_profiles/fixed.yaml
new file mode 100644
index 000000000..afccd6fd4
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/fixed.yaml
@@ -0,0 +1,24 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: fixed
+description: Fixed traffic profile to run UDP traffic
+
+traffic_profile:
+ traffic_type: FixedProfile
+ frame_rate: 100 # pps
+ flow_number: 10
+ frame_size: 64
diff --git a/samples/vnf_samples/traffic_profiles/imix_storage.yaml b/samples/vnf_samples/traffic_profiles/imix_storage.yaml
new file mode 100644
index 000000000..8fd10ecbe
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/imix_storage.yaml
@@ -0,0 +1,41 @@
+# Copyright (c) 2016-2017 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.
+
+#imix definition for storage traffic
+#
+# it is a typical case for testing the synthetic VNF performance.
+#
+#percentage of the packets can be less than 100%
+#the traffic in downstream and upstream direction could be different
+
+schema: "nsb:imix:0.1"
+
+imix:
+ private:
+ imix_small: 0 #ipv4 case - 72B should be 0 ipv6 case - 84B
+ imix_128B: 0
+ imix_256B: 0
+ imix_373B: 0
+ imix_570B: 0
+ imix_1400B: 0
+ imix_1500B: 100
+
+ public:
+ imix_small: 0 #ipv4 case - 72B ipv6 - 84B
+ imix_128B: 0
+ imix_256B: 0
+ imix_373B: 0
+ imix_570B: 0
+ imix_1400B: 0
+ imix_1500B: 100
diff --git a/samples/vnf_samples/traffic_profiles/imix_video.yaml b/samples/vnf_samples/traffic_profiles/imix_video.yaml
new file mode 100644
index 000000000..36324bfa4
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/imix_video.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2017 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.
+
+#imix definition for video traffic
+#
+# this is a real traffic profile when video/data traffic only is present
+#
+#percentage of the packets can be less than 100%
+#the traffic in downstream and upstream direction could be different
+#
+#small means ipv4 case - 72B should be 0, ipv6 case - 84B
+
+schema: "nsb:imix:0.1"
+
+imix:
+ private:
+ imix_small: 5 #ipv4 case - 72B should be 0 ipv6 case - 84B
+ imix_128B: 11
+ imix_256B: 16
+ imix_373B: 10
+ imix_570B: 35
+ imix_1400B: 10
+ imix_1500B: 13
+
+ public:
+ imix_small: 5 #ipv4 case - 72B ipv6 - 84B
+ imix_128B: 3
+ imix_256B: 4
+ imix_373B: 6
+ imix_570B: 8
+ imix_1400B: 36
+ imix_1500B: 38
diff --git a/samples/vnf_samples/traffic_profiles/imix_voice.yaml b/samples/vnf_samples/traffic_profiles/imix_voice.yaml
new file mode 100644
index 000000000..b8f8e5358
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/imix_voice.yaml
@@ -0,0 +1,41 @@
+# Copyright (c) 2016-2017 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.
+
+#imix definition for voice traffic
+#
+# it is a typical case for testing the synthetic VNF performance.
+#
+#percentage of the packets can be less than 100%
+#the traffic in downstream and upstream direction could be different
+
+schema: "nsb:imix:0.1"
+
+imix:
+ private:
+ imix_small: 100 #ipv4 case - 72B should be 0 ipv6 case - 84B
+ imix_128B: 0
+ imix_256B: 0
+ imix_373B: 0
+ imix_570B: 0
+ imix_1400B: 0
+ imix_1500B: 0
+
+ public:
+ imix_small: 100 #ipv4 case - 72B ipv6 - 84B
+ imix_128B: 0
+ imix_256B: 0
+ imix_373B: 0
+ imix_570B: 0
+ imix_1400B: 0
+ imix_1500B: 0
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_1flow_Packets_vpe.yaml b/samples/vnf_samples/traffic_profiles/ipv4_1flow_Packets_vpe.yaml
new file mode 100644
index 000000000..f3046f463
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_1flow_Packets_vpe.yaml
@@ -0,0 +1,18 @@
+# Copyright (c) 2016-2017 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:
+ srcip4_range: '152.16.0.20'
+ dstip4_range: '152.40.0.20'
+ count: 1
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
new file mode 100644
index 000000000..cfa166a74
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
@@ -0,0 +1,101 @@
+# Copyright (c) 2016-2017 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.
+#
+schema: "isb: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)
+
+
+private:
+ ipv4:
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.private.imix_small', '0') }}"
+ 128B: "{{ get(imix, 'imix.private.imix_128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.private.imix_256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.private.imix_373B', '0') }}"
+ 570B: "{{get(imix, 'imix.private.imix_570B', '0') }}"
+ 1400B: "{{get(imix, 'imix.private.imix_1400B', '0') }}"
+ 1518B: "{{get(imix, 'imix.private.imix_1500B', '0') }}"
+
+ QinQ:
+ S-VLAN:
+ id: 128
+ priority: 0
+ cfi: 0
+ C-VLAN:
+ id: 512
+ priority: 0
+ cfi: 0
+
+ outer_l3v4:
+ proto: "tcp"
+ srcip4: "{{get(flow, 'flow.srcip4_range', '192.168.0.0-192.168.255.255') }}"
+ dstip4: "{{get(flow, 'flow.dstip4_range', '192.16.0.0-192.16.0.31') }}"
+ ttl: 32
+ dscp: 32
+
+ outer_l4:
+ srcport: "{{get(flow, 'flow.srcport_range', '0') }}"
+ dstport: "{{get(flow, 'flow.dstport_range', '0') }}"
+public:
+ ipv4:
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.private.imix_small', '0') }}"
+ 128B: "{{ get(imix, 'imix.private.imix_128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.private.imix_256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.private.imix_373B', '0') }}"
+ 570B: "{{get(imix, 'imix.private.imix_570B', '0') }}"
+ 1400B: "{{get(imix, 'imix.private.imix_1400B', '0') }}"
+ 1518B: "{{get(imix, 'imix.private.imix_1500B', '0') }}"
+
+ outer_l3v4:
+ proto: "tcp"
+ srcip4: "{{get(flow, 'flow.dstip4_range', '192.16.0.0-192.16.0.31') }}"
+ dstip4: "{{get(flow, 'flow.srcip4_range', '192.168.0.0-192.168.255.255') }}"
+ ttl: 32
+ dscp: 32
+
+ outer_l4:
+ srcport: "{{get(flow, 'flow.dstport_range', '0') }}"
+ dstport: "{{get(flow, 'flow.srcport_range', '0') }}"