1 .. Licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright 2017 AT&T Intellectual Property. All rights reserved.
5 Contrail Resource Parameters
6 ----------------------------------------------------------------------
8 ONAP requires the parameter names of certain Contrail Resources to
9 follow specific naming conventions. This section provides these
12 Contrail Network Parameters
13 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15 Contrail based resources may require references to a Contrail network
16 using the network FQDN.
19 ~~~~~~~~~~~~~~~~~~~~~~~~~
26 :test_case: no test found
27 :test_file: no test found
29 When a VNF's Heat Orchestration Template's Contrail resource
31 references an external network that requires the network's
32 Fully Qualified Domain Name (FQDN), the property parameter
34 * **MUST** follow the format '{network-role}_net_fqdn'
35 * **MUST** be declared as type 'string'
36 * **MUST NOT** be enumerated in the NF's Heat Orchestration Template's
44 :test_case: no test found
45 :test_file: no test found
47 A VNF's Heat Orchestration Template's parameter
48 '{network-role}_net_fqdn'
49 **MUST** be declared as type 'string'.
56 :test_case: no test found
57 :test_file: no test found
59 A VNF's Heat Orchestration Template's parameter
60 '{network-role}_net_fqdn'
61 **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's
64 *Example: Parameter declaration*
69 {network-role}_net_fqdn:
71 description: Contrail FQDN for the {network-role} network
73 *Example: Contrail Resource OS::ContrailV2::VirtualMachineInterface
74 Reference to a Network FQDN.*
76 In this example, the {network-role} has been defined as oam to represent
77 an oam network and the {vm-type} has been defined as fw for firewall.
78 The Contrail resource OS::ContrailV2::VirtualMachineInterface property
79 virtual_network_refs references a contrail network FQDN.
84 type: OS::ContrailV2::VirtualMachineInterface
88 template: VM_NAME_virtual_machine_interface_1
90 VM_NAME: { get_param: fw_name_0 }
91 virtual_machine_interface_properties:
92 virtual_machine_interface_properties_service_interface_type: {
93 get_param: oam_protected_interface_type }
95 - get_param: oam_net_fqdn
97 - get_param: fw_sec_grp_id
100 Interface Route Table Prefixes for Contrail InterfaceRoute Table
101 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
108 :test_case: no test found
109 :test_file: no test found
111 If a VNF's Heat Orchestration Template
112 'OS::ContrailV2::InterfaceRouteTable' resource
113 'interface_route_table_routes' property
114 'interface_route_table_routes_route' map property parameter name
115 **MUST** follow the format
117 * {vm-type}_{network-role}_route_prefixes
124 :test_case: no test found
125 :test_file: no test found
127 If a VNF's Heat Orchestration Template
128 'OS::ContrailV2::InterfaceRouteTable' resource
129 'interface_route_table_routes' property
130 'interface_route_table_routes_route' map property parameter
131 '{vm-type}_{network-role}_route_prefixes'
132 **MUST** be defined as type 'json'.
139 :test_case: no test found
140 :test_file: no test found
142 If a VNF's Heat Orchestration Template
143 'OS::ContrailV2::InterfaceRouteTable' resource
144 'interface_route_table_routes' property
145 'interface_route_table_routes_route' map property parameter
146 '{vm-type}_{network-role}_route_prefixes'
147 **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's
150 The parameter '{vm-type}_{network-role}_route_prefixes'
151 supports IP addresses in the format:
153 1. Host IP Address (e.g., 10.10.10.10)
155 2. CIDR Notation format (e.g., 10.0.0.0/28)
157 *Example Parameter Definition*
162 {vm-type}_{network-role}_route_prefixes:
164 description: JSON list of Contrail Interface Route Table route prefixes
173 description: Unique name for this VF instance
174 fw_oam_route_prefixes:
176 description: prefix for the ServiceInstance InterfaceRouteTable
177 int_fw_dns_trusted_interface_type:
179 description: service_interface_type for ServiceInstance
183 type: OS::ContrailV2::InterfaceRouteTable
184 depends_on: [resource name of OS::ContrailV2::ServiceInstance]
188 template: VNF_NAME_interface_route_table
190 VNF_NAME: { get_param: vnf_name }
191 interface_route_table_routes:
192 interface_route_table_routes_route: { get_param: fw_oam_route_prefixes }
193 service_instance_refs:
194 - get_resource: <resource name of OS::ContrailV2::ServiceInstance>
195 service_instance_refs_data:
196 - service_instance_refs_data_interface_type: { get_param: oam_interface_type }
198 Resource OS::ContrailV2::InstanceIp
199 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
201 The Contrail resource OS::ContrailV2::InstanceIp has two properties
202 that parameters **MUST** follow an explicit naming convention. The
203 properties are 'instance_ip_address' and 'subnet_uuid'.
205 *Example OS::ContrailV2::InstanceIp Resource*
210 type: OS::ContrailV2::InstanceIp
212 name: { get_param: name }
213 fq_name: { get_param: fq_name }
214 display_name: { get_param: display_name }
215 secondary_ip_tracking_ip:
217 secondary_ip_tracking_ip_ip_prefix: { get_param: secondary_ip_tracking_ip_ip_prefix },
218 secondary_ip_tracking_ip_ip_prefix_len: { get_param: secondary_ip_tracking_ip_ip_prefix_len },
220 instance_ip_address: { get_param: instance_ip_address }
221 instance_ip_mode: { get_param: instance_ip_mode }
222 subnet_uuid: { get_param: subnet_uuid }
223 instance_ip_family: { get_param: instance_ip_family }
226 annotations_key_value_pair:
228 annotations_key_value_pair_key: { get_param: annotations_key_value_pair_key },
229 annotations_key_value_pair_value: { get_param: annotations_key_value_pair_value },
232 instance_ip_local_ip: { get_param: instance_ip_local_ip }
233 instance_ip_secondary: { get_param: instance_ip_secondary }
234 physical_router_refs: [{ get_param: physical_router_refs }]
235 virtual_machine_interface_refs: [{ get_param: virtual_machine_interface_refs }]
236 virtual_network_refs: [{ get_param: virtual_network_refs }]
238 Resource OS::ContrailV2::InstanceIp Property instance_ip_address
239 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
241 A VNF's Heat Orchestration Templates resource 'OS::ContrailV2::InstanceIp'
242 property 'instance_ip_address' parameter
243 **MUST** follow the same requirements
244 that apply to the resource 'OS::Neutron' property 'fixed_ips' map
245 property 'ip_address' parameter.
247 *Example: Contrail Resource OS::ContrailV2::InstanceIp, Property
250 The property instance_ip_address uses the same parameter naming
251 convention as the property fixed_ips and Map Property ip_address in
252 OS::Neutron::Port. The resource is assigning an ONAP SDN-C Assigned IP
253 Address. The {network-role} has been defined as oam_protected to
254 represent an oam protected network and the {vm-type} has been defined as
259 fw_0_oam_protected_vmi_0_IP_0:
260 type: OS::ContrailV2::InstanceIp
262 - fw_0_oam_protected_vmi_0
264 virtual_machine_interface_refs:
265 - get_resource: fw_0_oam_protected_vmi_0
266 virtual_network_refs:
267 - get_param: oam_protected_net_fqdn
268 instance_ip_address: { get_param: [fw_oam_protected_ips, get_param: index ] }
270 Resource OS::ContrailV2::InstanceIp Property subnet_uuid
271 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
273 A VNF's Heat Orchestration Templates resource 'OS::ContrailV2::InstanceIp'
274 property 'subnet_uuid' parameter
275 **MUST** follow the same requirements
276 that apply to the resource 'OS::Neutron' property 'fixed_ips' map
277 property 'subnet'/'subnet_id' parameter.
279 *Example: Contrail Resource OS::ContrailV2::InstanceIp, Property
282 The property instance_ip_address uses the same parameter naming
283 convention as the property fixed_ips and Map Property subnet_id in
284 OS::Neutron::Port. The resource is assigning a Cloud Assigned IP
285 Address. The {network-role} has been defined as "oam_protected" to
286 represent an oam protected network and the {vm-type} has been defined as
291 fw_0_oam_protected_vmi_0_IP_0:
292 type: OS::ContrailV2::InstanceIp
294 - fw_0_oam_protected_vmi_0
296 virtual_machine_interface_refs:
297 - get_resource: fw_0_oam_protected_vmi_0
298 virtual_network_refs:
299 - get_param: oam_protected_net_fqdn
300 subnet_uuid: { get_param: oam_protected_subnet_id }
302 OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs
303 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
305 A VNF's Heat Orchestration Templates resource
306 'OS::ContrailV2::VirtualMachineInterface' map property,
307 virtual_machine_interface_allowed_address_pairs,
308 virtual_machine_interface_allowed_address_pairs_allowed_address_pair,
309 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,
310 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix
311 parameter **MUST** follow the same requirements that apply to the
312 resource 'OS::Neutron::Port' property
313 'allowed_address_pairs', map property 'ip_address' parameter.
315 *Example OS::ContrailV2::VirtualMachineInterface*
320 type: OS::ContrailV2::VirtualMachineInterface
322 name: { get_param: name }
323 fq_name: { get_param: fq_name }
324 ecmp_hashing_include_fields:
326 ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured },
327 ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip },
328 ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip },
329 ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol },
330 ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port },
331 ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port },
333 virtual_machine_interface_host_routes:
335 virtual_machine_interface_host_routes_route:
337 virtual_machine_interface_host_routes_route_prefix: { get_param: virtual_machine_interface_host_routes_route_prefix },
338 virtual_machine_interface_host_routes_route_next_hop: { get_param: virtual_machine_interface_host_routes_route_next_hop },
339 virtual_machine_interface_host_routes_route_next_hop_type: { get_param: virtual_machine_interface_host_routes_route_next_hop_type },
340 virtual_machine_interface_host_routes_route_community_attributes:
342 virtual_machine_interface_host_routes_route_community_attributes_community_attribute: [{ get_param: virtual_machine_interface_host_routes_route_community_attributes_community_attribute }],
346 virtual_machine_interface_mac_addresses:
348 virtual_machine_interface_mac_addresses_mac_address: [{ get_param: virtual_machine_interface_mac_addresses_mac_address }],
350 virtual_machine_interface_dhcp_option_list:
352 virtual_machine_interface_dhcp_option_list_dhcp_option:
354 virtual_machine_interface_dhcp_option_list_dhcp_option_dhcp_option_name: { get_param: virtual_machine_interface_dhcp_option_list_dhcp_option_dhcp_option_name },
355 virtual_machine_interface_dhcp_option_list_dhcp_option_dhcp_option_value: { get_param: virtual_machine_interface_dhcp_option_list_dhcp_option_dhcp_option_value },
356 virtual_machine_interface_dhcp_option_list_dhcp_option_dhcp_option_value_bytes: { get_param: virtual_machine_interface_dhcp_option_list_dhcp_option_dhcp_option_value_bytes },
359 virtual_machine_interface_bindings:
361 virtual_machine_interface_bindings_key_value_pair:
363 virtual_machine_interface_bindings_key_value_pair_key: { get_param: virtual_machine_interface_bindings_key_value_pair_key },
364 virtual_machine_interface_bindings_key_value_pair_value: { get_param: virtual_machine_interface_bindings_key_value_pair_value },
367 virtual_machine_interface_disable_policy: { get_param: virtual_machine_interface_disable_policy }
368 virtual_machine_interface_allowed_address_pairs:
370 virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
372 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
374 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix },
375 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len },
377 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac },
378 virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode },
383 annotations_key_value_pair:
385 annotations_key_value_pair_key: { get_param: annotations_key_value_pair_key },
386 annotations_key_value_pair_value: { get_param: annotations_key_value_pair_value },
389 virtual_machine_interface_fat_flow_protocols:
391 virtual_machine_interface_fat_flow_protocols_fat_flow_protocol:
393 virtual_machine_interface_fat_flow_protocols_fat_flow_protocol_protocol: { get_param: virtual_machine_interface_fat_flow_protocols_fat_flow_protocol_protocol },
394 virtual_machine_interface_fat_flow_protocols_fat_flow_protocol_port: { get_param: virtual_machine_interface_fat_flow_protocols_fat_flow_protocol_port },
397 virtual_machine_interface_device_owner: { get_param: virtual_machine_interface_device_owner }
398 port_security_enabled: { get_param: port_security_enabled }
399 virtual_machine_interface_properties:
401 virtual_machine_interface_properties_service_interface_type: { get_param: virtual_machine_interface_properties_service_interface_type },
402 virtual_machine_interface_properties_interface_mirror:
404 virtual_machine_interface_properties_interface_mirror_traffic_direction: { get_param: virtual_machine_interface_properties_interface_mirror_traffic_direction },
405 virtual_machine_interface_properties_interface_mirror_mirror_to:
407 virtual_machine_interface_properties_interface_mirror_mirror_to_analyzer_name: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_analyzer_name },
408 virtual_machine_interface_properties_interface_mirror_mirror_to_encapsulation: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_encapsulation },
409 virtual_machine_interface_properties_interface_mirror_mirror_to_analyzer_ip_address: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_analyzer_ip_address },
410 virtual_machine_interface_properties_interface_mirror_mirror_to_analyzer_mac_address: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_analyzer_mac_address },
411 virtual_machine_interface_properties_interface_mirror_mirror_to_routing_instance: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_routing_instance },
412 virtual_machine_interface_properties_interface_mirror_mirror_to_udp_port: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_udp_port },
413 virtual_machine_interface_properties_interface_mirror_mirror_to_juniper_header: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_juniper_header },
414 virtual_machine_interface_properties_interface_mirror_mirror_to_nh_mode: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_nh_mode },
415 virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header:
417 virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header_vtep_dst_ip_address: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header_vtep_dst_ip_address },
418 virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header_vtep_dst_mac_address: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header_vtep_dst_mac_address },
419 virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header_vni: { get_param: virtual_machine_interface_properties_interface_mirror_mirror_to_static_nh_header_vni },
423 virtual_machine_interface_properties_local_preference: { get_param: virtual_machine_interface_properties_local_preference },
424 virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: virtual_machine_interface_properties_sub_interface_vlan_tag },
426 display_name: { get_param: display_name }
427 service_health_check_refs: [{ get_param: service_health_check_refs }]
428 routing_instance_refs: [{ get_param: routing_instance_refs }]
429 routing_instance_refs_data:
431 routing_instance_refs_data_direction: { get_param: routing_instance_refs_data_direction },
432 routing_instance_refs_data_vlan_tag: { get_param: routing_instance_refs_data_vlan_tag },
433 routing_instance_refs_data_src_mac: { get_param: routing_instance_refs_data_src_mac },
434 routing_instance_refs_data_dst_mac: { get_param: routing_instance_refs_data_dst_mac },
435 routing_instance_refs_data_mpls_label: { get_param: routing_instance_refs_data_mpls_label },
436 routing_instance_refs_data_service_chain_address: { get_param: routing_instance_refs_data_service_chain_address },
437 routing_instance_refs_data_ipv6_service_chain_address: { get_param: routing_instance_refs_data_ipv6_service_chain_address },
438 routing_instance_refs_data_protocol: { get_param: routing_instance_refs_data_protocol },
440 security_group_refs: [{ get_param: security_group_refs }]
441 physical_interface_refs: [{ get_param: physical_interface_refs }]
442 port_tuple_refs: [{ get_param: port_tuple_refs }]
443 interface_route_table_refs: [{ get_param: interface_route_table_refs }]
444 virtual_machine_interface_refs: [{ get_param: virtual_machine_interface_refs }]
445 virtual_network_refs: [{ get_param: virtual_network_refs }]
446 virtual_machine_refs: [{ get_param: virtual_machine_refs }]
447 qos_config_refs: [{ get_param: qos_config_refs }]
448 virtual_machine: { get_param: virtual_machine }
449 project: { get_param: project }