Add vOLT ONOS app
diff --git a/xos/configurations/cord-pod/cord-vtn-vsg.yaml b/xos/configurations/cord-pod/cord-vtn-vsg.yaml
index 7de536a..8089d75 100644
--- a/xos/configurations/cord-pod/cord-vtn-vsg.yaml
+++ b/xos/configurations/cord-pod/cord-vtn-vsg.yaml
@@ -65,6 +65,33 @@
node: addresses_exampleservice-public
relationship: tosca.relationships.ProvidesAddresses
+ vOLT_ONOS_app:
+ type: tosca.nodes.ONOSvOLTApp
+ requirements:
+ - onos_tenant:
+ node: service_ONOS_CORD
+ relationship: tosca.relationships.TenantOfService
+ - volt_service:
+ node: service_volt
+ relationship: tosca.relationships.UsedByService
+ properties:
+ install_dependencies: onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar
+ dependencies: org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher
+ component_config: >
+ {
+ "org.ciena.onos.ext_notifier.KafkaNotificationBridge":{
+ "rabbit.user": "<rabbit_user>",
+ "rabbit.password": "<rabbit_password>",
+ "rabbit.host": "<rabbit_host>",
+ "publish.kafka": "false",
+ "publish.rabbit": "true",
+ "volt.events.rabbit.topic": "notifications.info",
+ "volt.events.rabbit.exchange": "voltlistener",
+ "volt.events.opaque.info": "{project_id: <keystone_tenant_id>, user_id: <keystone_user_id>}",
+ "publish.volt.events": "true"
+ }
+ }
+
Private:
type: tosca.nodes.NetworkTemplate
diff --git a/xos/configurations/cord-pod/cord.yaml b/xos/configurations/cord-pod/cord.yaml
deleted file mode 100644
index c60b049..0000000
--- a/xos/configurations/cord-pod/cord.yaml
+++ /dev/null
@@ -1,250 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Just enough Tosca to get the vSG slice running on the CORD POD
-
-imports:
- - custom_types/xos.yaml
-
-topology_template:
- node_templates:
- # CORD Services
- service_vtr:
- type: tosca.nodes.Service
- properties:
- view_url: /admin/vtr/vtrservice/$id$/
- kind: vTR
-
- service_volt:
- type: tosca.nodes.Service
- requirements:
- - vsg_tenant:
- node: service_vsg
- relationship: tosca.relationships.TenantOfService
- properties:
- view_url: /admin/cord/voltservice/$id$/
- kind: vOLT
-
- addresses_vsg:
- type: tosca.nodes.AddressPool
- properties:
- addresses: 10.168.0.0/24
- gateway_ip: 10.168.0.1
- gateway_mac: 02:42:0a:a8:00:01
-
- addresses_exampleservice-public:
- type: tosca.nodes.AddressPool
- properties:
- addresses: 10.168.1.0/24
- gateway_ip: 10.168.1.1
- gateway_mac: 02:42:0a:a8:00:01
-
- service_vsg:
- type: tosca.nodes.VSGService
- requirements:
- - vrouter_tenant:
- node: service_vrouter
- relationship: tosca.relationships.TenantOfService
- properties:
- view_url: /admin/cord/vsgservice/$id$/
- backend_network_label: hpc_client
- public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
- private_key_fn: /opt/xos/synchronizers/vcpe/vcpe_private_key
-# node_label: label_vsg
- artifacts:
- pubkey: /opt/xos/synchronizers/vcpe/vcpe_public_key
-
- service_vrouter:
- type: tosca.nodes.VRouterService
- properties:
- view_url: /admin/vrouter/vrouterservice/$id$/
- requirements:
- - addresses_vsg:
- node: addresses_vsg
- relationship: tosca.relationships.ProvidesAddresses
- - addresses_service1:
- node: addresses_exampleservice-public
- relationship: tosca.relationships.ProvidesAddresses
-
- # ONOS services and apps
- service_ONOS_vOLT:
- type: tosca.nodes.ONOSService
- requirements:
- properties:
- kind: onos
- view_url: /admin/onos/onosservice/$id$/
- public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
- no_container: true
- rest_hostname: onos-cord
- rest_onos/v1/network/configuration/: >
- {
- "devices" : {
- "of:0000000000000001" : {
- "accessDevice" : {
- "uplink" : "2",
- "vlan" : "222",
- "defaultVlan" : "0"
- },
- "basic" : {
- "driver" : "pmc-olt"
- }
- }
- }
- }
- artifacts:
- pubkey: /opt/xos/synchronizers/onos/onos_key.pub
-
- vOLT_ONOS_app:
- type: tosca.nodes.ONOSvOLTApp
- requirements:
- - onos_tenant:
- node: service_ONOS_vOLT
- relationship: tosca.relationships.TenantOfService
- - volt_service:
- node: service_volt
- relationship: tosca.relationships.UsedByService
- properties:
- install_dependencies: onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar
- dependencies: org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher
- component_config: >
- {
- "org.ciena.onos.ext_notifier.KafkaNotificationBridge":{
- "rabbit.user": "<rabbit_user>",
- "rabbit.password": "<rabbit_password>",
- "rabbit.host": "<rabbit_host>",
- "publish.kafka": "false",
- "publish.rabbit": "true",
- "volt.events.rabbit.topic": "notifications.info",
- "volt.events.rabbit.exchange": "voltlistener",
- "volt.events.opaque.info": "{project_id: <keystone_tenant_id>, user_id: <keystone_user_id>}",
- "publish.volt.events": "true"
- }
- }
-
- Private:
- type: tosca.nodes.NetworkTemplate
-
- management:
- type: tosca.nodes.network.Network.XOS
- properties:
- no-create: true
- no-delete: true
- no-update: true
-
- mysite:
- type: tosca.nodes.Site
-
- label_vsg:
- type: tosca.nodes.NodeLabel
-
- # Networks required by the CORD setup
- mysite_vsg-access:
- type: tosca.nodes.network.Network
- properties:
- ip_version: 4
- requirements:
- - network_template:
- node: Private
- relationship: tosca.relationships.UsesNetworkTemplate
- - owner:
- node: mysite_vsg
- relationship: tosca.relationships.MemberOfSlice
- - connection:
- node: mysite_vsg
- relationship: tosca.relationships.ConnectsToSlice
-
- # CORD Slices
- mysite_vsg:
- description: vSG Controller Slice
- type: tosca.nodes.Slice
- properties:
- network: noauto
- requirements:
- - vsg_service:
- node: service_vsg
- relationship: tosca.relationships.MemberOfService
- - site:
- node: mysite
- relationship: tosca.relationships.MemberOfSite
- - management:
- node: management
- relationship: tosca.relationships.ConnectsToNetwork
-
- # Let's add a user who can be administrator of the household
- johndoe@myhouse.com:
- type: tosca.nodes.User
- properties:
- password: letmein
- firstname: john
- lastname: doe
- requirements:
- - site:
- node: mysite
- relationship: tosca.relationships.MemberOfSite
-
- # A subscriber
- My House:
- type: tosca.nodes.CORDSubscriber
- properties:
- service_specific_id: 123
- firewall_enable: false
- cdn_enable: false
- url_filter_enable: false
- url_filter_level: R
- requirements:
- - house_admin:
- node: johndoe@myhouse.com
- relationship: tosca.relationships.AdminPrivilege
-
- Mom's PC:
- type: tosca.nodes.CORDUser
- properties:
- mac: 01:02:03:04:05:06
- level: PG_13
- requirements:
- - household:
- node: My House
- relationship: tosca.relationships.SubscriberDevice
-
- Dad's PC:
- type: tosca.nodes.CORDUser
- properties:
- mac: 90:E2:BA:82:F9:75
- level: PG_13
- requirements:
- - household:
- node: My House
- relationship: tosca.relationships.SubscriberDevice
-
- Jack's Laptop:
- type: tosca.nodes.CORDUser
- properties:
- mac: 68:5B:35:9D:91:D5
- level: PG_13
- requirements:
- - household:
- node: My House
- relationship: tosca.relationships.SubscriberDevice
-
- Jill's Laptop:
- type: tosca.nodes.CORDUser
- properties:
- mac: 34:36:3B:C9:B6:A6
- level: PG_13
- requirements:
- - household:
- node: My House
- relationship: tosca.relationships.SubscriberDevice
-
- My Volt:
- type: tosca.nodes.VOLTTenant
- properties:
- service_specific_id: 123
- s_tag: 222
- c_tag: 111
- requirements:
- - provider_service:
- node: service_volt
- relationship: tosca.relationships.MemberOfService
- - subscriber:
- node: My House
- relationship: tosca.relationships.BelongsToSubscriber
diff --git a/xos/configurations/cord-pod/vtn-external.yaml b/xos/configurations/cord-pod/vtn-external.yaml
index 51cca08..b2d3a23 100644
--- a/xos/configurations/cord-pod/vtn-external.yaml
+++ b/xos/configurations/cord-pod/vtn-external.yaml
@@ -16,6 +16,22 @@
view_url: /admin/onos/onosservice/$id$/
no_container: true
rest_hostname: onos-cord
+ # For vOLT
+ rest_onos/v1/network/configuration/: >
+ {
+ "devices" : {
+ "of:0000000000000001" : {
+ "accessDevice" : {
+ "uplink" : "2",
+ "vlan" : "222",
+ "defaultVlan" : "0"
+ },
+ "basic" : {
+ "driver" : "pmc-olt"
+ }
+ }
+ }
+ }
VTN_ONOS_app:
type: tosca.nodes.ONOSVTNApp