if (isSubstitutableNodeTemplate(nodeTemplate)) {
         List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
         if (Objects.isNull(requirements)) {
-          return;
+          continue;
         }
 
         requirements.forEach(requirement -> addInternalPortToAbstractNode(requirement,
           toscaServiceModel.getServiceTemplates().get(serviceTemplateName);
       Map<String, NodeTemplate> externalNodeTemplates = entry.getValue();
       if (MapUtils.isEmpty(externalNodeTemplates)) {
-        return;
+        continue;
       }
 
       for (Map.Entry<String, NodeTemplate> externalNodeTemplate : externalNodeTemplates
 
     pd_server_pd02_port:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
         exCP_naming:
           get_input: port_pd02_port_exCP_naming
         vlan_requirements:
           get_input: port_pd02_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd02_port_ip_requirements
         network_role_tag:
           get_input: port_pd02_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd02_port_mac_requirements
         order:
           get_input: port_pd02_port_order
-        network_role:
-          get_input: port_pd02_port_network_role
-        subnetpoolid:
-          get_input: port_pd02_port_subnetpoolid
         network:
           get_input:
           - port_pd02_port_network
 
     pd_server_pd01_port:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
         exCP_naming:
           get_input: port_pd01_port_exCP_naming
         vlan_requirements:
           get_input: port_pd01_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd01_port_ip_requirements
         network_role_tag:
           get_input: port_pd01_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd01_port_mac_requirements
         order:
           get_input: port_pd01_port_order
-        network_role:
-          get_input: port_pd01_port_network_role
-        subnetpoolid:
-          get_input: port_pd01_port_subnetpoolid
         network:
           get_input:
           - port_pd01_port_network
 
     pd_server_pd01_port:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
         exCP_naming:
           get_input: port_pd01_port_exCP_naming
         vlan_requirements:
           get_input: port_pd01_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd01_port_ip_requirements
         network_role_tag:
           get_input: port_pd01_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd01_port_mac_requirements
         order:
           get_input: port_pd01_port_order
-        network_role:
-          get_input: port_pd01_port_network_role
-        subnetpoolid:
-          get_input: port_pd01_port_subnetpoolid
         network:
           get_input:
           - port_pd01_port_network
 
     pd_server_pd02_port:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
         exCP_naming:
           get_input: port_pd02_port_exCP_naming
         vlan_requirements:
           get_input: port_pd02_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd02_port_ip_requirements
         network_role_tag:
           get_input: port_pd02_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd02_port_mac_requirements
         order:
           get_input: port_pd02_port_order
-        network_role:
-          get_input: port_pd02_port_network_role
-        subnetpoolid:
-          get_input: port_pd02_port_subnetpoolid
         network:
           get_input:
           - port_pd02_port_network
 
     file: openecomp-heat/_index.yml
 - GlobalSubstitutionTypes:
     file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
 node_types:
   org.openecomp.resource.vfc.nodes.heat.pd_server:
     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
           - compute_pd_server_user_data_format
           - index_value
     pd_server_pd02_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      type: org.openecomp.resource.cp.v2.extNeutronCP
       properties:
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
         exCP_naming:
           get_input: port_pd02_port_exCP_naming
         vlan_requirements:
           get_input: port_pd02_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd02_port_ip_requirements
         network_role_tag:
           get_input: port_pd02_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd02_port_mac_requirements
         order:
           get_input: port_pd02_port_order
-        network_role:
-          get_input: port_pd02_port_network_role
-        subnetpoolid:
-          get_input: port_pd02_port_subnetpoolid
         network:
           get_input:
           - port_pd02_port_network
           capability: tosca.capabilities.network.Bindable
           node: pd_server
           relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+              pps_capacity: ''
   substitution_mappings:
     node_type: org.openecomp.resource.abstract.nodes.pd_server
     capabilities:
       network.incoming.bytes_pd_server_pd02_port:
       - pd_server_pd02_port
       - network.incoming.bytes
+      port_mirroring_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - port_mirroring
     requirements:
       local_storage_pd_server:
       - pd_server
 
     file: openecomp-heat/_index.yml
 - GlobalSubstitutionTypes:
     file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
 node_types:
   org.openecomp.resource.vfc.nodes.heat.pd_server:
     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
           - compute_pd_server_user_data_format
           - index_value
     pd_server_pd01_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      type: org.openecomp.resource.cp.v2.extNeutronCP
       properties:
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
         exCP_naming:
           get_input: port_pd01_port_exCP_naming
         vlan_requirements:
           get_input: port_pd01_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd01_port_ip_requirements
         network_role_tag:
           get_input: port_pd01_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd01_port_mac_requirements
         order:
           get_input: port_pd01_port_order
-        network_role:
-          get_input: port_pd01_port_network_role
-        subnetpoolid:
-          get_input: port_pd01_port_subnetpoolid
         network:
           get_input:
           - port_pd01_port_network
           capability: tosca.capabilities.network.Bindable
           node: pd_server
           relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd01_port_network_role
+              pps_capacity: ''
   substitution_mappings:
     node_type: org.openecomp.resource.abstract.nodes.pd_server_1
     capabilities:
       disk.device.iops_pd_server:
       - pd_server
       - disk.device.iops
+      port_mirroring_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - port_mirroring
     requirements:
       local_storage_pd_server:
       - pd_server
 
     file: openecomp-heat/_index.yml
 - GlobalSubstitutionTypes:
     file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
 node_types:
   org.openecomp.resource.vfc.nodes.heat.pd_server:
     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
           - compute_pd_server_user_data_format
           - index_value
     pd_server_pd01_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      type: org.openecomp.resource.cp.v2.extNeutronCP
       properties:
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
         exCP_naming:
           get_input: port_pd01_port_exCP_naming
         vlan_requirements:
           get_input: port_pd01_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd01_port_ip_requirements
         network_role_tag:
           get_input: port_pd01_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd01_port_mac_requirements
         order:
           get_input: port_pd01_port_order
-        network_role:
-          get_input: port_pd01_port_network_role
-        subnetpoolid:
-          get_input: port_pd01_port_subnetpoolid
         network:
           get_input:
           - port_pd01_port_network
           capability: tosca.capabilities.network.Bindable
           node: pd_server
           relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd01_port_network_role
+              pps_capacity: ''
   substitution_mappings:
     node_type: org.openecomp.resource.abstract.nodes.pd_server_3
     capabilities:
       disk.device.iops_pd_server:
       - pd_server
       - disk.device.iops
+      port_mirroring_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - port_mirroring
     requirements:
       local_storage_pd_server:
       - pd_server
 
     file: openecomp-heat/_index.yml
 - GlobalSubstitutionTypes:
     file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
 node_types:
   org.openecomp.resource.vfc.nodes.heat.pd_server:
     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
           - compute_pd_server_user_data_format
           - index_value
     pd_server_ps02_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      type: org.openecomp.resource.cp.v2.extNeutronCP
       properties:
         exCP_naming:
           get_input: port_ps02_port_exCP_naming
           capability: tosca.capabilities.network.Bindable
           node: pd_server
           relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_ps02_port_network_role
+              pps_capacity: ''
   substitution_mappings:
     node_type: org.openecomp.resource.abstract.nodes.pd_server_4
     capabilities:
       disk.device.iops_pd_server:
       - pd_server
       - disk.device.iops
+      port_mirroring_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - port_mirroring
     requirements:
       local_storage_pd_server:
       - pd_server
 
     file: openecomp-heat/_index.yml
 - GlobalSubstitutionTypes:
     file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
 node_types:
   org.openecomp.resource.vfc.nodes.heat.pd_server:
     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
           - compute_pd_server_user_data_format
           - index_value
     pd_server_pd02_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      type: org.openecomp.resource.cp.v2.extNeutronCP
       properties:
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
         exCP_naming:
           get_input: port_pd02_port_exCP_naming
         vlan_requirements:
           get_input: port_pd02_port_vlan_requirements
-        ip_requirements:
-          get_input: port_pd02_port_ip_requirements
         network_role_tag:
           get_input: port_pd02_port_network_role_tag
-        mac_requirements:
-          get_input: port_pd02_port_mac_requirements
         order:
           get_input: port_pd02_port_order
-        network_role:
-          get_input: port_pd02_port_network_role
-        subnetpoolid:
-          get_input: port_pd02_port_subnetpoolid
         network:
           get_input:
           - port_pd02_port_network
           capability: tosca.capabilities.network.Bindable
           node: pd_server
           relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+              pps_capacity: ''
   substitution_mappings:
     node_type: org.openecomp.resource.abstract.nodes.pd_server_6
     capabilities:
       network.incoming.bytes_pd_server_pd02_port:
       - pd_server_pd02_port
       - network.incoming.bytes
+      port_mirroring_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - port_mirroring
     requirements:
       local_storage_pd_server:
       - pd_server
 
     file: openecomp-heat/_index.yml
 - GlobalSubstitutionTypes:
     file: GlobalSubstitutionTypesServiceTemplate.yaml
-- openecomp_index:
-    file: openecomp/_index.yml
 node_types:
   org.openecomp.resource.vfc.nodes.heat.compute:
     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
           - compute_compute_user_data_format
           - index_value
     compute_compute_port:
-      type: org.openecomp.resource.cp.v2.extNeutronCP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
         exCP_naming:
           get_input: port_compute_port_exCP_naming
           capability: tosca.capabilities.network.Bindable
           node: compute
           relationship: tosca.relationships.network.BindsTo
-      capabilities:
-        port_mirroring:
-          properties:
-            connection_point:
-              nf_type: ''
-              nfc_type: compute
-              network_role:
-                get_input: port_compute_port_network_role
-              pps_capacity: ''
   substitution_mappings:
     node_type: org.openecomp.resource.abstract.nodes.compute
     capabilities:
       disk.device.allocation_compute:
       - compute
       - disk.device.allocation
-      port_mirroring_compute_compute_port:
-      - compute_compute_port
-      - port_mirroring
     requirements:
       local_storage_compute:
       - compute