tosca_definitions_version: tosca_simple_yaml_1_0 description: example for a NSD. imports: topology_template: inputs: network_cidr: type: string default: 10.101.0.0/24 description: CIDR for the network network_start_ip: type: string default: 10.101.0.100 description: Start IP for the allocation pool network_end_ip: type: string default: 10.101.0.150 description: End IP for the allocation pool node_templates: VNF1: type: tosca.nodes.nfv.VNF properties: attributes: type: dpi address: port: 40000 nsh_aware: true requirements: - host: vnf_container1 vnf_container1: type: tosca.nodes.Compute capabilities: # Host container properties host: properties: num_cpus: 2 disk_size: 10 GB mem_size: 512 MB # Guest Operating System properties os: properties: # host Operating System image properties architecture: x86_64 type: sfc_client distribution: ubuntu version: 14.04 CP11: #endpoints of VNF1 linked to VL1 type: tosca.nodes.nfv.CP properties: attributes: IP_address: interface: eth0 port: 30000 requirements: - virtualBinding: VNF1 - virtualLink: VL1 VNF2: type: tosca.nodes.nfv.VNF properties: attributes: type: firewall address: port: 40000 nsh_aware: true requirements: - host: vnf_container2 vnf_container2: type: tosca.nodes.Compute capabilities: # Host container properties host: properties: num_cpus: 2 disk_size: 10 GB mem_size: 512 MB # Guest Operating System properties os: properties: # host Operating System image properties architecture: x86_64 type: sfc_client distribution: ubuntu version: 14.04 CP21: #endpoints of VNF2 linked to VL1 type: tosca.nodes.nfv.CP properties: attributes: IP_address: interface: eth0 port: 30000 requirements: - virtualBinding: VNF2 - virtualLink: VL1 VNF3: type: tosca.nodes.nfv.VNF properties: attributes: type: nat address: port: 40000 nsh_aware: true requirements: - host: vnf_container3 vnf_container3: type: tosca.nodes.Compute capabilities: # Host container properties host: properties: num_cpus: 2 disk_size: 10 GB mem_size: 512 MB # Guest Operating System properties os: properties: # host Operating System image properties architecture: x86_64 type: sfc_client distribution: ubuntu version: 14.04 my_network: type: tosca.nodes.network.Network properties: ip_version: 4 cidr: { get_input: network_cidr } start_ip: { get_input: network_start_ip } end_ip: { get_input: network_end_ip } my_port1: type: tosca.nodes.network.Port requirements: - binding: node: vnf_container1 - link: node: my_network my_port2: type: tosca.nodes.network.Port requirements: - binding: node: vnf_container2 - link: node: my_network my_port3: type: tosca.nodes.network.Port requirements: - binding: node: vnf_container3 - link: node: my_network CP31: #endpoints of VNF3 linked to VL2 type: tosca.nodes.nfv.CP properties: attributes: IP_address: port: 30000 interface: eth0 requirements: - virtualBinding: VNF3 - virtualLink: VL1 VL1: type: tosca.nodes.nfv.VL properties: vendor: HP attributes: type: ip transport_type: vxlan-gpe Forwarding_path1: type: tosca.nodes.nfv.FP description: the path (CP11->CP21->CP31) properties: policy: requirements: - forwarder: CP11 - forwarder: CP21 - forwarder: CP31 groups: VNF_FG1: type: tosca.groups.nfv.VNFFG description: VNF forwarding graph properties: vendor: version: connection_point: [ CP11, CP21, CP31 ] dependent_virtual_link: [ VL1 ] constituent_vnfs: [ VNF1, VNF2, VNF3 ] members: [ Forwarding_path1 ] outputs: vnf1_ip: description: The private IP address of the VNF container1. value: { get_attribute: [vnf_container1, private_address] } vnf2_ip: description: The private IP address of the VNF container2. value: { get_attribute: [vnf_container2, private_address] } vnf3_ip: description: The private IP address of the VNF container3. value: { get_attribute: [vnf_container3, private_address] }