From be6e7ed6f053a4a697af939fa0ddcd5dce54c0c8 Mon Sep 17 00:00:00 2001
From: Martin Banszel <martinx.banszel@intel.com>
Date: Wed, 19 Jul 2017 19:35:02 +0000
Subject: NSB: fix port topology

Add a new PortPair class to resolve the
topology into list of public and private ports.

Before we were calculating public/private in multiple
locations and using different conventions.

In addition for all the DPDK test we need to use the DPDK
port number and no rely on interface ordering or interface naming
conventions.

We used to use  xe0 -> 0, xe1 -> 1, etc.  This is not the DPDK port
number.

Use the new dpdknicbind_helper class to parse the output of
dpdk-devbind.py to find the actual DPDK port number at runtime.

We then use this DPDK port number to correctly calculate the
port_mask_hex.

The port mask maps the DPDK port num (PMD ID) to the LINK ID
used in the pipeline config

We also need to make sure we only use the interfaces matched to the
topology and not use all the interfaces, because in some cases we will
have unused interfaces.  In particular TRex always requires an even
number of interfaces, so for single port TRex tests we have to create
the second port and not use it.

Thus we had to modify the traffic generator stats code to only dump
stats for used ports and no unused ports.

Ixia was using interface ordering to map to Ixia ports, instead we use
the dpdk_port_num which must be hardcoded for Ixia.

Renamed traffic_profile.execute to traffic_profile.execute_traffic so
we can trace the code easier.

We pass the port used by the traffic profile to generate_samples so we
don't get stats for unused ports.

Fixed up vPE config creation and bring up issues.

Fixed up CGNAPT and UDP_Replay to work correctly.

Tested with 4-port scale-out

Change-Id: I2e4f328bff2904108081e92a4bf712333fa73869
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
---
 .../nsut/acl/acl-tg-topology-3node.yaml            | 11 +++-
 ...pv4_1rule_1flow_64B_trex_corelated_traffic.yaml |  2 +-
 .../nsut/cgnapt/cgnapt-vnf-topology-3node.yaml     | 11 +++-
 ...2544_ipv4_1flow_64B_trex_corelated_traffic.yaml |  6 +--
 .../nsut/ping/tc_ping_heat_context.yaml            |  2 +-
 ...pv4_1rule_1flow_64B_trex_corelated_traffic.yaml |  2 +-
 .../nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml    |  2 +-
 .../vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml |  2 +-
 .../vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml   |  2 +-
 .../tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml  |  2 +-
 ...2544_ipv4_1flow_64B_trex_corelated_traffic.yaml |  4 +-
 .../vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml  |  2 +-
 .../traffic_profiles/ipv4_throughput.yaml          | 16 +++---
 .../traffic_profiles/ipv4_throughput_cgnapt.yaml   | 16 +++---
 .../traffic_profiles/ipv4_throughput_vpe.yaml      | 24 ++++++---
 .../traffic_profiles/ixia_ipv4_latency.yaml        | 16 +++---
 .../traffic_profiles/ixia_ipv4_latency_vpe.yaml    | 16 +++---
 samples/vnf_samples/vnf_descriptors/acl_vnf.yaml   | 36 -------------
 .../vnf_samples/vnf_descriptors/cgnapt_vnf.yaml    | 32 ------------
 .../vnf_samples/vnf_descriptors/prox_vnf-1.yaml    | 16 ------
 .../vnf_samples/vnf_descriptors/prox_vnf-2.yaml    | 31 -----------
 .../vnf_samples/vnf_descriptors/prox_vnf-4.yaml    | 61 ----------------------
 .../vnf_descriptors/tg_rfc2544_tpl.yaml            | 31 -----------
 .../vnf_descriptors/udp_replay_vnf.yaml            | 32 ------------
 samples/vnf_samples/vnf_descriptors/vfw_vnf.yaml   | 36 -------------
 25 files changed, 81 insertions(+), 330 deletions(-)

(limited to 'samples')

diff --git a/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml b/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml
index f8c01daff..36cb2e88b 100644
--- a/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml
+++ b/samples/vnf_samples/nsut/acl/acl-tg-topology-3node.yaml
@@ -40,7 +40,16 @@ nsd:nsd-catalog:
             -   member-vnf-index-ref: '2'
                 vnfd-connection-point-ref: xe0
                 vnfd-id-ref: vnf__1
