Add COMAC edge cluster fabric tosca config

Change-Id: I450686fa3f7759f3bbbc35f0f377876f67da4ccb
diff --git a/tosca-configs/comac/edge-fabric-accelleran.yaml b/tosca-configs/comac/edge-fabric-accelleran.yaml
new file mode 100644
index 0000000..064be27
--- /dev/null
+++ b/tosca-configs/comac/edge-fabric-accelleran.yaml
@@ -0,0 +1,234 @@
+# Copyright 2019-present Open Networking Foundation
+#
+# 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.
+
+# curl -H "xos-username: admin@opencord.org" -H "xos-password: letmein" -X POST --data-binary @edge-fabric-accelleran.yaml http://central1:30007/run
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/switch.yaml
+  - custom_types/switchport.yaml
+  - custom_types/portinterface.yaml
+  - custom_types/fabricipaddress.yaml
+  - custom_types/site.yaml
+  - custom_types/node.yaml
+  - custom_types/vrouterservice.yaml
+  - custom_types/vrouterserviceinstance.yaml
+
+description: Configures the ONF COMAC POD with Cavium
+
+topology_template:
+  node_templates:
+
+    # Site deployment
+    mySite:
+      type: tosca.nodes.Site
+      properties:
+        name: mysite
+        login_base: opencord
+        abbreviated_name: ms
+        site_url: http://opencord.org/
+        hosts_nodes: true
+
+    # compute nodes
+    node#node1:
+      type: tosca.nodes.Node
+      properties:
+        dataPlaneIntf: eth2
+        dataPlaneIp: 119.0.0.131
+        name: node1
+
+    node#node2:
+      type: tosca.nodes.Node
+      properties:
+        dataPlaneIntf: eth2
+        dataPlaneIp: 119.0.0.132
+        name: node2
+
+    # static routes
+    service#vrouter:
+      type: tosca.nodes.VRouterService
+      properties:
+        name: vrouter
+        must-exist: true
+
+    vroutersi#calico:
+      type: tosca.nodes.VRouterServiceInstance
+      properties:
+        name: calico
+      requirements:
+        - owner:
+            node: service#vrouter
+            relationship: tosca.relationships.BelongsToOne
+
+    # Fabric configuration
+    switch#leaf_1:
+      type: tosca.nodes.Switch
+      properties:
+        driver: ofdpa3
+        ipv4Loopback: 192.168.0.204
+        ipv4NodeSid: 214
+        isEdgeRouter: true
+        name: Agg Switch
+        ofId: of:0000000000000001
+        routerMac: 54:87:de:ad:be:ef
+
+    # Node1 Port
+    port#node_1_port:
+      type: tosca.nodes.SwitchPort
+      properties:
+        portId: 33
+      requirements:
+        - switch:
+            node: switch#leaf_1
+            relationship: tosca.relationships.BelongsToOne
+
+    interface#port_1_interface:
+      type: tosca.nodes.PortInterface
+      properties:
+        vlanUntagged: 20
+        name: node_1
+      requirements:
+        - port:
+            node: port#node_1_port
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_1_sgi_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 13.1.1.254/24
+        description: node_1_sgi_net
+      requirements:
+        - interface:
+            node: interface#port_1_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_1_s1u_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 119.0.0.254/24
+        description: node_1_s1u_net
+      requirements:
+        - interface:
+            node: interface#port_1_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_1_rru_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 116.0.0.254/24
+        description: node_1_rru_net
+      requirements:
+        - interface:
+            node: interface#port_1_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    # Node2 Port
+    port#node_2_port:
+      type: tosca.nodes.SwitchPort
+      properties:
+        portId: 34
+      requirements:
+        - switch:
+            node: switch#leaf_1
+            relationship: tosca.relationships.BelongsToOne
+
+    interface#port_2_interface:
+      type: tosca.nodes.PortInterface
+      properties:
+        vlanUntagged: 20
+        name: node_2
+      requirements:
+        - port:
+            node: port#node_2_port
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_2_sgi_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 13.1.1.254/24
+        description: node_2_sgi_net
+      requirements:
+        - interface:
+            node: interface#port_2_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_2_s1u_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 119.0.0.254/24
+        description: node_2_s1u_net
+      requirements:
+        - interface:
+            node: interface#port_2_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_2_rru_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 116.0.0.254/24
+        description: node_2_rru_net
+      requirements:
+        - interface:
+            node: interface#port_2_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    # RRU Port
+    port#rru_port:
+      type: tosca.nodes.SwitchPort
+      properties:
+        portId: 37
+      requirements:
+        - switch:
+            node: switch#leaf_1
+            relationship: tosca.relationships.BelongsToOne
+
+    interface#rru_interface:
+      type: tosca.nodes.PortInterface
+      properties:
+        vlanUntagged: 20
+        name: rru
+      requirements:
+        - port:
+            node: port#rru_port
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_rru_sgi_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 13.1.1.254/24
+        description: rru_sgi_net
+      requirements:
+        - interface:
+            node: interface#rru_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_rru_s1u_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 119.0.0.254/24
+        description: rru_s1u_net
+      requirements:
+        - interface:
+            node: interface#rru_interface
+            relationship: tosca.relationships.BelongsToOne
+
+    ip#port_rru_net:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 116.0.0.254/24
+        description: rru_net
+      requirements:
+        - interface:
+            node: interface#rru_interface
+            relationship: tosca.relationships.BelongsToOne
diff --git a/tosca-configs/comac/progran.yaml b/tosca-configs/comac/progran.yaml
new file mode 100644
index 0000000..7a8db87
--- /dev/null
+++ b/tosca-configs/comac/progran.yaml
@@ -0,0 +1,157 @@
+# Copyright 2019-present Open Networking Foundation
+#
+# 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.
+
+# curl -H "xos-username: admin@opencord.org" -H "xos-password: letmein" -X POST --data-binary @onf-mcord-pod1-progran.yaml http://10.90.0.131:30007/run
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/handover.yaml
+  - custom_types/enodeb.yaml
+  - custom_types/serviceinstancelink.yaml
+  - custom_types/progranservice.yaml
+  - custom_types/progranserviceinstance.yaml
+  - custom_types/mcordsubscriberservice.yaml
+  - custom_types/mcordsubscriberinstance.yaml
+
+topology_template:
+  node_templates:
+
+    service#progran:
+      type: tosca.nodes.ProgranService
+      properties:
+        name: progran
+        must-exist: true
+
+    service#mcord:
+      type: tosca.nodes.MCordSubscriberService
+      properties:
+        name: mcord
+        must-exist: true
+
+    handover#barcelona-handover:
+      type: tosca.nodes.Handover
+      properties:
+        name: barcelona-handover
+        A3offset: 1
+        A3TriggerQuantity: 0
+        A5Thresh1Rsrp: 74
+        A5Thresh1Rsrq: 10
+        A5Thresh2Rsrp: 78
+        A5Thresh2Rsrq: 10
+        A5TriggerQuantity: 0
+        A5TriggerType: 0
+        HysteresisA3: 0
+        HysteresisA5: 1
+
+    enodeb#accelleran:
+      type: tosca.nodes.ENodeB
+      properties:
+        description: accelleran
+        enbId: "1"
+        ipAddr: 10.90.0.131
+
+    # SUBSCRIBERS
+    imsi#IMSI1:
+      type: tosca.nodes.MCordSubscriberInstance
+      properties:
+        imsi_number: "732111000000420"
+        name: IMSI1
+        ue_status: "1"
+      requirements:
+        - owner:
+            node: service#mcord
+            relationship: tosca.relationships.BelongsToOne
+
+    imsi#IMSI2:
+      type: tosca.nodes.MCordSubscriberInstance
+      properties:
+        imsi_number: "732111000000421"
+        name: IMSI2
+        ue_status: "1"
+      requirements:
+        - owner:
+            node: service#mcord
+            relationship: tosca.relationships.BelongsToOne
+
+    profile#video-slice:
+      type: tosca.nodes.ProgranServiceInstance
+      properties:
+        name: video-slice
+        CellIndividualOffset: 0
+        DlWifiRate: 0
+        DlSchedType: RR
+        DlAllocRBRate: 50
+        UlSchedType: RR
+        UlAllocRBRate: 50
+        mmeip: 10.90.0.151
+        mmeport: "36412"
+        start: 1567321200
+        end: 1569826800
+        SubsProfile: IMSI2
+      requirements:
+        - owner:
+            node: service#progran
+            relationship: tosca.relationships.BelongsToOne
+        - handover:
+            node: handover#barcelona-handover
+            relationship: tosca.relationships.BelongsToOne
+        - enodeb:
+            node: enodeb#accelleran
+            relationship: tosca.relationships.BelongsToOne
+
+    profile#download-slice:
+      type: tosca.nodes.ProgranServiceInstance
+      properties:
+        name: download-slice
+        CellIndividualOffset: 0
+        DlWifiRate: 0
+        DlSchedType: RR
+        DlAllocRBRate: 20
+        UlSchedType: RR
+        UlAllocRBRate: 20
+        mmeip: 10.90.0.151
+        mmeport: "36412"
+        start: 1567321200
+        end: 1569826800
+        SubsProfile: IMSI1
+      requirements:
+        - owner:
+            node: service#progran
+            relationship: tosca.relationships.BelongsToOne
+        - handover:
+            node: handover#barcelona-handover
+            relationship: tosca.relationships.BelongsToOne
+        - enodeb:
+            node: enodeb#accelleran
+            relationship: tosca.relationships.BelongsToOne
+
+    imsi2_to_video_slice:
+      type: tosca.nodes.ServiceInstanceLink
+      requirements:
+        - provider_service_instance:
+            node: profile#video-slice
+            relationship: tosca.relationships.BelongsToOne
+        - subscriber_service_instance:
+            node: imsi#IMSI2
+            relationship: tosca.relationships.BelongsToOne
+
+    imsi1_to_download_slice:
+      type: tosca.nodes.ServiceInstanceLink
+      requirements:
+        - provider_service_instance:
+            node: profile#download-slice
+            relationship: tosca.relationships.BelongsToOne
+        - subscriber_service_instance:
+            node: imsi#IMSI1
+            relationship: tosca.relationships.BelongsToOne