| tosca_definitions_version: tosca_simple_yaml_1_0 |
| |
| description: Setup CORD-related services -- vOLT, vCPE, vBNG. |
| |
| imports: |
| - custom_types/xos.yaml |
| |
| topology_template: |
| node_templates: |
| |
| # CORD Services |
| service_volt: |
| type: tosca.nodes.Service |
| requirements: |
| - vcpe_tenant: |
| node: service_vcpe |
| relationship: tosca.relationships.TenantOfService |
| properties: |
| view_url: /admin/cord/voltservice/$id$/ |
| kind: vOLT |
| |
| service_vcpe: |
| type: tosca.nodes.VCPEService |
| requirements: |
| - vbng_tenant: |
| node: service_vbng |
| relationship: tosca.relationships.TenantOfService |
| properties: |
| view_url: /admin/cord/vcpeservice/$id$/ |
| backend_network_label: hpc_client |
| public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] } |
| private_key_fn: /opt/xos/observers/vcpe/vcpe_private_key |
| artifacts: |
| pubkey: /opt/xos/observers/vcpe/vcpe_public_key |
| |
| service_vbng: |
| type: tosca.nodes.VBNGService |
| properties: |
| view_url: /admin/cord/vbngservice/$id$/ |
| # if unspecified, vbng observer will look for an ONOSApp Tenant and |
| # generate a URL from its IP address |
| # vbng_url: http://10.11.10.24:8181/onos/virtualbng/ |
| |
| service_ONOS_vBNG: |
| type: tosca.nodes.ONOSService |
| requirements: |
| properties: |
| kind: onos |
| view_url: /admin/onos/onosservice/$id$/ |
| public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] } |
| artifacts: |
| pubkey: /opt/xos/observers/onos/onos_key.pub |
| |
| # |
| # To actually bring up the vBNG app |
| # - Set up the dataplane using the ansible script |
| # - Log into the vBNG ONOS and run 'devices' to get switch dpID |
| # - Change the dpID values in vBNG ONOS app in XOS GUI |
| # - (Synchronizer should copy the files to ONOS container immediately) |
| # - Log into service_ONOS_vBNG VM and restart ONOS Docker container |
| # (Should roll this step into a Synchronizer) |
| #f |
| vBNG_ONOS_app: |
| type: tosca.nodes.ONOSvBNGApp |
| requirements: |
| - onos_tenant: |
| node: service_ONOS_vBNG |
| relationship: tosca.relationships.TenantOfService |
| - vbng_service: |
| node: service_vbng |
| relationship: tosca.relationships.UsedByService |
| properties: |
| dependencies: org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd |
| config_network-cfg.json: > |
| { |
| "ports" : { |
| "of:0000000000000001/1" : { |
| "interfaces" : [ |
| { |
| "ips" : [ "10.0.1.253/24" ], |
| "mac" : "00:00:00:00:00:99" |
| } |
| ] |
| }, |
| "of:0000000000000001/2" : { |
| "interfaces" : [ |
| { |
| "ips" : [ "10.254.0.2/24" ], |
| "mac" : "00:00:00:00:00:98" |
| } |
| ] |
| } |
| } |
| } |
| config_virtualbng.json: > |
| { |
| "localPublicIpPrefixes" : [ |
| "10.254.0.128/25" |
| ], |
| "nextHopIpAddress" : "10.254.0.1", |
| "publicFacingMac" : "00:00:00:00:00:66", |
| "xosIpAddress" : "10.11.10.1", |
| "xosRestPort" : "9999", |
| "hosts" : { |
| "cp-1.devel.xos-pg0.clemson.cloudlab.us" : "of:0000000000000001/1", |
| "cp-2.devel.xos-pg0.clemson.cloudlab.us" : "of:0000000000000001/1" |
| } |
| } |
| |
| 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] } |
| artifacts: |
| pubkey: /opt/xos/observers/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: |
| dependencies: org.onosproject.olt |
| config_network-cfg.json: > |
| { |
| "devices" : { |
| "of:0000000000000001" : { |
| "accessDevice" : { |
| "uplink" : "2", |
| "vlan" : "400" |
| }, |
| "basic" : { |
| "driver" : "default" |
| } |
| } |
| } |
| } |
| |
| # Network templates |
| Private: |
| type: tosca.nodes.NetworkTemplate |
| |
| Public network hack: |
| type: tosca.nodes.NetworkTemplate |
| properties: |
| visibility: private |
| translation: NAT |
| shared_network_name: tun0-net |
| |
| |
| # Networks required by the CORD setup |
| lan_network: |
| type: tosca.nodes.network.Network |
| properties: |
| ip_version: 4 |
| requirements: |
| - network_template: |
| node: Private |
| relationship: tosca.relationships.UsesNetworkTemplate |
| - owner: |
| node: mysite_vcpe |
| relationship: tosca.relationships.MemberOfSlice |
| - connection: |
| node: mysite_vcpe |
| relationship: tosca.relationships.ConnectsToSlice |
| - connection: |
| node: mysite_volt |
| relationship: tosca.relationships.ConnectsToSlice |
| |
| wan_network: |
| type: tosca.nodes.network.Network |
| properties: |
| ip_version: 4 |
| requirements: |
| - network_template: |
| node: Private |
| relationship: tosca.relationships.UsesNetworkTemplate |
| - owner: |
| node: mysite_vcpe |
| relationship: tosca.relationships.MemberOfSlice |
| - connection: |
| node: mysite_vcpe |
| relationship: tosca.relationships.ConnectsToSlice |
| - connection: |
| node: mysite_vbng |
| relationship: tosca.relationships.ConnectsToSlice |
| |
| subscriber_network: |
| type: tosca.nodes.network.Network |
| properties: |
| ip_version: 4 |
| requirements: |
| - network_template: |
| node: Private |
| relationship: tosca.relationships.UsesNetworkTemplate |
| - owner: |
| node: mysite_volt |
| relationship: tosca.relationships.MemberOfSlice |
| - connection: |
| node: mysite_volt |
| relationship: tosca.relationships.ConnectsToSlice |
| - connection: |
| node: mysite_clients |
| relationship: tosca.relationships.ConnectsToSlice |
| |
| public_network: |
| type: tosca.nodes.network.Network |
| properties: |
| requirements: |
| - network_template: |
| node: Public network hack |
| relationship: tosca.relationships.UsesNetworkTemplate |
| - owner: |
| node: mysite_vbng |
| relationship: tosca.relationships.MemberOfSlice |
| - connection: |
| node: mysite_vbng |
| relationship: tosca.relationships.ConnectsToSlice |
| |
| |
| mysite: |
| type: tosca.nodes.Site |
| |
| |
| # CORD Slices |
| mysite_vcpe: |
| description: vCPE Controller Slice |
| type: tosca.nodes.Slice |
| requirements: |
| - vcpe_service: |
| node: service_vcpe |
| relationship: tosca.relationships.MemberOfService |
| - site: |
| node: mysite |
| relationship: tosca.relationships.MemberOfSite |
| |
| mysite_onos_vbng: |
| description: ONOS Controller Slice for vBNG |
| type: tosca.nodes.Slice |
| requirements: |
| - ONOS: |
| node: service_ONOS_vBNG |
| relationship: tosca.relationships.MemberOfService |
| - site: |
| node: mysite |
| relationship: tosca.relationships.MemberOfSite |
| |
| mysite_onos_volt: |
| description: ONOS Controller Slice for vOLT |
| type: tosca.nodes.Slice |
| requirements: |
| - ONOS: |
| node: service_ONOS_vOLT |
| relationship: tosca.relationships.MemberOfService |
| - site: |
| node: mysite |
| relationship: tosca.relationships.MemberOfSite |
| |
| mysite_vbng: |
| description: slice running OVS controlled by vBNG |
| type: tosca.nodes.Slice |
| requirements: |
| - site: |
| node: mysite |
| relationship: tosca.relationships.MemberOfSite |
| |
| mysite_volt: |
| description: OVS controlled by vOLT |
| type: tosca.nodes.Slice |
| requirements: |
| - site: |
| node: mysite |
| relationship: tosca.relationships.MemberOfSite |
| |
| mysite_clients: |
| description: slice for clients at the subscriber |
| type: tosca.nodes.Slice |
| requirements: |
| - site: |
| node: mysite |
| relationship: tosca.relationships.MemberOfSite |
| |
| |
| # Virtual machines |
| onos_app_1: |
| type: tosca.nodes.Compute |
| capabilities: |
| # Host container properties |
| host: |
| properties: |
| num_cpus: 1 |
| disk_size: 10 GB |
| mem_size: 4 MB |
| # Guest Operating System properties |
| os: |
| properties: |
| # host Operating System image properties |
| architecture: x86_64 |
| type: linux |
| distribution: Ubuntu |
| version: 14.10 |
| requirements: |
| - slice: |
| node: mysite_onos_vbng |
| relationship: tosca.relationships.MemberOfSlice |
| |
| onos_app_2: |
| type: tosca.nodes.Compute |
| capabilities: |
| # Host container properties |
| host: |
| properties: |
| num_cpus: 1 |
| disk_size: 10 GB |
| mem_size: 4 MB |
| # Guest Operating System properties |
| os: |
| properties: |
| # host Operating System image properties |
| architecture: x86_64 |
| type: linux |
| distribution: Ubuntu |
| version: 14.10 |
| requirements: |
| - slice: |
| node: mysite_onos_volt |
| relationship: tosca.relationships.MemberOfSlice |
| |
| # VM for running the OVS controlled by vBNG |
| ovs_vbng: |
| type: tosca.nodes.Compute |
| capabilities: |
| # Host container properties |
| host: |
| properties: |
| num_cpus: 1 |
| disk_size: 10 GB |
| mem_size: 4 MB |
| # Guest Operating System properties |
| os: |
| properties: |
| # host Operating System image properties |
| architecture: x86_64 |
| type: linux |
| distribution: ubuntu |
| version: 14.04 |
| requirements: |
| - slice: |
| node: mysite_vbng |
| relationship: tosca.relationships.MemberOfSlice |
| |
| # VM for running the OVS controlled by vOLT |
| ovs_volt: |
| type: tosca.nodes.Compute |
| capabilities: |
| # Host container properties |
| host: |
| properties: |
| num_cpus: 1 |
| disk_size: 10 GB |
| mem_size: 4 MB |
| # Guest Operating System properties |
| os: |
| properties: |
| # host Operating System image properties |
| architecture: x86_64 |
| type: linux |
| distribution: ubuntu |
| version: 14.04 |
| requirements: |
| - slice: |
| node: mysite_volt |
| relationship: tosca.relationships.MemberOfSlice |
| |
| # A subscriber client VM |
| client1: |
| type: tosca.nodes.Compute |
| capabilities: |
| # Host container properties |
| host: |
| properties: |
| num_cpus: 1 |
| disk_size: 10 GB |
| mem_size: 4 MB |
| # Guest Operating System properties |
| os: |
| properties: |
| # host Operating System image properties |
| architecture: x86_64 |
| type: linux |
| distribution: ubuntu |
| version: 14.04 |
| requirements: |
| - slice: |
| node: mysite_clients |
| relationship: tosca.relationships.MemberOfSlice |
| |
| # 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 |
| |
| Mom's PC: |
| type: tosca.nodes.CORDUser |
| properties: |
| mac: 010203040506 |
| level: PG_13 |
| requirements: |
| - household: |
| node: My House |
| relationship: tosca.relationships.SubscriberDevice |
| |
| Dad's PC: |
| type: tosca.nodes.CORDUser |
| properties: |
| mac: 90E2Ba82F975 |
| level: PG_13 |
| requirements: |
| - household: |
| node: My House |
| relationship: tosca.relationships.SubscriberDevice |
| |
| Jack's Laptop: |
| type: tosca.nodes.CORDUser |
| properties: |
| mac: 685B359D91D5 |
| level: PG_13 |
| requirements: |
| - household: |
| node: My House |
| relationship: tosca.relationships.SubscriberDevice |
| |
| Jill's Laptop: |
| type: tosca.nodes.CORDUser |
| properties: |
| mac: 34363BC9B6A6 |
| 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: 432 |
| requirements: |
| - provider_service: |
| node: service_volt |
| relationship: tosca.relationships.MemberOfService |
| - subscriber: |
| node: My House |
| relationship: tosca.relationships.BelongsToSubscriber |