CORD-2578 Create networks in TOSCA

Change-Id: Ia91d881529810a08746e9a5ed8931dab08013719
diff --git a/mcord-cavium.yml b/mcord-cavium.yml
index 17ce3e7..b89da7e 100644
--- a/mcord-cavium.yml
+++ b/mcord-cavium.yml
@@ -91,6 +91,44 @@
 # service graph gui constraints
 xos_gui_service_graph_constraints: '["mcord", "venb", ["vspgwc", "vspgwu"]]'
 
+# For creating the EPC networks in mcord-cavium-services.yml (copied from EPC blueprint)
+mcord_networks:
+  - name: s11_network
+    subnet: 112.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vspgwc
+  - name: sgi_network
+    subnet: 115.0.0.0/24
+    permit_all_slices: True
+    owner: vspgwu
+    template: private_template
+  - name: spgw_network
+    subnet: 117.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vspgwu
+  - name: flat_network_s1mme
+    subnet: 118.0.0.0/24
+    permit_all_slices: True
+    template: flat_template
+    owner: vmme
+  - name: flat_network_s1u
+    subnet: 119.0.0.0/24
+    permit_all_slices: True
+    template: flat_template
+    owner: vspgwu
+  - name: s6a_network
+    subnet: 120.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vhss
+  - name: db_network
+    subnet: 121.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vhss
+
 profile_library: "mcord"
 
 # VTN network configuration
diff --git a/mcord-ng40.yml b/mcord-ng40.yml
index 5241f81..bab2eb9 100644
--- a/mcord-ng40.yml
+++ b/mcord-ng40.yml
@@ -79,6 +79,29 @@
 # service graph gui constraints
 xos_gui_service_graph_constraints: '["mcord", "venb", ["vspgwc", "vspgwu"]]'
 
+# For creating the EPC networks in mcord-ng40-services.yml (copied from EPC blueprint)
+mcord_networks:
+  - name: s1u_network
+    subnet: 111.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vspgwu
+  - name: s11_network
+    subnet: 112.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vspgwc
+  - name: sgi_network
+    subnet: 115.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vspgwu
+  - name: spgw_network
+    subnet: 117.0.0.0/24
+    permit_all_slices: True
+    template: private_template
+    owner: vspgwu
+
 profile_library: "mcord"
 
 # VTN network configuration
diff --git a/templates/mcord-cavium-services.yml.j2 b/templates/mcord-cavium-services.yml.j2
index 9ac0f8f..f366154 100644
--- a/templates/mcord-cavium-services.yml.j2
+++ b/templates/mcord-cavium-services.yml.j2
@@ -543,3 +543,44 @@
         - provider_service:
             node: service#mcord
             relationship: tosca.relationships.BelongsToOne
+
+# EPC networks
+
+{% for network in mcord_networks %}
+    {{ network['name'] }}:
+      type: tosca.nodes.Network
+      properties:
+          name: {{ network['name'] }}
+          subnet: {{ network['subnet'] }}
+          permit_all_slices: {{ network['permit_all_slices'] }}
+      requirements:
+          - template:
+              node: {{ network['template'] }}
+              relationship: tosca.relationships.BelongsToOne
+          - owner:
+              node: {{ site_name }}_{{ network['owner'] }}
+              relationship: tosca.relationships.BelongsToOne
+
+{% endfor %}
+
+# Network Slices for InternetEmulator, not created by EPC
+
+    internetemulator_slice_management_network:
+      type: tosca.nodes.NetworkSlice
+      requirements:
+        - network:
+            node: management
+            relationship: tosca.relationships.BelongsToOne
+        - slice:
+            node: {{ site_name }}_internetemulator
+            relationship: tosca.relationships.BelongsToOne
+
+    internetemulator_slice_sgi_network:
+      type: tosca.nodes.NetworkSlice
+      requirements:
+        - network:
+            node: sgi_network
+            relationship: tosca.relationships.BelongsToOne
+        - slice:
+            node: {{ site_name }}_internetemulator
+            relationship: tosca.relationships.BelongsToOne
diff --git a/templates/mcord-ng40-services.yml.j2 b/templates/mcord-ng40-services.yml.j2
index 7106eb4..1b0233b 100644
--- a/templates/mcord-ng40-services.yml.j2
+++ b/templates/mcord-ng40-services.yml.j2
@@ -120,8 +120,6 @@
         name: management_hosts
 {% endif %}
 
-# Other networks are created by vEPC service
-
 # ONOS_CORD, fully created in vtn.yaml
     service#ONOS_CORD:
       type: tosca.nodes.ONOSService
@@ -321,3 +319,22 @@
         - provider_service:
             node: service#mcord
             relationship: tosca.relationships.BelongsToOne
+
+# EPC networks
+
+{% for network in mcord_networks %}
+    {{ network['name'] }}:
+      type: tosca.nodes.Network
+      properties:
+          name: {{ network['name'] }}
+          subnet: {{ network['subnet'] }}
+          permit_all_slices: {{ network['permit_all_slices'] }}
+      requirements:
+          - template:
+              node: {{ network['template'] }}
+              relationship: tosca.relationships.BelongsToOne
+          - owner:
+              node: {{ site_name }}_{{ network['owner'] }}
+              relationship: tosca.relationships.BelongsToOne
+
+{% endfor %}
\ No newline at end of file