| /* |
| Copyright 2019 Whitestack LLC |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| module ip-profiles { |
| yang-version 1.1; |
| namespace "urn:etsi:osm:yang:augments:ip-profiles"; |
| prefix "ip-profiles"; |
| |
| import etsi-nfv-nsd { |
| prefix nsd; |
| } |
| |
| import ietf-inet-types { |
| prefix inet; |
| } |
| |
| import etsi-nfv-descriptors { |
| prefix nfv; |
| } |
| |
| grouping extended-vld-protocol-data{ |
| container virtual-link-protocol-data { |
| leaf associated-layer-protocol { |
| type identityref { |
| base nfv:layer-protocol; |
| } |
| description |
| "One of the values of the attribute layerProtocol of |
| the ConnectivityType IE."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.13, |
| VirtualLinkProtocolData information element."; |
| } |
| |
| container l2-protocol-data { |
| when "(../associated-layer-protocol = 'Ethernet') or " + |
| "(../associated-layer-protocol = 'MPLS') or " + |
| "(../associated-layer-protocol = 'ODU2') or " + |
| "(../associated-layer-protocol = 'Pseudo-Wire')"; |
| |
| leaf name { |
| type string; |
| description |
| "Network name associated with this L2 protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.14, |
| L2ProtocolData information element."; |
| } |
| |
| leaf network-type { |
| type enumeration { |
| enum flat; |
| enum vlan; |
| enum vxlan; |
| enum gre; |
| } |
| description |
| "Specifies the network type for this L2 protocol. |
| Possible values: FLAT, VLAN, VXLAN, GRE."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.14, |
| L2ProtocolData information element."; |
| } |
| |
| leaf vlan-transparent { |
| type boolean; |
| description |
| "Specifies whether to support VLAN transparency for |
| this L2 protocol or not."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.14, |
| L2ProtocolData information element."; |
| } |
| |
| leaf mtu { |
| type uint16; |
| description |
| "Specifies the maximum transmission unit (MTU) value |
| for this L2 protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.14, |
| L2ProtocolData information element."; |
| } |
| description |
| "Specifies the L2 protocol data for this virtual link. |
| Shall be present when the associatedLayerProtocol |
| attribute indicates a L2 protocol and shall be absent |
| otherwise."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.13, |
| VirtualLinkProtocolData information element."; |
| } |
| |
| container l3-protocol-data { |
| when "(../associated-layer-protocol = 'IPv4') or " + |
| "(../associated-layer-protocol = 'IPv6')"; |
| |
| leaf name { |
| type string; |
| description |
| "Network name associated with this L3 protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| |
| leaf ip-version { |
| type enumeration { |
| enum ipv4; |
| enum ipv6; |
| } |
| default "ipv4"; |
| description |
| "Specifies IP version of this L3 protocol. |
| Value: |
| • IPV4. |
| • IPV6."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| |
| leaf cidr { |
| type string; |
| description |
| "Specifies the CIDR (Classless InterDomain Routing) |
| of this L3 protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| |
| leaf-list ip-allocation-pools { |
| type string; |
| description |
| "Specifies the allocation pools with start and end |
| IP addresses for this L3 protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| |
| leaf gateway-ip { |
| type inet:ip-address; |
| description |
| "Specifies the gateway IP address for this L3 |
| protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| |
| leaf dhcp-enabled { |
| type boolean; |
| default "true"; |
| description |
| "Indicates whether DHCP (Dynamic Host Configuration |
| Protocol) is enabled or disabled for this L3 |
| protocol."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| |
| leaf ipv6-address-mode { |
| when "../ip-version = 'ipv6'"; |
| type enumeration { |
| enum slaac; |
| enum dhcpv6-stateful; |
| enum dhcpv6-stateless; |
| } |
| description |
| "Specifies IPv6 address mode. Possible values: |
| • SLAAC. |
| • DHCPV6-STATEFUL. |
| • DHCPV6-STATELESS. |
| May be present when the value of the ipVersion |
| attribute is 'IPV6' and shall be absent otherwise."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.15, |
| L3ProtocolData information element."; |
| } |
| description |
| "Specifies the L3 protocol data for this virtual link. |
| Shall be present when the associatedLayerProtocol |
| attribute indicates a L3 protocol and shall be absent |
| otherwise."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.13, |
| VirtualLinkProtocolData information element."; |
| } |
| description |
| "Specifies the protocol data for a VL instantiated |
| according to this profile. Cardinality 0 is used when |
| no protocol data needs to be specified."; |
| reference |
| "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile |
| information element."; |
| } |
| } |
| |
| augment "/nsd:nsd/nsd:nsd/nsd:df/nsd:virtual-link-profile" { |
| uses extended-vld-protocol-data; |
| } |
| } |