-
+        -   id: private_2
+            name: tg__1 to vnf__1 link 2
+            type: ELAN
+            vnfd-connection-point-ref:
+            -   member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: xe1
+                vnfd-id-ref: tg__1
+            -   member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: xe1
+                vnfd-id-ref: tg__1
         -   id: public_1
             name: vnf__1 to tg__2 link 2
             type: ELAN
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
index aea127a08..1261aa0c8 100644
--- 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
@@ -33,7 +33,7 @@ scenarios:
     traffic_type: 4
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
-      corelated_traffic: true
+      correlated_traffic: true
     vnf__1:
       rules: acl_1rule.yaml
       vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-vnf-topology-3node.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-vnf-topology-3node.yaml
index 24407dc88..7b681b52a 100644
--- a/samples/vnf_samples/nsut/cgnapt/cgnapt-vnf-topology-3node.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-vnf-topology-3node.yaml
@@ -40,7 +40,16 @@ nsd:nsd-catalog:
             -   member-vnf-index-ref: '2'
                 vnfd-connection-point-ref: xe0
                 vnfd-id-ref: vnf__1
-
+        -   id: private_2
+            name: tg__1 to vnf__1 link 2
+            type: ELAN
+            vnfd-connection-point-ref:
+            -   member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: xe1
+                vnfd-id-ref: tg__1
+            -   member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: xe1
+                vnfd-id-ref: tg__1
         -   id: public_1
             name: vnf__1 to tg__2 link 2
             type: ELAN
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
index 38549f0a1..f110ab233 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
@@ -28,19 +28,19 @@ scenarios:
       public: {64B: 100}
     flow:
       src_ip: [{'tg__1': 'xe0'}]
