blob: e9a6291c6cad8363497d7e17cfe521ee87ba635b [file] [log] [blame]
Andy Bavierf0405252015-10-06 14:55:44 -04001tosca_definitions_version: tosca_simple_yaml_1_0
2
3description: Setup CORD-related services -- vOLT, vCPE, vBNG.
4
5imports:
6 - custom_types/xos.yaml
7
8topology_template:
9 node_templates:
Andy Bavier790c0e52015-10-20 11:37:06 -040010
Andy Bavierf0405252015-10-06 14:55:44 -040011 # CORD Services
12 service_volt:
13 type: tosca.nodes.Service
14 requirements:
15 - vcpe_tenant:
16 node: service_vcpe
17 relationship: tosca.relationships.TenantOfService
18 properties:
19 view_url: /admin/cord/voltservice/$id$/
20 kind: vOLT
21
Andy Bavierf0405252015-10-06 14:55:44 -040022 service_vcpe:
23 type: tosca.nodes.VCPEService
24 requirements:
25 - vbng_tenant:
26 node: service_vbng
27 relationship: tosca.relationships.TenantOfService
28 properties:
29 view_url: /admin/cord/vcpeservice/$id$/
30 backend_network_label: hpc_client
31 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
32 artifacts:
33 pubkey: /opt/xos/observers/vcpe/vcpe_public_key
34
35 service_vbng:
36 type: tosca.nodes.VBNGService
37 properties:
38 view_url: /admin/cord/vbngservice/$id$/
Scott Baker6e3f34d2015-10-20 21:20:18 -070039# if unspecified, vbng observer will look for an ONOSApp Tenant and
40# generate a URL from its IP address
41# vbng_url: http://10.11.10.24:8181/onos/virtualbng/
Andy Bavier790c0e52015-10-20 11:37:06 -040042
Andy Bavier47aed292015-10-26 14:16:54 -040043 service_ONOS_vBNG:
Andy Bavier790c0e52015-10-20 11:37:06 -040044 type: tosca.nodes.ONOSService
45 requirements:
46 properties:
47 kind: onos
48 view_url: /admin/onos/onosservice/$id$/
49 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
50 artifacts:
51 pubkey: /opt/xos/observers/onos/onos_key.pub
52
Andy Bavier0154e952015-10-28 17:19:20 -040053#
54# To actually bring up the vBNG app
55# - Set up the dataplane using the ansible script
56# - Log into the vBNG ONOS and run 'devices' to get switch dpID
57# - Change the dpID values in vBNG ONOS app in XOS GUI
58# - (Synchronizer should copy the files to ONOS container immediately)
59# - Log into service_ONOS_vBNG VM and restart ONOS Docker container
60# (Should roll this step into a Synchronizer)
61#
Andy Bavier790c0e52015-10-20 11:37:06 -040062 vBNG_ONOS_app:
63 type: tosca.nodes.ONOSvBNGApp
64 requirements:
65 - onos_tenant:
Andy Bavier47aed292015-10-26 14:16:54 -040066 node: service_ONOS_vBNG
Andy Bavier790c0e52015-10-20 11:37:06 -040067 relationship: tosca.relationships.TenantOfService
Scott Baker2cd7c482015-10-20 21:18:45 -070068 - vbng_service:
69 node: service_vbng
70 relationship: tosca.relationships.UsedByService
Andy Bavier790c0e52015-10-20 11:37:06 -040071 properties:
72 dependencies: org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd
Andy Bavier88552a02015-10-26 11:53:22 -040073 config_network-cfg.json: >
Andy Bavier790c0e52015-10-20 11:37:06 -040074 {
Andy Bavier88552a02015-10-26 11:53:22 -040075 "ports" : {
Andy Bavier0154e952015-10-28 17:19:20 -040076 "of:0000000000000001/1" : {
Andy Bavier88552a02015-10-26 11:53:22 -040077 "interfaces" : [
78 {
79 "ips" : [ "10.0.1.253/24" ],
80 "mac" : "00:00:00:00:00:99"
81 }
82 ]
83 },
Andy Bavier0154e952015-10-28 17:19:20 -040084 "of:0000000000000001/2" : {
Andy Bavier88552a02015-10-26 11:53:22 -040085 "interfaces" : [
86 {
Andy Bavier0154e952015-10-28 17:19:20 -040087 "ips" : [ "10.254.0.2/24" ],
Andy Bavier88552a02015-10-26 11:53:22 -040088 "mac" : "00:00:00:00:00:98"
89 }
90 ]
91 }
92 }
Andy Bavier790c0e52015-10-20 11:37:06 -040093 }
Scott Baker3ab4db82015-10-20 17:12:36 -070094 config_virtualbng.json: >
Andy Bavier790c0e52015-10-20 11:37:06 -040095 {
96 "localPublicIpPrefixes" : [
Andy Bavier923c61c2015-10-20 14:53:01 -040097 "10.254.0.128/25"
Andy Bavier790c0e52015-10-20 11:37:06 -040098 ],
Andy Bavier923c61c2015-10-20 14:53:01 -040099 "nextHopIpAddress" : "10.254.0.1",
Andy Bavier790c0e52015-10-20 11:37:06 -0400100 "publicFacingMac" : "00:00:00:00:00:66",
101 "xosIpAddress" : "10.11.10.1",
Andy Bavier0154e952015-10-28 17:19:20 -0400102 "xosRestPort" : "9999",
103 "hosts" : {
104 "cp-1.devel.xos-pg0.clemson.cloudlab.us" : "of:0000000000000001/1",
105 "cp-2.devel.xos-pg0.clemson.cloudlab.us" : "of:0000000000000001/1"
106 }
Andy Bavier790c0e52015-10-20 11:37:06 -0400107 }
108
Andy Bavier47aed292015-10-26 14:16:54 -0400109 service_ONOS_vOLT:
110 type: tosca.nodes.ONOSService
111 requirements:
112 properties:
113 kind: onos
114 view_url: /admin/onos/onosservice/$id$/
115 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
116 artifacts:
117 pubkey: /opt/xos/observers/onos/onos_key.pub
118
Andy Bavierfe3b0112015-10-26 12:19:50 -0400119 vOLT_ONOS_app:
120 type: tosca.nodes.ONOSvOLTApp
121 requirements:
122 - onos_tenant:
Andy Bavier47aed292015-10-26 14:16:54 -0400123 node: service_ONOS_vOLT
Andy Bavierfe3b0112015-10-26 12:19:50 -0400124 relationship: tosca.relationships.TenantOfService
125 - volt_service:
126 node: service_volt
127 relationship: tosca.relationships.UsedByService
128 properties:
129 dependencies: org.onosproject.olt
130
Andy Bavier790c0e52015-10-20 11:37:06 -0400131 # Network templates
132 Private:
133 type: tosca.nodes.NetworkTemplate
134
Andy Bavier923c61c2015-10-20 14:53:01 -0400135 Public network hack:
136 type: tosca.nodes.NetworkTemplate
137 properties:
138 visibility: private
139 translation: NAT
140 shared_network_name: tun0-net
141
142
Andy Bavier790c0e52015-10-20 11:37:06 -0400143 # Networks required by the CORD setup
144 lan_network:
145 type: tosca.nodes.network.Network
146 properties:
147 ip_version: 4
148 requirements:
149 - network_template:
150 node: Private
151 relationship: tosca.relationships.UsesNetworkTemplate
152 - owner:
153 node: mysite_vcpe
154 relationship: tosca.relationships.MemberOfSlice
155 - connection:
156 node: mysite_vcpe
157 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier923c61c2015-10-20 14:53:01 -0400158 - connection:
159 node: mysite_volt
160 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier790c0e52015-10-20 11:37:06 -0400161
162 wan_network:
163 type: tosca.nodes.network.Network
164 properties:
165 ip_version: 4
166 requirements:
167 - network_template:
168 node: Private
169 relationship: tosca.relationships.UsesNetworkTemplate
170 - owner:
171 node: mysite_vcpe
172 relationship: tosca.relationships.MemberOfSlice
173 - connection:
174 node: mysite_vcpe
175 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier923c61c2015-10-20 14:53:01 -0400176 - connection:
177 node: mysite_vbng
178 relationship: tosca.relationships.ConnectsToSlice
179
180 subscriber_network:
181 type: tosca.nodes.network.Network
182 properties:
183 ip_version: 4
184 requirements:
185 - network_template:
186 node: Private
187 relationship: tosca.relationships.UsesNetworkTemplate
188 - owner:
189 node: mysite_volt
190 relationship: tosca.relationships.MemberOfSlice
191 - connection:
192 node: mysite_volt
193 relationship: tosca.relationships.ConnectsToSlice
194 - connection:
195 node: mysite_clients
196 relationship: tosca.relationships.ConnectsToSlice
197
198 public_network:
199 type: tosca.nodes.network.Network
200 properties:
201 requirements:
202 - network_template:
203 node: Public network hack
204 relationship: tosca.relationships.UsesNetworkTemplate
205 - owner:
206 node: mysite_vbng
207 relationship: tosca.relationships.MemberOfSlice
208 - connection:
209 node: mysite_vbng
210 relationship: tosca.relationships.ConnectsToSlice
211
Andy Bavierf0405252015-10-06 14:55:44 -0400212
213 mysite:
214 type: tosca.nodes.Site
215
Andy Bavier923c61c2015-10-20 14:53:01 -0400216
217 # CORD Slices
Andy Bavierf0405252015-10-06 14:55:44 -0400218 mysite_vcpe:
219 description: vCPE Controller Slice
220 type: tosca.nodes.Slice
221 requirements:
222 - vcpe_service:
223 node: service_vcpe
224 relationship: tosca.relationships.MemberOfService
225 - site:
226 node: mysite
227 relationship: tosca.relationships.MemberOfSite
228
Andy Bavier47aed292015-10-26 14:16:54 -0400229 mysite_onos_vbng:
230 description: ONOS Controller Slice for vBNG
Andy Bavier790c0e52015-10-20 11:37:06 -0400231 type: tosca.nodes.Slice
232 requirements:
233 - ONOS:
Andy Bavier47aed292015-10-26 14:16:54 -0400234 node: service_ONOS_vBNG
235 relationship: tosca.relationships.MemberOfService
236 - site:
237 node: mysite
238 relationship: tosca.relationships.MemberOfSite
239
240 mysite_onos_volt:
241 description: ONOS Controller Slice for vOLT
242 type: tosca.nodes.Slice
243 requirements:
244 - ONOS:
245 node: service_ONOS_vOLT
Andy Bavier790c0e52015-10-20 11:37:06 -0400246 relationship: tosca.relationships.MemberOfService
247 - site:
248 node: mysite
249 relationship: tosca.relationships.MemberOfSite
Andy Bavierf0405252015-10-06 14:55:44 -0400250
Andy Bavier923c61c2015-10-20 14:53:01 -0400251 mysite_vbng:
252 description: slice running OVS controlled by vBNG
253 type: tosca.nodes.Slice
254 requirements:
255 - site:
256 node: mysite
257 relationship: tosca.relationships.MemberOfSite
258
259 mysite_volt:
260 description: OVS controlled by vOLT
261 type: tosca.nodes.Slice
262 requirements:
263 - site:
264 node: mysite
265 relationship: tosca.relationships.MemberOfSite
266
267 mysite_clients:
Andy Bavier88552a02015-10-26 11:53:22 -0400268 description: slice for clients at the subscriber
Andy Bavier923c61c2015-10-20 14:53:01 -0400269 type: tosca.nodes.Slice
270 requirements:
271 - site:
272 node: mysite
273 relationship: tosca.relationships.MemberOfSite
274
275
276 # Virtual machines
277 onos_app_1:
Andy Bavier790c0e52015-10-20 11:37:06 -0400278 type: tosca.nodes.Compute
279 capabilities:
280 # Host container properties
281 host:
282 properties:
283 num_cpus: 1
284 disk_size: 10 GB
285 mem_size: 4 MB
286 # Guest Operating System properties
287 os:
288 properties:
289 # host Operating System image properties
290 architecture: x86_64
291 type: linux
292 distribution: Ubuntu
293 version: 14.10
294 requirements:
295 - slice:
Andy Bavier47aed292015-10-26 14:16:54 -0400296 node: mysite_onos_vbng
Andy Bavier790c0e52015-10-20 11:37:06 -0400297 relationship: tosca.relationships.MemberOfSlice
Andy Bavierf0405252015-10-06 14:55:44 -0400298
Andy Bavier923c61c2015-10-20 14:53:01 -0400299 onos_app_2:
300 type: tosca.nodes.Compute
301 capabilities:
302 # Host container properties
303 host:
304 properties:
305 num_cpus: 1
306 disk_size: 10 GB
307 mem_size: 4 MB
308 # Guest Operating System properties
309 os:
310 properties:
311 # host Operating System image properties
312 architecture: x86_64
313 type: linux
314 distribution: Ubuntu
315 version: 14.10
316 requirements:
317 - slice:
Andy Bavier47aed292015-10-26 14:16:54 -0400318 node: mysite_onos_volt
Andy Bavier923c61c2015-10-20 14:53:01 -0400319 relationship: tosca.relationships.MemberOfSlice
320
321 # VM for running the OVS controlled by vBNG
322 ovs_vbng:
323 type: tosca.nodes.Compute
324 capabilities:
325 # Host container properties
326 host:
327 properties:
328 num_cpus: 1
329 disk_size: 10 GB
330 mem_size: 4 MB
331 # Guest Operating System properties
332 os:
333 properties:
334 # host Operating System image properties
335 architecture: x86_64
336 type: linux
337 distribution: ubuntu
338 version: 14.04
339 requirements:
340 - slice:
341 node: mysite_vbng
342 relationship: tosca.relationships.MemberOfSlice
343
344 # VM for running the OVS controlled by vOLT
345 ovs_volt:
346 type: tosca.nodes.Compute
347 capabilities:
348 # Host container properties
349 host:
350 properties:
351 num_cpus: 1
352 disk_size: 10 GB
353 mem_size: 4 MB
354 # Guest Operating System properties
355 os:
356 properties:
357 # host Operating System image properties
358 architecture: x86_64
359 type: linux
360 distribution: ubuntu
361 version: 14.04
362 requirements:
363 - slice:
364 node: mysite_volt
365 relationship: tosca.relationships.MemberOfSlice
366
367 # A subscriber client VM
368 client1:
369 type: tosca.nodes.Compute
370 capabilities:
371 # Host container properties
372 host:
373 properties:
374 num_cpus: 1
375 disk_size: 10 GB
376 mem_size: 4 MB
377 # Guest Operating System properties
378 os:
379 properties:
380 # host Operating System image properties
381 architecture: x86_64
382 type: linux
383 distribution: ubuntu
384 version: 14.04
385 requirements:
386 - slice:
387 node: mysite_clients
388 relationship: tosca.relationships.MemberOfSlice
389
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400390 # A subscriber
391 My House:
392 type: tosca.nodes.CORDSubscriber
393 properties:
394 service_specific_id: 123
395 firewall_enable: false
396 cdn_enable: false
397 url_filter_enable: false
398 url_filter_level: R
399
400 Mom's PC:
401 type: tosca.nodes.CORDUser
402 properties:
403 mac: 010203040506
404 level: PG_13
405 requirements:
406 - household:
407 node: My House
408 relationship: tosca.relationships.SubscriberDevice
409
410 Dad's PC:
411 type: tosca.nodes.CORDUser
412 properties:
413 mac: 90E2Ba82F975
414 level: PG_13
415 requirements:
416 - household:
417 node: My House
418 relationship: tosca.relationships.SubscriberDevice
419
420 Jack's Laptop:
421 type: tosca.nodes.CORDUser
422 properties:
423 mac: 685B359D91D5
424 level: PG_13
425 requirements:
426 - household:
427 node: My House
428 relationship: tosca.relationships.SubscriberDevice
429
430 Jill's Laptop:
431 type: tosca.nodes.CORDUser
432 properties:
433 mac: 34363BC9B6A6
434 level: PG_13
435 requirements:
436 - household:
437 node: My House
438 relationship: tosca.relationships.SubscriberDevice
439
440 My Volt:
441 type: tosca.nodes.VOLTTenant
442 properties:
443 service_specific_id: 123
444 vlan_id: 432
445 requirements:
446 - provider_service:
447 node: service_volt
448 relationship: tosca.relationships.MemberOfService
449 - subscriber:
450 node: My House
451 relationship: tosca.relationships.BelongsToSubscriber