summaryrefslogtreecommitdiffstats
path: root/samples/vnf_samples/nsut
diff options
context:
space:
mode:
Diffstat (limited to 'samples/vnf_samples/nsut')
-rw-r--r--samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml53
-rw-r--r--samples/vnf_samples/nsut/acl/acl-tg-topology.yaml50
-rw-r--r--samples/vnf_samples/nsut/acl/acl.cfg55
-rw-r--r--samples/vnf_samples/nsut/acl/acl_1rule.yaml47
-rw-r--r--samples/vnf_samples/nsut/acl/acl_config/acl_config61
-rw-r--r--samples/vnf_samples/nsut/acl/acl_config/acl_script53
-rw-r--r--samples/vnf_samples/nsut/acl/acl_rules.yaml47
-rw-r--r--samples/vnf_samples/nsut/acl/acl_vnf_topology_ixia.yaml50
-rw-r--r--samples/vnf_samples/nsut/acl/acl_vnf_topology_ixload.yaml50
-rw-r--r--samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml47
-rw-r--r--samples/vnf_samples/nsut/acl/ixia_traffic.cfg51
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml38
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml44
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml42
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml43
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml45
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml45
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_packetsize.yaml42
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.yaml43
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml45
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml84
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml74
-rw-r--r--samples/vnf_samples/nsut/vpe/ixia_traffic.cfg64
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml40
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml13
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml13
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml43
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml43
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml13
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_config101
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_downstream41
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_script384
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_upstream64
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_vnf_topology-3node.yaml53
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml50
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixload.yaml50
36 files changed, 1578 insertions, 503 deletions
diff --git a/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml b/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml
new file mode 100644
index 000000000..f8c01daff
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml
@@ -0,0 +1,53 @@
+# Copyright (c) 2016 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.
+
+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__1
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/acl_vnf.yaml #VNF type
+ - member-vnf-index: '3'
+ vnfd-id-ref: tg__2
+ VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type
+
+ vld:
+ - id: private_1
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1
+
+ - id: public_1
+ name: vnf__1 to tg__2 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__2
diff --git a/samples/vnf_samples/nsut/acl/acl-tg-topology.yaml b/samples/vnf_samples/nsut/acl/acl-tg-topology.yaml
new file mode 100644
index 000000000..9bc3e8559
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl-tg-topology.yaml
@@ -0,0 +1,50 @@
+# 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.
+
+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__1
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/acl_vnf.yaml #VNF type
+
+ vld:
+ - id: private_1
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1
+
+ - id: public_1
+ name: vnf__1 to tg__1 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1
diff --git a/samples/vnf_samples/nsut/acl/acl.cfg b/samples/vnf_samples/nsut/acl/acl.cfg
new file mode 100644
index 000000000..fd3c51ee8
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl.cfg
@@ -0,0 +1,55 @@
+# 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.
+
+[PIPELINE0]
+type = MASTER
+core = 0
+[PIPELINE1]
+type = ARPICMP
+core = 1
+pktq_in = SWQ4
+pktq_out = TXQ0.0 TXQ1.0 TXQ2.0 TXQ3.0
+arp_route_tbl = (c0102814,fffff000,1,c0102814) (c0106414,fffff000,0,c0106414)
+nd_route_tbl = (0064:ff9b:0:0:0:0:9810:6414,120,0,0064:ff9b:0:0:0:0:9810:6414)
+pktq_in_prv = RXQ0.0
+prv_to_pub_map = (0,1)
+[PIPELINE2]
+type = TXRX
+core = 2
+pipeline_txrx_type = RXRX
+dest_if_offset = 176
+pktq_in = RXQ0.0 RXQ1.0 RXQ2.0 RXQ3.0
+pktq_out = SWQ0 SWQ1 SWQ2 SWQ3 SWQ4
+[PIPELINE3]
+type = LOADB
+core = 3
+pktq_in = SWQ0 SWQ1 SWQ2 SWQ3
+pktq_out = SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ10 SWQ11
+outport_offset = 136; 8
+n_vnf_threads = 2
+[PIPELINE4]
+type = ACL
+core = 4
+pktq_in = SWQ2 SWQ3
+pktq_out = SWQ8 SWQ9
+traffic_type = 4
+pkt_type = ipv4
+n_flows = 2000000
+[PIPELINE5]
+type = TXRX
+core = 5
+pipeline_txrx_type = TXTX
+dest_if_offset = 176
+pktq_in = SWQ8 SWQ9 SWQ10 SWQ11 SWQ12 SWQ13
+pktq_out = TXQ0.0 TXQ1.0 TXQ0.1 TXQ1.1 TXQ0.2 TXQ1.2
diff --git a/samples/vnf_samples/nsut/acl/acl_1rule.yaml b/samples/vnf_samples/nsut/acl/acl_1rule.yaml
new file mode 100644
index 000000000..b184a29e2
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_1rule.yaml
@@ -0,0 +1,47 @@
+# 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.
+
+access-list1:
+ acl:
+ access-list-entries:
+ - ace:
+ ace-oper-data:
+ match-counter: 0
+ actions: drop,count
+ matches:
+ destination-ipv4-network: 152.16.40.20/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1588
+ - ace:
+ ace-oper-data:
+ match-counter: 0
+ actions: drop,count
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.100.20/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
+ acl-name: sample-ipv4-acl
+ acl-type: ipv4-acl
diff --git a/samples/vnf_samples/nsut/acl/acl_config/acl_config b/samples/vnf_samples/nsut/acl/acl_config/acl_config
new file mode 100644
index 000000000..52b6a5002
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_config/acl_config
@@ -0,0 +1,61 @@
+; Copyright (c) 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.
+
+[PIPELINE0]
+type = MASTER
+core = s{socket}c0
+[PIPELINE1]
+type = ARPICMP
+core = s{socket}c1
+pktq_in = SWQ2
+pktq_out = SWQ7
+# debug output
+# ({port1_dst_ip},{port1_netmask},1,{port1_dst_ip}) ({port0_dst_ip},{port0_netmask},0,{port0_dst_ip})
+arp_route_tbl = ({port0_dst_ip_hex},{port0_netmask_hex},0,{port0_dst_ip_hex}) ({port1_dst_ip_hex},{port1_netmask_hex},1,{port1_dst_ip_hex})
+#ports_mac_list = port0_local_mac port1_local_mac
+ports_mac_list = {port0_local_mac} {port1_local_mac}
+pktq_in_prv = RXQ0.0 RXQ1.0
+prv_to_pub_map = (0,1)
+prv_que_handler = (0)
+
+[PIPELINE2]
+type = TXRX
+core = s{socket}c2
+pktq_in = RXQ0.0 RXQ1.0
+pktq_out = SWQ0 SWQ1 SWQ2
+pipeline_txrx_type = RXRX
+dest_if_offset=176
+[PIPELINE3]
+type = LOADB
+core = s{socket}c3
+pktq_in = SWQ0 SWQ1
+pktq_out = SWQ3 SWQ4
+outport_offset = 136
+phyport_offset = 204
+n_vnf_threads = 1
+prv_que_handler = (0)
+[PIPELINE4]
+type = ACL
+core = s{socket}c4
+pktq_in = SWQ3 SWQ4
+pktq_out = SWQ5 SWQ6
+n_flows = 1000000
+pkt_type = ipv4
+traffic_type = 4
+[PIPELINE5]
+type = TXRX
+core = s{socket}c5
+pktq_in = SWQ5 SWQ6 SWQ7
+pktq_out = TXQ0.0 TXQ1.0
+pipeline_txrx_type = TXTX
diff --git a/samples/vnf_samples/nsut/acl/acl_config/acl_script b/samples/vnf_samples/nsut/acl/acl_config/acl_script
new file mode 100644
index 000000000..4d7553609
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_config/acl_script
@@ -0,0 +1,53 @@
+# Copyright (c) 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.
+
+link 0 down
+link 0 config {port0_local_ip} {port0_prefixlen}
+link 0 up
+link 1 down
+link 1 config {port1_local_ip} {port1_prefixlen}
+link 1 up
+
+p action add 0 accept
+p action add 0 fwd 0
+p action add 0 count
+
+p action add 1 accept
+p action add 1 fwd 1
+p action add 1 count
+
+#p acl add 1 0.0.0.0 0 0.0.0.0 0 0 65535 0 65535 0 0 0
+#p acl add 1 0.0.0.0 0 0.0.0.0 0 0 65535 0 65535 0 0 1
+
+# action rule matches dest port
+p acl add 1 {port1_local_network} {port1_prefix} 0.0.0.0 0 0 65535 0 65535 0 0 0
+p acl add 1 0.0.0.0 0 {port1_local_network} {port1_prefix} 0 65535 0 65535 0 0 1
+
+p acl add 1 {port0_local_network} {port0_prefix} 0.0.0.0 0 0 65535 0 65535 0 0 1
+p acl add 1 0.0.0.0 0 {port0_local_network} {port0_prefix} 0 65535 0 65535 0 0 0
+
+p acl add 1 {port0_local_network} {port0_prefix} {port1_local_network} {port1_prefix} 0 65535 0 65535 0 0 1
+p acl add 1 {port1_local_network} {port1_prefix} {port0_local_network} {port0_prefix} 0 65535 0 65535 0 0 0
+
+# gateway is the remote port
+p 1 arpadd 0 {port0_gateway} {port0_local_mac}
+p 1 arpadd 0 {port0_local_ip} {port0_local_mac}
+p 1 arpadd 0 {port0_dst_ip} {port0_dst_mac}
+p 1 arpadd 1 {port1_gateway} {port1_local_mac}
+p 1 arpadd 1 {port1_local_ip} {port1_local_mac}
+p 1 arpadd 1 {port1_dst_ip} {port1_dst_mac}
+
+p acl applyruleset
+
+#p acl dbg 1
diff --git a/samples/vnf_samples/nsut/acl/acl_rules.yaml b/samples/vnf_samples/nsut/acl/acl_rules.yaml
new file mode 100644
index 000000000..b184a29e2
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_rules.yaml
@@ -0,0 +1,47 @@
+# 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.
+
+access-list1:
+ acl:
+ access-list-entries:
+ - ace:
+ ace-oper-data:
+ match-counter: 0
+ actions: drop,count
+ matches:
+ destination-ipv4-network: 152.16.40.20/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1588
+ - ace:
+ ace-oper-data:
+ match-counter: 0
+ actions: drop,count
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.100.20/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
+ acl-name: sample-ipv4-acl
+ acl-type: ipv4-acl
diff --git a/samples/vnf_samples/nsut/acl/acl_vnf_topology_ixia.yaml b/samples/vnf_samples/nsut/acl/acl_vnf_topology_ixia.yaml
new file mode 100644
index 000000000..606d557e9
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_vnf_topology_ixia.yaml
@@ -0,0 +1,50 @@
+# 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.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VACL
+ name: VACL
+ short-name: VACL
+ description: scenario with VACL,L3fwd and VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/acl_vnf.yaml
+
+ vld:
+ - id: private_1
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1 #TREX
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1 #VNF
+
+ - id: public_1
+ name: vnf__1 to tg__1 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1 #L3fwd
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1 #VACL VNF
diff --git a/samples/vnf_samples/nsut/acl/acl_vnf_topology_ixload.yaml b/samples/vnf_samples/nsut/acl/acl_vnf_topology_ixload.yaml
new file mode 100644
index 000000000..2fc173aed
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_vnf_topology_ixload.yaml
@@ -0,0 +1,50 @@
+# 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.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VACL
+ name: VACL
+ short-name: VACL
+ description: scenario with HTTP and vACL VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/tg_ixload.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/acl_vnf.yaml
+
+ vld:
+ - id: private_1
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1 # HTTP Client
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1 # VNF
+
+ - id: public_1
+ name: vnf__1 to tg__1 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1 # HTTP Server
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1 # VACL VNF
diff --git a/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml b/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml
new file mode 100644
index 000000000..b184a29e2
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml
@@ -0,0 +1,47 @@
+# 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.
+
+access-list1:
+ acl:
+ access-list-entries:
+ - ace:
+ ace-oper-data:
+ match-counter: 0
+ actions: drop,count
+ matches:
+ destination-ipv4-network: 152.16.40.20/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1588
+ - ace:
+ ace-oper-data:
+ match-counter: 0
+ actions: drop,count
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.100.20/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
+ acl-name: sample-ipv4-acl
+ acl-type: ipv4-acl
diff --git a/samples/vnf_samples/nsut/acl/ixia_traffic.cfg b/samples/vnf_samples/nsut/acl/ixia_traffic.cfg
new file mode 100644
index 000000000..f749865c5
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/ixia_traffic.cfg
@@ -0,0 +1,51 @@
+{
+ "private_1": {
+ "id": 1,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:03",
+ "framesPerSecond": true,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "2001",
+ "srcport": "1234"
+ },
+ "traffic_type": "continuous"
+ },
+ "public_1": {
+ "id": 2,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:04",
+ "framesPerSecond": true,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "1234",
+ "srcport": "2001"
+ },
+ "traffic_type": "continuous"
+ }
+}
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
new file mode 100644
index 000000000..cf2dbfc33
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
@@ -0,0 +1,38 @@
+# 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: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
+ topology: acl_vnf_topology_ixload.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Duration
+ duration: 10
+ ixia_profile: ../../traffic_profiles/acl/HTTP-vACL_IPv4_2Ports.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644
index 000000000..477bd8fbf
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
@@ -0,0 +1,44 @@
+# 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: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
+ topology: acl_vnf_topology_ixia.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: "../../traffic_profiles/ipv4_1flow_Packets.yaml"
+ imix: "../../traffic_profiles/imix_voice.yaml"
+ ixia_profile: ../../traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
new file mode 100644
index 000000000..695768194
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
@@ -0,0 +1,42 @@
+# Copyright (c) 2016 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/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ tc_options:
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf_options:
+ acl:
+ rules: acl_1rule.yaml
+ cfg: acl_config
+ runner:
+ type: Duration
+ duration: 400
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
new file mode 100644
index 000000000..8d7fe3cb2
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.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.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
new file mode 100644
index 000000000..6b21ba576
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
@@ -0,0 +1,45 @@
+# Copyright (c) 2016 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/ipv4_throughput.yaml
+ topology: acl-tg-topology-3node.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ tg__2: trafficgen_2.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ corelated_traffic: true
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_3node.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
new file mode 100644
index 000000000..df7a909a1
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
@@ -0,0 +1,45 @@
+# 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: yardstick:task:0.1
+scenarios:
+{% for worker_thread in [1, 2, 3 , 4, 5, 6] %}
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+{% endfor %}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_packetsize.yaml
new file mode 100644
index 000000000..96b3f687c
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_packetsize.yaml
@@ -0,0 +1,42 @@
+# Copyright (c) 2016 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/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ tc_options:
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf_options:
+ acl:
+ rules: acl_worstcaserules.yaml
+ cfg: acl_config
+ runner:
+ type: Duration
+ duration: 400
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.yaml
new file mode 100644
index 000000000..8d7fe3cb2
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.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.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml
new file mode 100644
index 000000000..ab688a23f
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml
@@ -0,0 +1,45 @@
+# 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: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ tc_options:
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ latency: true
+ vnf_options:
+ acl:
+ rules: acl_1rule.yaml
+ cfg: acl_config
+ options:
+ packetsize: 64
+ runner:
+ type: Iteration
+ iterations: 28
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
new file mode 100644
index 000000000..10eba4c3c
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
@@ -0,0 +1,84 @@
+# Copyright (c) 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: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+context:
+ # put node context first, so we don't HEAT deploy if node has errors
+ name: yardstick
+ flavor: yardstick-dpdk-flavor
+# flavor:
+# name: yardstick-dpdk-flavor
+# vcpus: 10
+# ram: 20480
+# disk: 4
+# extra_specs:
+# hw:cpu_sockets: 1
+# hw:cpu_cores: 10
+# hw:cpu_threads: 1
+# # hw:mem_page_size: large
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf:
+ floating_ip: true
+ placement: "pgrp1"
+ image: yardstick-vnfs
+ trafficgen_1:
+ floating_ip: true
+ placement: "pgrp1"
+ image: yardstick-trex
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ external_network: "yardstick-public"
+ xe0:
+ cidr: '10.0.2.0/24'
+ vld_id: public
+# port_security_enabled: False
+ allowed_address_pairs:
+ - ip_address:
+ '0.0.0.0/0'
+ xe1:
+ cidr: '10.0.3.0/24'
+ vld_id: private
+# port_security_enabled: False
+ allowed_address_pairs:
+ - ip_address:
+ '0.0.0.0/0'
+
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
new file mode 100644
index 000000000..3344a1de1
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
@@ -0,0 +1,74 @@
+# Copyright (c) 2016 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/ipv4_throughput.yaml
+ topology: acl-tg-topology.yaml
+ nodes:
+ tg__1: trafficgen_1.baremetal
+ vnf__1: vnf.yardstick
+ tc_options:
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf_options:
+ acl:
+ rules: acl_1rule.yaml
+ cfg: acl_config
+ runner:
+ type: Duration
+ duration: 400
+ interval: 35
+ traffic_options:
+ flow: ../../traffic_profiles/ipv4_1flow_Packets.yaml
+ imix: ../../traffic_profiles/imix_voice.yaml
+contexts:
+ # put node context first, so we don't HEAT deploy if node has errors
+ - name: baremetal
+ type: Node
+ file: trex-baremetal.yml
+ - name: yardstick
+ image: yardstick-acl
+ flavor: yardstick-flavor
+# flavor:
+# # name: yardstick-dpdk-flavor
+# vcpus: 6
+# ram: 20480
+# disk: 4
+# extra_specs:
+# hw:cpu_sockets: 1
+# hw:cpu_cores: 6
+# hw:cpu_threads: 1
+# # hw:mem_page_size: large
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf:
+ floating_ip: true
+ placement: "pgrp1"
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ external_network: "yardstick-public"
+ xe0:
+ cidr: '10.0.2.0/24'
+ vld_id: public
+ xe1:
+ cidr: '10.0.3.0/24'
+ vld_id: private
+
diff --git a/samples/vnf_samples/nsut/vpe/ixia_traffic.cfg b/samples/vnf_samples/nsut/vpe/ixia_traffic.cfg
new file mode 100644
index 000000000..cdeee6e35
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/ixia_traffic.cfg
@@ -0,0 +1,64 @@
+# 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.
+{
+ "private_1": {
+ "id": 1,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:03",
+ "framesPerSecond": true,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "2001",
+ "srcport": "1234"
+ },
+ "traffic_type": "continuous"
+ },
+ "public_1": {
+ "id": 2,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:04",
+ "framesPerSecond": true,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "1234",
+ "srcport": "2001"
+ },
+ "traffic_type": "continuous"
+ }
+}
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
new file mode 100644
index 000000000..7b251395b
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
@@ -0,0 +1,40 @@
+# 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: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
+ topology: vpe_vnf_topology_ixload.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ vnf__1:
+ cfg: vpe_config
+ runner:
+ type: Duration
+ duration: 4
+ traffic_options:
+ flow: "../../traffic_profiles/ipv4_1flow_Packets_vpe.yaml"
+ imix: "../../traffic_profiles/imix_voice.yaml"
+ ixia_profile: ../../traffic_profiles/vpe/HTTP-vPE_IPv4_2Ports.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml
index 37687613c..4652a62d5 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml
@@ -21,15 +21,16 @@ scenarios:
nodes:
tg__1: trafficgen_1.yardstick
vnf__1: vnf.yardstick
- tc_options:
+ options:
+ packetsize: 64
+ traffic_type: 4
rfc2544:
- allowed_drop_rate: 0.8 - 1
- vnf_options:
- vpe:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
cfg: vpe_config
runner:
- type: Duration
- duration: 400
+ type: Iteration
+ iterations: 10
interval: 35
traffic_options:
flow: "../../traffic_profiles/ipv4_1flow_Packets_vpe.yaml"
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
index fb1be35c1..bd64a45f3 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
@@ -21,15 +21,16 @@ scenarios:
nodes:
tg__1: trafficgen_1.yardstick
vnf__1: vnf.yardstick
- tc_options:
+ options:
+ packetsize: 64
+ traffic_type: 4
rfc2544:
- allowed_drop_rate: 0.8 - 1
- vnf_options:
- vpe:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
cfg: vpe_config
runner:
- type: Duration
- duration: 400
+ type: Iteration
+ iterations: 10
interval: 35
traffic_options:
flow: "../../traffic_profiles/ipv4_1flow_Packets_vpe.yaml"
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
new file mode 100644
index 000000000..0257886fb
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.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.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_vpe.yaml"
+ topology: vpe_vnf_topology_ixia.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
+ cfg: vpe_config
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: "../../traffic_profiles/ipv4_1flow_Packets_vpe.yaml"
+ imix: "../../traffic_profiles/imix_voice.yaml"
+ ixia_profile: ../../traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
new file mode 100644
index 000000000..2c48d0ef9
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.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.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
+ topology: vpe_vnf_topology-3node.yaml
+ nodes:
+ tg__1: trafficgen_1.yardstick
+ vnf__1: vnf.yardstick
+ options:
+ packetsize: 64
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ corelated_traffic: true
+ vnf__1:
+ cfg: vpe_config
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ traffic_options:
+ flow: "../../traffic_profiles/ipv4_1flow_Packets_vpe.yaml"
+ imix: "../../traffic_profiles/imix_voice.yaml"
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml
index c481f812b..674fa95f4 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml
@@ -21,15 +21,16 @@ scenarios:
nodes:
tg__1: trafficgen_1.yardstick
vnf__1: vnf.yardstick
- tc_options:
+ options:
+ packetsize: 64
+ traffic_type: 4
rfc2544:
- allowed_drop_rate: 0.8 - 1
- vnf_options:
- vpe:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__1:
cfg: vpe_config
runner:
- type: Duration
- duration: 400
+ type: Iteration
+ iterations: 10
interval: 35
traffic_options:
flow: "../../traffic_profiles/ipv4_1flow_Packets_vpe.yaml"
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config
deleted file mode 100644
index 17ebc6a76..000000000
--- a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config
+++ /dev/null
@@ -1,101 +0,0 @@
-[EAL]
-log_level = 0
-
-[PIPELINE0]
-type = MASTER
-core = s{socket}c0
-
-[MEMPOOL0]
-pool_size = 256K
-
-[MEMPOOL1]
-pool_size = 2M
-
-[RXQ1.0]
-mempool = MEMPOOL1
-
-;;;;;;;;;;Begin of upstream 0;;;;;;;;;;;;;;;;;;
-[PIPELINE1]
-type = FIREWALL
-core = s{socket}c1
-pktq_in = RXQ0.0
-pktq_out = SWQ0 SINK0
-n_rules = 4096
-pkt_type = qinq_ipv4
-
-[PIPELINE2]
-type = FLOW_CLASSIFICATION
-core = s{socket}c1
-pktq_in = SWQ0
-pktq_out = SWQ1 SINK1
-n_flows = 65536
-key_size = 8; dma_size
-key_offset = 268; dma_dst_offset
-key_mask = 00000FFF00000FFF; qinq
-flowid_offset = 172; mbuf (128) + 64
-
-[PIPELINE3]
-type = FLOW_ACTIONS
-core = s{socket}c1h
-pktq_in = SWQ1
-pktq_out = SWQ2
-n_flows = 65536
-n_meters_per_flow = 1;dscp is not considered for per user metering
-flow_id_offset = 172; mbuf (128) + 64
-ip_hdr_offset = 278 ; should not needed, but who knows?
-color_offset = 176
-
-[PIPELINE4]
-type = FLOW_ACTIONS
-core = s{socket}c1h
-pktq_in = SWQ2
-pktq_out = SWQ3
-n_flows = 65536
-n_meters_per_flow = 4; Use dscp to classify into 1 out of 4 TC
-flow_id_offset = 172; mbuf (128) + 64
-ip_hdr_offset = 278 ; should not needed, but who knows?
-color_offset = 176
-
-[PIPELINE5]
-type = ROUTING
-core = s{socket}c1
-pktq_in = SWQ3
-pktq_out = TXQ1.0 SINK2
-encap = ethernet_mpls
-mpls_color_mark = yes
-ip_hdr_offset = 278 ; should not needed, but who knows?
-color_offset = 176
-
-;;;;;;;;;;Begin of downstream 0;;;;;;;;;;;;;;;;;;
-[PIPELINE6]
-type = ROUTING
-core = s{socket}c2
-pktq_in = RXQ1.0
-pktq_out = SWQ4 SINK3
-encap = ethernet_qinq
-qinq_sched = yes
-ip_hdr_offset = 270; mbuf (128) + headroom (128) + ethernet header (14) = 270
-
-
-[PIPELINE7]
-type = PASS-THROUGH
-core = s{socket}c2h
-pktq_in = SWQ4
-pktq_out = SWQ5
-
-[PIPELINE8]
-type = PASS-THROUGH
-core = s{socket}c2h
-pktq_in = SWQ5 TM0
-pktq_out = TM0 SWQ6
-
-[PIPELINE9]
-type = PASS-THROUGH
-core = s{socket}c2
-pktq_in = SWQ6
-pktq_out = TXQ0.0
-
-[TM0]
-burst_read = 24;dequeue should be slightly slower then enqueue to create buffer
-burst_write = 32
-cfg = /tmp/full_tm_profile_10G.cfg
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_downstream b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_downstream
new file mode 100644
index 000000000..540518d17
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_downstream
@@ -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.
+
+[PIPELINE6]
+type = ROUTING
+core = s{socket}c4
+pktq_in = RXQ1.0
+pktq_out = SWQ4 SINK3
+encap = ethernet_qinq
+qinq_sched = yes
+ip_hdr_offset = 270
+
+
+[PIPELINE7]
+type = PASS-THROUGH
+core = s{socket}c5h
+pktq_in = SWQ4
+pktq_out = SWQ5
+
+[PIPELINE8]
+type = PASS-THROUGH
+core = s{socket}c5h
+pktq_in = SWQ5 TM0
+pktq_out = TM0 SWQ6
+
+[PIPELINE9]
+type = PASS-THROUGH
+core = s{socket}c5h
+pktq_in = SWQ6
+pktq_out = TXQ0.0
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script
deleted file mode 100644
index 740eb6586..000000000
--- a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script
+++ /dev/null
@@ -1,384 +0,0 @@
-#=================================================================
-#Pipeline 1 : 256 Firewall Rules for 1 port with 0.0.X.0/24 for destination IP
-#=================================================================
-p 1 firewall add bulk /tmp/fw_bulk_inst0_256.txt
-p 1 firewall add default 1
-
-#=================================================================
-#Pipeline 2 : 512 flow classfication Rules for 1 port using QinQ as input. Flow id = SVLAN * 512 + CVLAN
-#=================================================================
-p 2 flow add qinq 128 512 port 0 id 1
-p 2 flow add default 1
-
-#=================================================================
-#Pipeline 3 : 512 metering Rules for 1 port
-#=================================================================
-p 3 action flow bulk /tmp/action_bulk_512.txt
-p 3 flows 512 ports 1
-
-#=================================================================
-#Pipeline 4 : 512 metering Rules and 4 traffic classes for 1 port
-#=================================================================
-p 4 action flow bulk /tmp/action_bulk_512.txt
-p 4 flows 512 ports 1
-p 4 action dscp 0 class 0 color G
-p 4 action dscp 1 class 1 color Y
-p 4 action dscp 2 class 2 color R
-p 4 action dscp 3 class 3 color G
-p 4 action dscp 4 class 0 color Y
-p 4 action dscp 5 class 1 color R
-p 4 action dscp 6 class 2 color G
-p 4 action dscp 7 class 3 color Y
-p 4 action dscp 8 class 0 color R
-p 4 action dscp 9 class 1 color G
-p 4 action dscp 10 class 2 color Y
-p 4 action dscp 11 class 3 color R
-p 4 action dscp 12 class 0 color G
-p 4 action dscp 13 class 1 color Y
-p 4 action dscp 14 class 2 color R
-p 4 action dscp 15 class 3 color G
-p 4 action dscp 16 class 0 color Y
-p 4 action dscp 17 class 1 color R
-p 4 action dscp 18 class 2 color G
-p 4 action dscp 19 class 3 color Y
-p 4 action dscp 20 class 0 color R
-p 4 action dscp 21 class 1 color G
-p 4 action dscp 22 class 2 color Y
-p 4 action dscp 23 class 3 color R
-p 4 action dscp 24 class 0 color G
-p 4 action dscp 25 class 1 color Y
-p 4 action dscp 26 class 2 color R
-p 4 action dscp 27 class 3 color G
-p 4 action dscp 28 class 0 color Y
-p 4 action dscp 29 class 1 color R
-p 4 action dscp 30 class 2 color G
-p 4 action dscp 31 class 3 color Y
-p 4 action dscp 32 class 0 color R
-p 4 action dscp 33 class 1 color G
-p 4 action dscp 34 class 2 color Y
-p 4 action dscp 35 class 3 color R
-p 4 action dscp 36 class 0 color G
-p 4 action dscp 37 class 1 color Y
-p 4 action dscp 38 class 2 color R
-p 4 action dscp 39 class 3 color G
-p 4 action dscp 40 class 0 color Y
-p 4 action dscp 41 class 1 color R
-p 4 action dscp 42 class 2 color G
-p 4 action dscp 43 class 3 color Y
-p 4 action dscp 44 class 0 color R
-p 4 action dscp 45 class 1 color G
-p 4 action dscp 46 class 2 color Y
-p 4 action dscp 47 class 3 color R
-p 4 action dscp 48 class 0 color G
-p 4 action dscp 49 class 1 color Y
-p 4 action dscp 50 class 2 color R
-p 4 action dscp 51 class 3 color G
-p 4 action dscp 52 class 0 color Y
-p 4 action dscp 53 class 1 color R
-p 4 action dscp 54 class 2 color G
-p 4 action dscp 55 class 3 color Y
-p 4 action dscp 56 class 0 color R
-p 4 action dscp 57 class 1 color G
-p 4 action dscp 58 class 2 color Y
-p 4 action dscp 59 class 3 color R
-p 4 action dscp 60 class 0 color G
-p 4 action dscp 61 class 1 color Y
-p 4 action dscp 62 class 2 color R
-p 4 action dscp 63 class 3 color G
-#=================================================================
-#Pipeline 5 : 32 Upstream Routing Rules for 1 ports with dst_ip : 0.0.0.0 to 0.0.255.255
-#=================================================================
-p 5 route add 152.40.0.0 21 port 0 ether {port1_dst_mac} mpls 0:0
-p 5 route add 152.40.8.0 21 port 0 ether {port1_dst_mac} mpls 0:1
-p 5 route add 152.40.16.0 21 port 0 ether {port1_dst_mac} mpls 0:2
-p 5 route add 152.40.24.0 21 port 0 ether {port1_dst_mac} mpls 0:3
-p 5 route add 152.40.32.0 21 port 0 ether {port1_dst_mac} mpls 0:4
-p 5 route add 152.40.40.0 21 port 0 ether {port1_dst_mac} mpls 0:5
-p 5 route add 152.40.48.0 21 port 0 ether {port1_dst_mac} mpls 0:6
-p 5 route add 152.40.56.0 21 port 0 ether {port1_dst_mac} mpls 0:7
-p 5 route add 152.40.64.0 21 port 0 ether {port1_dst_mac} mpls 0:8
-p 5 route add 152.40.72.0 21 port 0 ether {port1_dst_mac} mpls 0:9
-p 5 route add 152.40.80.0 21 port 0 ether {port1_dst_mac} mpls 0:10
-p 5 route add 152.40.88.0 21 port 0 ether {port1_dst_mac} mpls 0:11
-p 5 route add 152.40.96.0 21 port 0 ether {port1_dst_mac} mpls 0:12
-p 5 route add 152.40.104.0 21 port 0 ether {port1_dst_mac} mpls 0:13
-p 5 route add 152.40.112.0 21 port 0 ether {port1_dst_mac} mpls 0:14
-p 5 route add 152.40.120.0 21 port 0 ether {port1_dst_mac} mpls 0:15
-p 5 route add 152.40.128.0 21 port 0 ether {port1_dst_mac} mpls 0:16
-p 5 route add 152.40.136.0 21 port 0 ether {port1_dst_mac} mpls 0:17
-p 5 route add 152.40.144.0 21 port 0 ether {port1_dst_mac} mpls 0:18
-p 5 route add 152.40.152.0 21 port 0 ether {port1_dst_mac} mpls 0:19
-p 5 route add 152.40.160.0 21 port 0 ether {port1_dst_mac} mpls 0:20
-p 5 route add 152.40.168.0 21 port 0 ether {port1_dst_mac} mpls 0:21
-p 5 route add 152.40.176.0 21 port 0 ether {port1_dst_mac} mpls 0:22
-p 5 route add 152.40.184.0 21 port 0 ether {port1_dst_mac} mpls 0:23
-p 5 route add 152.40.192.0 21 port 0 ether {port1_dst_mac} mpls 0:24
-p 5 route add 152.40.200.0 21 port 0 ether {port1_dst_mac} mpls 0:25
-p 5 route add 152.40.208.0 21 port 0 ether {port1_dst_mac} mpls 0:26
-p 5 route add 152.40.216.0 21 port 0 ether {port1_dst_mac} mpls 0:27
-p 5 route add 152.40.224.0 21 port 0 ether {port1_dst_mac} mpls 0:28
-p 5 route add 152.40.232.0 21 port 0 ether {port1_dst_mac} mpls 0:29
-p 5 route add 152.40.240.0 21 port 0 ether {port1_dst_mac} mpls 0:30
-p 5 route add 152.40.248.0 21 port 0 ether {port1_dst_mac} mpls 0:31
-p 5 route add default 1
-
-#=================================================================
-#Pipeline 6 : 256 Downstream Routing Rules for 1 ports with dst_ip : 0.0.0.0 to 0.0.255.255
-#=================================================================
-p 6 route add 152.16.0.0 24 port 0 ether {port0_dst_mac} qinq 0 0
-p 6 route add 152.16.1.0 24 port 0 ether {port0_dst_mac} qinq 0 1
-p 6 route add 152.16.2.0 24 port 0 ether {port0_dst_mac} qinq 0 2
-p 6 route add 152.16.3.0 24 port 0 ether {port0_dst_mac} qinq 0 3
-p 6 route add 152.16.4.0 24 port 0 ether {port0_dst_mac} qinq 0 4
-p 6 route add 152.16.5.0 24 port 0 ether {port0_dst_mac} qinq 0 5
-p 6 route add 152.16.6.0 24 port 0 ether {port0_dst_mac} qinq 0 6
-p 6 route add 152.16.7.0 24 port 0 ether {port0_dst_mac} qinq 0 7
-p 6 route add 152.16.8.0 24 port 0 ether {port0_dst_mac} qinq 0 8
-p 6 route add 152.16.9.0 24 port 0 ether {port0_dst_mac} qinq 0 9
-p 6 route add 152.16.10.0 24 port 0 ether {port0_dst_mac} qinq 0 10
-p 6 route add 152.16.11.0 24 port 0 ether {port0_dst_mac} qinq 0 11
-p 6 route add 152.16.12.0 24 port 0 ether {port0_dst_mac} qinq 0 12
-p 6 route add 152.16.13.0 24 port 0 ether {port0_dst_mac} qinq 0 13
-p 6 route add 152.16.14.0 24 port 0 ether {port0_dst_mac} qinq 0 14
-p 6 route add 152.16.15.0 24 port 0 ether {port0_dst_mac} qinq 0 15
-p 6 route add 152.16.16.0 24 port 0 ether {port0_dst_mac} qinq 0 16
-p 6 route add 152.16.17.0 24 port 0 ether {port0_dst_mac} qinq 0 17
-p 6 route add 152.16.18.0 24 port 0 ether {port0_dst_mac} qinq 0 18
-p 6 route add 152.16.19.0 24 port 0 ether {port0_dst_mac} qinq 0 19
-p 6 route add 152.16.20.0 24 port 0 ether {port0_dst_mac} qinq 0 20
-p 6 route add 152.16.21.0 24 port 0 ether {port0_dst_mac} qinq 0 21
-p 6 route add 152.16.22.0 24 port 0 ether {port0_dst_mac} qinq 0 22
-p 6 route add 152.16.23.0 24 port 0 ether {port0_dst_mac} qinq 0 23
-p 6 route add 152.16.24.0 24 port 0 ether {port0_dst_mac} qinq 0 24
-p 6 route add 152.16.25.0 24 port 0 ether {port0_dst_mac} qinq 0 25
-p 6 route add 152.16.26.0 24 port 0 ether {port0_dst_mac} qinq 0 26
-p 6 route add 152.16.27.0 24 port 0 ether {port0_dst_mac} qinq 0 27
-p 6 route add 152.16.28.0 24 port 0 ether {port0_dst_mac} qinq 0 28
-p 6 route add 152.16.29.0 24 port 0 ether {port0_dst_mac} qinq 0 29
-p 6 route add 152.16.30.0 24 port 0 ether {port0_dst_mac} qinq 0 30
-p 6 route add 152.16.31.0 24 port 0 ether {port0_dst_mac} qinq 0 31
-p 6 route add 152.16.32.0 24 port 0 ether {port0_dst_mac} qinq 0 32
-p 6 route add 152.16.33.0 24 port 0 ether {port0_dst_mac} qinq 0 33
-p 6 route add 152.16.34.0 24 port 0 ether {port0_dst_mac} qinq 0 34
-p 6 route add 152.16.35.0 24 port 0 ether {port0_dst_mac} qinq 0 35
-p 6 route add 152.16.36.0 24 port 0 ether {port0_dst_mac} qinq 0 36
-p 6 route add 152.16.37.0 24 port 0 ether {port0_dst_mac} qinq 0 37
-p 6 route add 152.16.38.0 24 port 0 ether {port0_dst_mac} qinq 0 38
-p 6 route add 152.16.39.0 24 port 0 ether {port0_dst_mac} qinq 0 39
-p 6 route add 152.16.40.0 24 port 0 ether {port0_dst_mac} qinq 0 40
-p 6 route add 152.16.41.0 24 port 0 ether {port0_dst_mac} qinq 0 41
-p 6 route add 152.16.42.0 24 port 0 ether {port0_dst_mac} qinq 0 42
-p 6 route add 152.16.43.0 24 port 0 ether {port0_dst_mac} qinq 0 43
-p 6 route add 152.16.44.0 24 port 0 ether {port0_dst_mac} qinq 0 44
-p 6 route add 152.16.45.0 24 port 0 ether {port0_dst_mac} qinq 0 45
-p 6 route add 152.16.46.0 24 port 0 ether {port0_dst_mac} qinq 0 46
-p 6 route add 152.16.47.0 24 port 0 ether {port0_dst_mac} qinq 0 47
-p 6 route add 152.16.48.0 24 port 0 ether {port0_dst_mac} qinq 0 48
-p 6 route add 152.16.49.0 24 port 0 ether {port0_dst_mac} qinq 0 49
-p 6 route add 152.16.50.0 24 port 0 ether {port0_dst_mac} qinq 0 50
-p 6 route add 152.16.51.0 24 port 0 ether {port0_dst_mac} qinq 0 51
-p 6 route add 152.16.52.0 24 port 0 ether {port0_dst_mac} qinq 0 52
-p 6 route add 152.16.53.0 24 port 0 ether {port0_dst_mac} qinq 0 53
-p 6 route add 152.16.54.0 24 port 0 ether {port0_dst_mac} qinq 0 54
-p 6 route add 152.16.55.0 24 port 0 ether {port0_dst_mac} qinq 0 55
-p 6 route add 152.16.56.0 24 port 0 ether {port0_dst_mac} qinq 0 56
-p 6 route add 152.16.57.0 24 port 0 ether {port0_dst_mac} qinq 0 57
-p 6 route add 152.16.58.0 24 port 0 ether {port0_dst_mac} qinq 0 58
-p 6 route add 152.16.59.0 24 port 0 ether {port0_dst_mac} qinq 0 59
-p 6 route add 152.16.60.0 24 port 0 ether {port0_dst_mac} qinq 0 60
-p 6 route add 152.16.61.0 24 port 0 ether {port0_dst_mac} qinq 0 61
-p 6 route add 152.16.62.0 24 port 0 ether {port0_dst_mac} qinq 0 62
-p 6 route add 152.16.63.0 24 port 0 ether {port0_dst_mac} qinq 0 63
-p 6 route add 152.16.64.0 24 port 0 ether {port0_dst_mac} qinq 0 64
-p 6 route add 152.16.65.0 24 port 0 ether {port0_dst_mac} qinq 0 65
-p 6 route add 152.16.66.0 24 port 0 ether {port0_dst_mac} qinq 0 66
-p 6 route add 152.16.67.0 24 port 0 ether {port0_dst_mac} qinq 0 67
-p 6 route add 152.16.68.0 24 port 0 ether {port0_dst_mac} qinq 0 68
-p 6 route add 152.16.69.0 24 port 0 ether {port0_dst_mac} qinq 0 69
-p 6 route add 152.16.70.0 24 port 0 ether {port0_dst_mac} qinq 0 70
-p 6 route add 152.16.71.0 24 port 0 ether {port0_dst_mac} qinq 0 71
-p 6 route add 152.16.72.0 24 port 0 ether {port0_dst_mac} qinq 0 72
-p 6 route add 152.16.73.0 24 port 0 ether {port0_dst_mac} qinq 0 73
-p 6 route add 152.16.74.0 24 port 0 ether {port0_dst_mac} qinq 0 74
-p 6 route add 152.16.75.0 24 port 0 ether {port0_dst_mac} qinq 0 75
-p 6 route add 152.16.76.0 24 port 0 ether {port0_dst_mac} qinq 0 76
-p 6 route add 152.16.77.0 24 port 0 ether {port0_dst_mac} qinq 0 77
-p 6 route add 152.16.78.0 24 port 0 ether {port0_dst_mac} qinq 0 78
-p 6 route add 152.16.79.0 24 port 0 ether {port0_dst_mac} qinq 0 79
-p 6 route add 152.16.80.0 24 port 0 ether {port0_dst_mac} qinq 0 80
-p 6 route add 152.16.81.0 24 port 0 ether {port0_dst_mac} qinq 0 81
-p 6 route add 152.16.82.0 24 port 0 ether {port0_dst_mac} qinq 0 82
-p 6 route add 152.16.83.0 24 port 0 ether {port0_dst_mac} qinq 0 83
-p 6 route add 152.16.84.0 24 port 0 ether {port0_dst_mac} qinq 0 84
-p 6 route add 152.16.85.0 24 port 0 ether {port0_dst_mac} qinq 0 85
-p 6 route add 152.16.86.0 24 port 0 ether {port0_dst_mac} qinq 0 86
-p 6 route add 152.16.87.0 24 port 0 ether {port0_dst_mac} qinq 0 87
-p 6 route add 152.16.88.0 24 port 0 ether {port0_dst_mac} qinq 0 88
-p 6 route add 152.16.89.0 24 port 0 ether {port0_dst_mac} qinq 0 89
-p 6 route add 152.16.90.0 24 port 0 ether {port0_dst_mac} qinq 0 90
-p 6 route add 152.16.91.0 24 port 0 ether {port0_dst_mac} qinq 0 91
-p 6 route add 152.16.92.0 24 port 0 ether {port0_dst_mac} qinq 0 92
-p 6 route add 152.16.93.0 24 port 0 ether {port0_dst_mac} qinq 0 93
-p 6 route add 152.16.94.0 24 port 0 ether {port0_dst_mac} qinq 0 94
-p 6 route add 152.16.95.0 24 port 0 ether {port0_dst_mac} qinq 0 95
-p 6 route add 152.16.96.0 24 port 0 ether {port0_dst_mac} qinq 0 96
-p 6 route add 152.16.97.0 24 port 0 ether {port0_dst_mac} qinq 0 97
-p 6 route add 152.16.98.0 24 port 0 ether {port0_dst_mac} qinq 0 98
-p 6 route add 152.16.99.0 24 port 0 ether {port0_dst_mac} qinq 0 99
-p 6 route add 152.16.100.0 24 port 0 ether {port0_dst_mac} qinq 0 100
-p 6 route add 152.16.101.0 24 port 0 ether {port0_dst_mac} qinq 0 101
-p 6 route add 152.16.102.0 24 port 0 ether {port0_dst_mac} qinq 0 102
-p 6 route add 152.16.103.0 24 port 0 ether {port0_dst_mac} qinq 0 103
-p 6 route add 152.16.104.0 24 port 0 ether {port0_dst_mac} qinq 0 104
-p 6 route add 152.16.105.0 24 port 0 ether {port0_dst_mac} qinq 0 105
-p 6 route add 152.16.106.0 24 port 0 ether {port0_dst_mac} qinq 0 106
-p 6 route add 152.16.107.0 24 port 0 ether {port0_dst_mac} qinq 0 107
-p 6 route add 152.16.108.0 24 port 0 ether {port0_dst_mac} qinq 0 108
-p 6 route add 152.16.109.0 24 port 0 ether {port0_dst_mac} qinq 0 109
-p 6 route add 152.16.110.0 24 port 0 ether {port0_dst_mac} qinq 0 110
-p 6 route add 152.16.111.0 24 port 0 ether {port0_dst_mac} qinq 0 111
-p 6 route add 152.16.112.0 24 port 0 ether {port0_dst_mac} qinq 0 112
-p 6 route add 152.16.113.0 24 port 0 ether {port0_dst_mac} qinq 0 113
-p 6 route add 152.16.114.0 24 port 0 ether {port0_dst_mac} qinq 0 114
-p 6 route add 152.16.115.0 24 port 0 ether {port0_dst_mac} qinq 0 115
-p 6 route add 152.16.116.0 24 port 0 ether {port0_dst_mac} qinq 0 116
-p 6 route add 152.16.117.0 24 port 0 ether {port0_dst_mac} qinq 0 117
-p 6 route add 152.16.118.0 24 port 0 ether {port0_dst_mac} qinq 0 118
-p 6 route add 152.16.119.0 24 port 0 ether {port0_dst_mac} qinq 0 119
-p 6 route add 152.16.120.0 24 port 0 ether {port0_dst_mac} qinq 0 120
-p 6 route add 152.16.121.0 24 port 0 ether {port0_dst_mac} qinq 0 121
-p 6 route add 152.16.122.0 24 port 0 ether {port0_dst_mac} qinq 0 122
-p 6 route add 152.16.123.0 24 port 0 ether {port0_dst_mac} qinq 0 123
-p 6 route add 152.16.124.0 24 port 0 ether {port0_dst_mac} qinq 0 124
-p 6 route add 152.16.125.0 24 port 0 ether {port0_dst_mac} qinq 0 125
-p 6 route add 152.16.126.0 24 port 0 ether {port0_dst_mac} qinq 0 126
-p 6 route add 152.16.127.0 24 port 0 ether {port0_dst_mac} qinq 0 127
-p 6 route add 152.16.128.0 24 port 0 ether {port0_dst_mac} qinq 0 128
-p 6 route add 152.16.129.0 24 port 0 ether {port0_dst_mac} qinq 0 129
-p 6 route add 152.16.130.0 24 port 0 ether {port0_dst_mac} qinq 0 130
-p 6 route add 152.16.131.0 24 port 0 ether {port0_dst_mac} qinq 0 131
-p 6 route add 152.16.132.0 24 port 0 ether {port0_dst_mac} qinq 0 132
-p 6 route add 152.16.133.0 24 port 0 ether {port0_dst_mac} qinq 0 133
-p 6 route add 152.16.134.0 24 port 0 ether {port0_dst_mac} qinq 0 134
-p 6 route add 152.16.135.0 24 port 0 ether {port0_dst_mac} qinq 0 135
-p 6 route add 152.16.136.0 24 port 0 ether {port0_dst_mac} qinq 0 136
-p 6 route add 152.16.137.0 24 port 0 ether {port0_dst_mac} qinq 0 137
-p 6 route add 152.16.138.0 24 port 0 ether {port0_dst_mac} qinq 0 138
-p 6 route add 152.16.139.0 24 port 0 ether {port0_dst_mac} qinq 0 139
-p 6 route add 152.16.140.0 24 port 0 ether {port0_dst_mac} qinq 0 140
-p 6 route add 152.16.141.0 24 port 0 ether {port0_dst_mac} qinq 0 141
-p 6 route add 152.16.142.0 24 port 0 ether {port0_dst_mac} qinq 0 142
-p 6 route add 152.16.143.0 24 port 0 ether {port0_dst_mac} qinq 0 143
-p 6 route add 152.16.144.0 24 port 0 ether {port0_dst_mac} qinq 0 144
-p 6 route add 152.16.145.0 24 port 0 ether {port0_dst_mac} qinq 0 145
-p 6 route add 152.16.146.0 24 port 0 ether {port0_dst_mac} qinq 0 146
-p 6 route add 152.16.147.0 24 port 0 ether {port0_dst_mac} qinq 0 147
-p 6 route add 152.16.148.0 24 port 0 ether {port0_dst_mac} qinq 0 148
-p 6 route add 152.16.149.0 24 port 0 ether {port0_dst_mac} qinq 0 149
-p 6 route add 152.16.150.0 24 port 0 ether {port0_dst_mac} qinq 0 150
-p 6 route add 152.16.151.0 24 port 0 ether {port0_dst_mac} qinq 0 151
-p 6 route add 152.16.152.0 24 port 0 ether {port0_dst_mac} qinq 0 152
-p 6 route add 152.16.153.0 24 port 0 ether {port0_dst_mac} qinq 0 153
-p 6 route add 152.16.154.0 24 port 0 ether {port0_dst_mac} qinq 0 154
-p 6 route add 152.16.155.0 24 port 0 ether {port0_dst_mac} qinq 0 155
-p 6 route add 152.16.156.0 24 port 0 ether {port0_dst_mac} qinq 0 156
-p 6 route add 152.16.157.0 24 port 0 ether {port0_dst_mac} qinq 0 157
-p 6 route add 152.16.158.0 24 port 0 ether {port0_dst_mac} qinq 0 158
-p 6 route add 152.16.159.0 24 port 0 ether {port0_dst_mac} qinq 0 159
-p 6 route add 152.16.160.0 24 port 0 ether {port0_dst_mac} qinq 0 160
-p 6 route add 152.16.161.0 24 port 0 ether {port0_dst_mac} qinq 0 161
-p 6 route add 152.16.162.0 24 port 0 ether {port0_dst_mac} qinq 0 162
-p 6 route add 152.16.163.0 24 port 0 ether {port0_dst_mac} qinq 0 163
-p 6 route add 152.16.164.0 24 port 0 ether {port0_dst_mac} qinq 0 164
-p 6 route add 152.16.165.0 24 port 0 ether {port0_dst_mac} qinq 0 165
-p 6 route add 152.16.166.0 24 port 0 ether {port0_dst_mac} qinq 0 166
-p 6 route add 152.16.167.0 24 port 0 ether {port0_dst_mac} qinq 0 167
-p 6 route add 152.16.168.0 24 port 0 ether {port0_dst_mac} qinq 0 168
-p 6 route add 152.16.169.0 24 port 0 ether {port0_dst_mac} qinq 0 169
-p 6 route add 152.16.170.0 24 port 0 ether {port0_dst_mac} qinq 0 170
-p 6 route add 152.16.171.0 24 port 0 ether {port0_dst_mac} qinq 0 171
-p 6 route add 152.16.172.0 24 port 0 ether {port0_dst_mac} qinq 0 172
-p 6 route add 152.16.173.0 24 port 0 ether {port0_dst_mac} qinq 0 173
-p 6 route add 152.16.174.0 24 port 0 ether {port0_dst_mac} qinq 0 174
-p 6 route add 152.16.175.0 24 port 0 ether {port0_dst_mac} qinq 0 175
-p 6 route add 152.16.176.0 24 port 0 ether {port0_dst_mac} qinq 0 176
-p 6 route add 152.16.177.0 24 port 0 ether {port0_dst_mac} qinq 0 177
-p 6 route add 152.16.178.0 24 port 0 ether {port0_dst_mac} qinq 0 178
-p 6 route add 152.16.179.0 24 port 0 ether {port0_dst_mac} qinq 0 179
-p 6 route add 152.16.180.0 24 port 0 ether {port0_dst_mac} qinq 0 180
-p 6 route add 152.16.181.0 24 port 0 ether {port0_dst_mac} qinq 0 181
-p 6 route add 152.16.182.0 24 port 0 ether {port0_dst_mac} qinq 0 182
-p 6 route add 152.16.183.0 24 port 0 ether {port0_dst_mac} qinq 0 183
-p 6 route add 152.16.184.0 24 port 0 ether {port0_dst_mac} qinq 0 184
-p 6 route add 152.16.185.0 24 port 0 ether {port0_dst_mac} qinq 0 185
-p 6 route add 152.16.186.0 24 port 0 ether {port0_dst_mac} qinq 0 186
-p 6 route add 152.16.187.0 24 port 0 ether {port0_dst_mac} qinq 0 187
-p 6 route add 152.16.188.0 24 port 0 ether {port0_dst_mac} qinq 0 188
-p 6 route add 152.16.189.0 24 port 0 ether {port0_dst_mac} qinq 0 189
-p 6 route add 152.16.190.0 24 port 0 ether {port0_dst_mac} qinq 0 190
-p 6 route add 152.16.191.0 24 port 0 ether {port0_dst_mac} qinq 0 191
-p 6 route add 152.16.192.0 24 port 0 ether {port0_dst_mac} qinq 0 192
-p 6 route add 152.16.193.0 24 port 0 ether {port0_dst_mac} qinq 0 193
-p 6 route add 152.16.194.0 24 port 0 ether {port0_dst_mac} qinq 0 194
-p 6 route add 152.16.195.0 24 port 0 ether {port0_dst_mac} qinq 0 195
-p 6 route add 152.16.196.0 24 port 0 ether {port0_dst_mac} qinq 0 196
-p 6 route add 152.16.197.0 24 port 0 ether {port0_dst_mac} qinq 0 197
-p 6 route add 152.16.198.0 24 port 0 ether {port0_dst_mac} qinq 0 198
-p 6 route add 152.16.199.0 24 port 0 ether {port0_dst_mac} qinq 0 199
-p 6 route add 152.16.200.0 24 port 0 ether {port0_dst_mac} qinq 0 200
-p 6 route add 152.16.201.0 24 port 0 ether {port0_dst_mac} qinq 0 201
-p 6 route add 152.16.202.0 24 port 0 ether {port0_dst_mac} qinq 0 202
-p 6 route add 152.16.203.0 24 port 0 ether {port0_dst_mac} qinq 0 203
-p 6 route add 152.16.204.0 24 port 0 ether {port0_dst_mac} qinq 0 204
-p 6 route add 152.16.205.0 24 port 0 ether {port0_dst_mac} qinq 0 205
-p 6 route add 152.16.206.0 24 port 0 ether {port0_dst_mac} qinq 0 206
-p 6 route add 152.16.207.0 24 port 0 ether {port0_dst_mac} qinq 0 207
-p 6 route add 152.16.208.0 24 port 0 ether {port0_dst_mac} qinq 0 208
-p 6 route add 152.16.209.0 24 port 0 ether {port0_dst_mac} qinq 0 209
-p 6 route add 152.16.210.0 24 port 0 ether {port0_dst_mac} qinq 0 210
-p 6 route add 152.16.211.0 24 port 0 ether {port0_dst_mac} qinq 0 211
-p 6 route add 152.16.212.0 24 port 0 ether {port0_dst_mac} qinq 0 212
-p 6 route add 152.16.213.0 24 port 0 ether {port0_dst_mac} qinq 0 213
-p 6 route add 152.16.214.0 24 port 0 ether {port0_dst_mac} qinq 0 214
-p 6 route add 152.16.215.0 24 port 0 ether {port0_dst_mac} qinq 0 215
-p 6 route add 152.16.216.0 24 port 0 ether {port0_dst_mac} qinq 0 216
-p 6 route add 152.16.217.0 24 port 0 ether {port0_dst_mac} qinq 0 217
-p 6 route add 152.16.218.0 24 port 0 ether {port0_dst_mac} qinq 0 218
-p 6 route add 152.16.219.0 24 port 0 ether {port0_dst_mac} qinq 0 219
-p 6 route add 152.16.220.0 24 port 0 ether {port0_dst_mac} qinq 0 220
-p 6 route add 152.16.221.0 24 port 0 ether {port0_dst_mac} qinq 0 221
-p 6 route add 152.16.222.0 24 port 0 ether {port0_dst_mac} qinq 0 222
-p 6 route add 152.16.223.0 24 port 0 ether {port0_dst_mac} qinq 0 223
-p 6 route add 152.16.224.0 24 port 0 ether {port0_dst_mac} qinq 0 224
-p 6 route add 152.16.225.0 24 port 0 ether {port0_dst_mac} qinq 0 225
-p 6 route add 152.16.226.0 24 port 0 ether {port0_dst_mac} qinq 0 226
-p 6 route add 152.16.227.0 24 port 0 ether {port0_dst_mac} qinq 0 227
-p 6 route add 152.16.228.0 24 port 0 ether {port0_dst_mac} qinq 0 228
-p 6 route add 152.16.229.0 24 port 0 ether {port0_dst_mac} qinq 0 229
-p 6 route add 152.16.230.0 24 port 0 ether {port0_dst_mac} qinq 0 230
-p 6 route add 152.16.231.0 24 port 0 ether {port0_dst_mac} qinq 0 231
-p 6 route add 152.16.232.0 24 port 0 ether {port0_dst_mac} qinq 0 232
-p 6 route add 152.16.233.0 24 port 0 ether {port0_dst_mac} qinq 0 233
-p 6 route add 152.16.234.0 24 port 0 ether {port0_dst_mac} qinq 0 234
-p 6 route add 152.16.235.0 24 port 0 ether {port0_dst_mac} qinq 0 235
-p 6 route add 152.16.236.0 24 port 0 ether {port0_dst_mac} qinq 0 236
-p 6 route add 152.16.237.0 24 port 0 ether {port0_dst_mac} qinq 0 237
-p 6 route add 152.16.238.0 24 port 0 ether {port0_dst_mac} qinq 0 238
-p 6 route add 152.16.239.0 24 port 0 ether {port0_dst_mac} qinq 0 239
-p 6 route add 152.16.240.0 24 port 0 ether {port0_dst_mac} qinq 0 240
-p 6 route add 152.16.241.0 24 port 0 ether {port0_dst_mac} qinq 0 241
-p 6 route add 152.16.242.0 24 port 0 ether {port0_dst_mac} qinq 0 242
-p 6 route add 152.16.243.0 24 port 0 ether {port0_dst_mac} qinq 0 243
-p 6 route add 152.16.244.0 24 port 0 ether {port0_dst_mac} qinq 0 244
-p 6 route add 152.16.245.0 24 port 0 ether {port0_dst_mac} qinq 0 245
-p 6 route add 152.16.246.0 24 port 0 ether {port0_dst_mac} qinq 0 246
-p 6 route add 152.16.247.0 24 port 0 ether {port0_dst_mac} qinq 0 247
-p 6 route add 152.16.248.0 24 port 0 ether {port0_dst_mac} qinq 0 248
-p 6 route add 152.16.249.0 24 port 0 ether {port0_dst_mac} qinq 0 249
-p 6 route add 152.16.250.0 24 port 0 ether {port0_dst_mac} qinq 0 250
-p 6 route add 152.16.251.0 24 port 0 ether {port0_dst_mac} qinq 0 251
-p 6 route add 152.16.252.0 24 port 0 ether {port0_dst_mac} qinq 0 252
-p 6 route add 152.16.253.0 24 port 0 ether {port0_dst_mac} qinq 0 253
-p 6 route add 152.16.254.0 24 port 0 ether {port0_dst_mac} qinq 0 254
-p 6 route add 152.16.255.0 24 port 0 ether {port0_dst_mac} qinq 0 255
-p 6 route add default 1
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_upstream b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_upstream
new file mode 100644
index 000000000..a571c514f
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_upstream
@@ -0,0 +1,64 @@
+# 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.
+
+[PIPELINE1]
+type = FIREWALL
+core = s{socket}c1
+pktq_in = RXQ0.0
+pktq_out = SWQ0 SINK0
+n_rules = 4096
+pkt_type = qinq_ipv4
+
+[PIPELINE2]
+type = FLOW_CLASSIFICATION
+core = s{socket}c2
+pktq_in = SWQ0
+pktq_out = SWQ1 SINK1
+n_flows = 65536
+key_size = 8
+key_offset = 268
+key_mask = 00000FFF00000FFF
+flowid_offset = 172
+
+[PIPELINE3]
+type = FLOW_ACTIONS
+core = s{socket}c2h
+pktq_in = SWQ1
+pktq_out = SWQ2
+n_flows = 65536
+n_meters_per_flow = 1
+flow_id_offset = 172
+ip_hdr_offset = 278
+color_offset = 176
+
+[PIPELINE4]
+type = FLOW_ACTIONS
+core = s{socket}c1h
+pktq_in = SWQ2
+pktq_out = SWQ3
+n_flows = 65536
+n_meters_per_flow = 4
+flow_id_offset = 172
+ip_hdr_offset = 278
+color_offset = 176
+
+[PIPELINE5]
+type = ROUTING
+core = s0c3
+pktq_in = SWQ3
+pktq_out = TXQ1.0 SINK2
+encap = ethernet_mpls
+mpls_color_mark = yes
+ip_hdr_offset = 278
+color_offset = 176
diff --git a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology-3node.yaml b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology-3node.yaml
new file mode 100644
index 000000000..c56a7e173
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology-3node.yaml
@@ -0,0 +1,53 @@
+# 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.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VPE
+ name: VPE
+ short-name: VPE
+ description: scenario with VPE,L3fwd and VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #tg_vpe_upstream.yaml #VPE VNF
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vpe_vnf.yaml #tg_l3fwd.yaml #tg_trex_tpl.yaml #TREX
+ - member-vnf-index: '3'
+ vnfd-id-ref: tg__2
+ VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #tg_vpe_upstream.yaml #VPE VNF
+
+ vld:
+ - id: private
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1 #TREX
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1 #VNF
+
+ - id: public
+ name: vnf__1 to tg__2 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1 #L3fwd
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__2 #VPE VNF
diff --git a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml
new file mode 100644
index 000000000..610805d3b
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml
@@ -0,0 +1,50 @@
+# 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.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VPE
+ name: VPE
+ short-name: VPE
+ description: scenario with VPE,L3fwd and VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vpe_vnf.yaml
+
+ vld:
+ - id: private
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1 #TREX
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1 #VNF
+
+ - id: public
+ name: vnf__1 to tg__1 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1 #L3fwd
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1 #VPE VNF
diff --git a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixload.yaml b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixload.yaml
new file mode 100644
index 000000000..5505a832b
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixload.yaml
@@ -0,0 +1,50 @@
+# 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.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VPE
+ name: VPE
+ short-name: VPE
+ description: scenario with VPE,L3fwd and VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/tg_ixload.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vpe_vnf.yaml
+
+ vld:
+ - id: private
+ name: tg__1 to vnf__1 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1 #TREX
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1 #VNF
+
+ - id: public
+ name: vnf__1 to tg__1 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1 #L3fwd
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1 #VPE VNF