-      dst_ip: [{'tg__2': 'xe0'}
+      dst_ip: [{'tg__2': 'xe0'}]
       count: 1
     traffic_type: 4
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
-      corelated_traffic: true
+      correlated_traffic: true
     vnf__1:
       vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
       napt: 'dynamic'
       nfvi_enable: True
   runner:
     type: Iteration
-    iterations: 10
+    iterations: 14
     interval: 35
 context:
   type: Node
diff --git a/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml b/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
index 394523ffa..d6f096b55 100644
--- a/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
+++ b/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
@@ -31,7 +31,7 @@ scenarios:
 
 context:
   name: yardstick
-  image: yardstick-image
+  image: yardstick-samplevnfs
   flavor: yardstick-flavor
   user: ubuntu
 
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
index cadc4289c..6a55bfb77 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
@@ -33,7 +33,7 @@ scenarios:
     traffic_type: 4
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
-      corelated_traffic: true
+      correlated_traffic: true
     vnf__1:
       rules: acl_1rule.yaml
       vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
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
index 4dd6d8148..a40179390 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
@@ -31,8 +31,8 @@ scenarios:
       count: 1
     traffic_type: 4
     vnf__1:
-      cfg: vpe_config
       nfvi_enable: True
+      vnf_config: vpe_config
   runner:
     type: Duration
     duration: 4
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 8029ba3de..bff9743e0 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
@@ -33,8 +33,8 @@ scenarios:
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
     vnf__1:
-      cfg: vpe_config
       nfvi_enable: True
+      vnf_config: vpe_config
   runner:
     type: Iteration
     iterations: 10
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 d393aa763..50874ac5c 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
@@ -33,8 +33,8 @@ scenarios:
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
     vnf__1:
-      cfg: vpe_config
       nfvi_enable: True
+      vnf_config: vpe_config
   runner:
     type: Iteration
     iterations: 10
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
index f33d86911..394d07861 100644
--- 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
@@ -33,8 +33,8 @@ scenarios:
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
     vnf__1:
-      cfg: vpe_config
       nfvi_enable: True
+      vnf_config: vpe_config
   runner:
     type: Iteration
     iterations: 10
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
index 91099fd95..972d58bdf 100644
--- 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
@@ -33,10 +33,10 @@ scenarios:
     traffic_type: 4
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
-      corelated_traffic: true
+      correlated_traffic: true
     vnf__1:
-      cfg: vpe_config
       nfvi_enable: True
+      vnf_config: vpe_config
   runner:
     type: Iteration
     iterations: 10
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 e237dca94..092f068c9 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
@@ -34,8 +34,8 @@ scenarios:
     rfc2544:
       allowed_drop_rate: 0.0001 - 0.0001
     vnf__1:
-      cfg: vpe_config
       nfvi_enable: True
+      vnf_config: vpe_config
   runner:
     type: Iteration
     iterations: 10
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml
index 98624b108..6e0c693a5 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml
@@ -61,14 +61,14 @@ private_1:
 
         outer_l3v4:
             proto: "udp"
-            srcip4: "{{get(flow, 'flow.src_ip0', '1.1.1.1-1.1.255.255') }}"
-            dstip4: "{{get(flow, 'flow.dst_ip0', '90.90.1.1-90.90.255.255') }}"
+            srcip4: "{{get(flow, 'flow.src_ip_0', '1.1.1.1-1.1.255.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_0', '90.90.1.1-90.90.255.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 0
         outer_l4:
-            srcport: "{{get(flow, 'flow.src_port0', '1234-4321') }}"
-            dstport: "{{get(flow, 'flow.dst_port0', '2001-4001') }}"
+            srcport: "{{get(flow, 'flow.src_port_0', '1234-4321') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '2001-4001') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
 public_1:
       ipv4:
@@ -86,12 +86,12 @@ public_1:
 
         outer_l3v4:
             proto: "udp"
-            srcip4: "{{get(flow, 'flow.dst_ip0', '90.90.1.1-90.90.255.255') }}"
-            dstip4: "{{get(flow, 'flow.src_ip0', '1.1.1.1-1.1.255.255') }}"
+            srcip4: "{{get(flow, 'flow.dst_ip_0', '90.90.1.1-90.90.255.255') }}"
+            dstip4: "{{get(flow, 'flow.src_ip_0', '1.1.1.1-1.1.255.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 0
         outer_l4:
-            srcport: "{{get(flow, 'flow.dst_port0', '1234-4321') }}"
-            dstport: "{{get(flow, 'flow.src_port0', '2001-4001') }}"
+            srcport: "{{get(flow, 'flow.dst_port_0', '1234-4321') }}"
+            dstport: "{{get(flow, 'flow.src_port_0', '2001-4001') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml
index 0758cf3a8..df04a93e5 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml
@@ -61,14 +61,14 @@ private_1:
 
         outer_l3v4:
             proto: "udp"
-            srcip4: "{{get(flow, 'flow.src_ip0', '10.0.2.1-10.0.2.255') }}"
-            dstip4: "{{get(flow, 'flow.dst_ip0', '10.0.3.1-10.0.3.255') }}"
+            srcip4: "{{get(flow, 'flow.src_ip_0', '10.0.2.1-10.0.2.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_0', '10.0.3.1-10.0.3.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 0
         outer_l4:
-            srcport: "{{get(flow, 'flow.src_port0', '1234-4321') }}"
-            dstport: "{{get(flow, 'flow.dst_port0', '2001-4001') }}"
+            srcport: "{{get(flow, 'flow.src_port_0', '1234-4321') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '2001-4001') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
 public_1:
       ipv4:
@@ -86,12 +86,12 @@ public_1:
 
         outer_l3v4:
             proto: "udp"
-            srcip4: "{{get(flow, 'flow.dst_ip0', '10.0.3.1-10.0.3.255') }}"
-            dstip4: "{{get(flow, 'flow.public_ip0', '10.0.2.1-10.0.2.255') }}"
+            srcip4: "{{get(flow, 'flow.dst_ip_0', '10.0.3.1-10.0.3.255') }}"
+            dstip4: "{{get(flow, 'flow.public_ip_0', '10.0.2.1-10.0.2.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 0
         outer_l4:
-            srcport: "{{get(flow, 'flow.dst_port0', '1234-4321') }}"
-            dstport: "{{get(flow, 'flow.src_port0', '2001-4001') }}"
+            srcport: "{{get(flow, 'flow.dst_port_0', '1234-4321') }}"
+            dstport: "{{get(flow, 'flow.src_port_0', '2001-4001') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
index 233457eba..da9bc40da 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
@@ -71,14 +71,16 @@ private_1:
 
         outer_l3v4:
             proto: "tcp"
-            srcip4: "{{get(flow, 'flow.src_ip0', '192.168.0.0-192.168.255.255') }}"
-            dstip4: "{{get(flow, 'flow.dst_ip0', '192.16.0.0-192.16.0.31') }}"
+            srcip4: "{{get(flow, 'flow.src_ip_0', '192.168.0.0-192.168.255.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_0', '192.16.0.0-192.16.0.31') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 32
 
         outer_l4:
-            srcport: "{{get(flow, 'flow.src_port0', '0') }}"
-            dstport: "{{get(flow, 'flow.dst_port0', '0') }}"
+            srcport: "{{get(flow, 'flow.src_port_0', '0') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '0') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
 public_1:
       ipv4:
         outer_l2:
@@ -93,14 +95,16 @@ public_1:
 
         outer_l3v4:
             proto: "tcp"
-            srcip4: "{{get(flow, 'flow.dst_ip0', '192.16.0.0-192.16.0.31') }}"
-            dstip4: "{{get(flow, 'flow.src_ip0', '192.168.0.0-192.168.255.255') }}"
+            srcip4: "{{get(flow, 'flow.dst_ip_0', '192.16.0.0-192.16.0.31') }}"
+            dstip4: "{{get(flow, 'flow.src_ip_0', '192.168.0.0-192.168.255.255') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 32
 
         outer_l4:
-            srcport: "{{get(flow, 'flow.dst_port0', '0') }}"
-            dstport: "{{get(flow, 'flow.src_port0', '0') }}"
+            srcport: "{{get(flow, 'flow.dst_port_0', '0') }}"
+            dstport: "{{get(flow, 'flow.src_port_0', '0') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
 private_2:
       ipv4:
         outer_l2:
@@ -129,12 +133,14 @@ private_2:
             proto: "tcp"
             srcip4: "{{get(flow, 'flow.src_ip1', '192.168.0.0-192.168.255.255') }}"
             dstip4: "{{get(flow, 'flow.dst_ip1', '192.16.0.0-192.16.0.31') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 32
 
         outer_l4:
             srcport: "{{get(flow, 'flow.src_port1', '0') }}"
             dstport: "{{get(flow, 'flow.dst_port1', '0') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
 public_2:
       ipv4:
         outer_l2:
@@ -151,9 +157,11 @@ public_2:
             proto: "tcp"
             srcip4: "{{get(flow, 'flow.dst_ip1', '192.16.0.0-192.16.0.31') }}"
             dstip4: "{{get(flow, 'flow.src_ip1', '192.168.0.0-192.168.255.255') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 32
 
         outer_l4:
             srcport: "{{get(flow, 'flow.dst_port1', '0') }}"
             dstport: "{{get(flow, 'flow.src_port1', '0') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml
index c53b4fad4..a008eb353 100644
--- a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml
@@ -47,14 +47,14 @@ private_1:
 
         outer_l3v4:
             proto: "udp"
-            srcip4: "{{get(flow, 'flow.src_ip0', '1.1.1.1-1.15.255.255') }}"
-            dstip4: "{{get(flow, 'flow.dst_ip0', '90.90.1.1-90.105.255.255') }}"
+            srcip4: "{{get(flow, 'flow.src_ip_0', '1.1.1.1-1.15.255.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_0', '90.90.1.1-90.105.255.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 0
         outer_l4:
-            srcport: "{{get(flow, 'flow.src_port0', '1234') }}"
-            dstport: "{{get(flow, 'flow.dst_port0', '2001') }}"
+            srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
 public_1:
       ipv4:
@@ -72,14 +72,14 @@ public_1:
 
         outer_l3v4:
             proto: "udp"
-            srcip4: "{{get(flow, 'flow.dst_ip0', '1.1.1.1-1.15.255.255') }}"
-            dstip4: "{{get(flow, 'flow.src_ip0', '90.90.1.1-90.105.255.255') }}"
+            srcip4: "{{get(flow, 'flow.dst_ip_0', '1.1.1.1-1.15.255.255') }}"
+            dstip4: "{{get(flow, 'flow.src_ip_0', '90.90.1.1-90.105.255.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 0
         outer_l4:
-            srcport: "{{get(flow, 'flow.src_port0', '1234') }}"
-            dstport: "{{get(flow, 'flow.dst_port0', '2001') }}"
+            srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
 private_2:
       ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml
index 7468dbdb1..7ca2f1043 100644
--- a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml
@@ -68,15 +68,15 @@ private_1:
 
         outer_l3v4:
             proto: "tcp"
-            srcip4: "{{get(flow, 'flow.src_ip0', '192.168.0.0-192.168.255.255') }}"
-            dstip4: "{{get(flow, 'flow.dst_ip0', '192.16.0.0-192.16.0.31') }}"
+            srcip4: "{{get(flow, 'flow.src_ip_0', '192.168.0.0-192.168.255.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_0', '192.16.0.0-192.16.0.31') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 32
 
         outer_l4:
-            srcport: "{{get(flow, 'flow.src_port0', '0') }}"
-            dstport: "{{get(flow, 'flow.dst_port0', '0') }}"
+            srcport: "{{get(flow, 'flow.src_port_0', '0') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '0') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
 public_1:
       ipv4:
@@ -92,15 +92,15 @@ public_1:
 
         outer_l3v4:
             proto: "tcp"
-            srcip4: "{{get(flow, 'flow.dst_ip0', '192.16.0.0-192.16.0.31') }}"
-            dstip4: "{{get(flow, 'flow.src_ip0', '192.168.0.0-192.168.255.255') }}"
+            srcip4: "{{get(flow, 'flow.dst_ip_0', '192.16.0.0-192.16.0.31') }}"
+            dstip4: "{{get(flow, 'flow.src_ip_0', '192.168.0.0-192.168.255.255') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
             ttl: 32
             dscp: 32
 
         outer_l4:
-            srcport: "{{get(flow, 'flow.dst_port0', '0') }}"
-            dstport: "{{get(flow, 'flow.src_port0', '0') }}"
+            srcport: "{{get(flow, 'flow.dst_port_0', '0') }}"
+            dstport: "{{get(flow, 'flow.src_port_0', '0') }}"
             count: "{{get(flow, 'flow.count', '1') }}"
 private_2:
       ipv4:
diff --git a/samples/vnf_samples/vnf_descriptors/acl_vnf.yaml b/samples/vnf_samples/vnf_descriptors/acl_vnf.yaml
index b38e6b8ae..62188b84a 100644
--- a/samples/vnf_samples/vnf_descriptors/acl_vnf.yaml
+++ b/samples/vnf_samples/vnf_descriptors/acl_vnf.yaml
@@ -32,11 +32,6 @@ vnfd:vnfd-catalog:
             {% if key_filename is defined %}
             key_filename: '{{key_filename}}'  # Value filled by vnfdgen
             {% endif %}
-        connection-point:
-        -   name: xe0
-            type: VPORT
-        -   name: xe1
-            type: VPORT
         vdu:
         -   id: aclvnf-baremetal
             name: aclvnf-baremetal
@@ -44,37 +39,6 @@ vnfd:vnfd-catalog:
             vm-flavor:
                 vcpu-count: '4'
                 memory-mb: '4096'
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe0.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe1.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe1.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
             routing_table: {{ routing_table }}
             nd_route_tbl: {{ nd_route_tbl }}
         benchmark:
diff --git a/samples/vnf_samples/vnf_descriptors/cgnapt_vnf.yaml b/samples/vnf_samples/vnf_descriptors/cgnapt_vnf.yaml
index b42fb4d4e..da774cce5 100644
--- a/samples/vnf_samples/vnf_descriptors/cgnapt_vnf.yaml
+++ b/samples/vnf_samples/vnf_descriptors/cgnapt_vnf.yaml
@@ -34,42 +34,10 @@ vnfd:vnfd-catalog:
             {% if key_filename is defined %}
             key_filename: '{{key_filename}}'  # Value filled by vnfdgen
             {% endif %}
-        connection-point:
-        -   name: xe0
-            type: VPORT
-        -   name: xe1
-            type: VPORT
         vdu:
         -   id: cgnaptvnf-baremetal
             name: cgnaptvnf-baremetal
             description: CGNAPT approximation using DPDK
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe1.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
             routing_table: {{ routing_table }}
             nd_route_tbl: {{ nd_route_tbl }}
         benchmark:
diff --git a/samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml b/samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml
index 76eaad8e1..3b3739fc5 100644
--- a/samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml
+++ b/samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml
@@ -42,22 +42,6 @@ vnfd:vnfd-catalog:
             vm-flavor:
                 vcpu-count: '4'
                 memory-mb: '4096'
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe0.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
             routing_table: {{ routing_table }}
             nd_route_tbl: {{ nd_route_tbl }}
         benchmark:
diff --git a/samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml b/samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml
index b02690e74..75c16ba5a 100644
--- a/samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml
+++ b/samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml
@@ -44,37 +44,6 @@ vnfd:vnfd-catalog:
             vm-flavor:
                 vcpu-count: '4'
                 memory-mb: '4096'
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe0.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe1.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe1.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
             routing_table: {{ routing_table }}
             nd_route_tbl: {{ nd_route_tbl }}
         benchmark:
diff --git a/samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml b/samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml
index 0f8aa55c2..75c16ba5a 100644
--- a/samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml
+++ b/samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml
@@ -44,67 +44,6 @@ vnfd:vnfd-catalog:
             vm-flavor:
                 vcpu-count: '4'
                 memory-mb: '4096'
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe0.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe1.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe1.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
-            -   name: xe2
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe2.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe2.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe2.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe2.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe2.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe2.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe2.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe2.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe2.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe2
-            -   name: xe3
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe3.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe3.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe3.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe3.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe3.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe3.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe3.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe3.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe3.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe3
             routing_table: {{ routing_table }}
             nd_route_tbl: {{ nd_route_tbl }}
         benchmark:
diff --git a/samples/vnf_samples/vnf_descriptors/tg_rfc2544_tpl.yaml b/samples/vnf_samples/vnf_descriptors/tg_rfc2544_tpl.yaml
index dee3dd760..d94ddfe4c 100644
--- a/samples/vnf_samples/vnf_descriptors/tg_rfc2544_tpl.yaml
+++ b/samples/vnf_samples/vnf_descriptors/tg_rfc2544_tpl.yaml
@@ -32,41 +32,10 @@ vnfd:vnfd-catalog:
             {% if key_filename is defined %}
             key_filename: '{{key_filename}}'  # Value filled by vnfdgen
             {% endif %}
-        connection-point:
-        -   name: xe0
-            type: VPORT
-        -   name: xe1
-            type: VPORT
         vdu:
         -   id: trexgen-baremetal
             name: trexgen-baremetal
             description: TRex stateless traffic verifier
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    local_iface_name: '{{ interfaces.xe0.local_iface_name }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    local_iface_name: '{{ interfaces.xe1.local_iface_name }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
 
         benchmark:
             kpi:
diff --git a/samples/vnf_samples/vnf_descriptors/udp_replay_vnf.yaml b/samples/vnf_samples/vnf_descriptors/udp_replay_vnf.yaml
index 33c07a6f4..659807d88 100644
--- a/samples/vnf_samples/vnf_descriptors/udp_replay_vnf.yaml
+++ b/samples/vnf_samples/vnf_descriptors/udp_replay_vnf.yaml
@@ -35,42 +35,10 @@ vnfd:vnfd-catalog:
             {% if key_filename is defined %}
             key_filename: '{{key_filename}}'  # Value filled by vnfdgen
             {% endif %}
-        connection-point:
-        -   name: xe0
-            type: VPORT
-        -   name: xe1
-            type: VPORT
         vdu:
         -   id: udp_replayvnf-baremetal
             name: udp_replayvnf-baremetal
             description: UdpReplayVnf approximation using DPDK
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe1.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
         benchmark:
             kpi:
                 - packets_in
diff --git a/samples/vnf_samples/vnf_descriptors/vfw_vnf.yaml b/samples/vnf_samples/vnf_descriptors/vfw_vnf.yaml
index 1c272e66d..035c7336e 100644
--- a/samples/vnf_samples/vnf_descriptors/vfw_vnf.yaml
+++ b/samples/vnf_samples/vnf_descriptors/vfw_vnf.yaml
@@ -32,11 +32,6 @@ vnfd:vnfd-catalog:
             {% if key_filename is defined %}
             key_filename: '{{key_filename}}'  # Value filled by vnfdgen
             {% endif %}
-        connection-point:
-        -   name: xe0
-            type: VPORT
-        -   name: xe1
-            type: VPORT
         vdu:
         -   id: aclvnf-baremetal
             name: aclvnf-baremetal
@@ -44,37 +39,6 @@ vnfd:vnfd-catalog:
             vm-flavor:
                 vcpu-count: '4'
                 memory-mb: '4096'
-            external-interface:
-            -   name: xe0
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe0.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe0.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe0
-            -   name: xe1
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
-                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
-                    dpdk_port_num:   '{{ interfaces.xe1.dpdk_port_num }}' # Value filled by vnfdgen
-                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
-                    driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
-                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
-                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
-                    netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
-                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
-                    vld_id:  '{{ interfaces.xe1.vld_id }}' # Value filled by vnfdgen
-                    bandwidth: 10 Gbps
-                vnfd-connection-point-ref: xe1
             routing_table: {{ routing_table }}
             nd_route_tbl: {{ nd_route_tbl }}
         benchmark:
-- 
cgit