From 40c65745093bbaf8f9dea5b6d7d9332264a938da Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Wed, 19 Dec 2018 18:52:07 -0800 Subject: [PATCH] Fix for bug#90 --- src/yang/etsi-nfv-vnf.yang | 185 ++++++++++++++++++------------------- 1 file changed, 90 insertions(+), 95 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 4ed8218..a3ee11e 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -112,40 +112,40 @@ submodule etsi-nfv-vnf { leaf id { type string; description - "Identifier of this Cpd information element."; + "Identifier of this Cpd information element."; reference - "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; + "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } leaf layer-protocol { mandatory true; type identityref { - base layer-protocol; + base layer-protocol; } description - "Identifies which protocol the CP uses for connectivity + "Identifies which protocol the CP uses for connectivity purposes (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire, etc.)."; reference - "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; + "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } leaf role { type identityref { base cp-role; } description - "Identifies the role of the port in the context of the + "Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS. For example a VNF with a tree flow pattern within the VNF will have legal cpRoles of ROOT and LEAF."; reference - "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; + "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } leaf description { type string; description - "Human readable description of the connection point"; + "Human readable description of the connection point"; reference - "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; + "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } container protocol { description @@ -156,14 +156,14 @@ submodule etsi-nfv-vnf { reference "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; leaf associated-layer-protocol { - type identityref { - base layer-protocol; - } - description - "One of the values of the attribute layerProtocol of the Cpd + type identityref { + base layer-protocol; + } + description + "One of the values of the attribute layerProtocol of the Cpd IE."; - reference - "GS NFV IFA011: Section 7.1.6.8, CpProtocolData information + reference + "GS NFV IFA011: Section 7.1.6.8, CpProtocolData information element."; } @@ -182,74 +182,74 @@ submodule etsi-nfv-vnf { • … The content type shall be aligned with the address type supported by the layerProtocol attribute of the parent CPD."; - reference - "GS NFV IFA011: Section 7.1.3.3, AddressData information + reference + "GS NFV IFA011: Section 7.1.3.3, AddressData information element."; - } - container l2-address-data { - when "../address-type='mac-address'"; - } - container l3-address-data { - when "../address-type='ip-address'"; + } + container l2-address-data { + when "../address-type='mac-address'"; + } + container l3-address-data { + when "../address-type='ip-address'"; leaf ip-address-assignment { - type boolean; - description - "Specify if the address assignment is the responsibility + type boolean; + description + "Specify if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility. "; - reference - "GS NFV IFA011: Section 7.1.3.4, L3AddressData + reference + "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; - } - leaf floating-ip-activated { - type boolean; - description - "Specify if the floating IP scheme is activated on the CP + } + leaf floating-ip-activated { + type boolean; + description + "Specify if the floating IP scheme is activated on the CP or not."; - reference - "GS NFV IFA011: Section 7.1.3.4, L3AddressData + reference + "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } - leaf ip-address-type { - type enumeration { - enum "ipv4"; - enum "ipv6"; - } - description - "Define address type. The address type should be aligned + leaf ip-address-type { + type enumeration { + enum "ipv4"; + enum "ipv6"; + } + description + "Define address type. The address type should be aligned with the address type supported by the layerProtocol attribute of the parent VnfExtCpd."; - reference - "GS NFV IFA011: Section 7.1.3.4, L3AddressData + reference + "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; - } - leaf number-of-ip-addresses { - type uint32; - description - "Minimum number of IP addresses to be assigned based on + } + leaf number-of-ip-addresses { + type uint32; + description + "Minimum number of IP addresses to be assigned based on this L3AddressData information element."; - reference - "GS NFV IFA011: Section 7.1.3.4, L3AddressData + reference + "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; - } - } - description - "The AddressData information element supports providing + } + } + description + "The AddressData information element supports providing information about the addressing scheme and parameters applicable to a CP."; - reference - "GS NFV IFA011: Section 7.1.3.3, AddressData information + reference + "GS NFV IFA011: Section 7.1.3.3, AddressData information element."; } } leaf trunk-mode { type boolean; description - "Information about whether the CP instantiated from this CPD + "Information about whether the CP instantiated from this CPD is in Trunk mode (802.1Q or other)."; reference - "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; + "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } } @@ -394,30 +394,18 @@ submodule etsi-nfv-vnf { reference "GS NFV IFA011: Section 7.1.6.2, Vdu information element"; - choice cp-connection { - mandatory true; - description - "A connection point must either connect to an internal - virtual link or to an external connection points."; - leaf int-virtual-link-desc { - type leafref { - path "../../../nfv:int-virtual-link-desc/nfv:id"; - } - description - "Reference of the internal VLD which this internal CPD - connects to."; - reference - "GS NFV IFA011: Section 7.1.6.4, VduCpd information - element"; - } - leaf ext-cpd { - description - "Connect to an external connection point"; - type leafref { - path "../../../nfv:ext-cpd/nfv:id"; - } + leaf int-virtual-link-desc { + type leafref { + path "../../../nfv:int-virtual-link-desc/nfv:id"; } + description + "Reference of the internal VLD which this internal CPD + connects to."; + reference + "GS NFV IFA011: Section 7.1.6.4, VduCpd information + element"; } + leaf bitrate-requirement { type uint64; units "Mbps"; @@ -1268,21 +1256,28 @@ submodule etsi-nfv-vnf { reference "GS NFV IFA011: Section 7.1.2, VNFD information element."; - leaf int-virtual-link-desc { - description - "Reference to the internal Virtual Link Descriptor (VLD) - to which CPs instantiated from this external CP - Descriptor (CPD) connect. Either intVirtualLinkDesc or - intCpd shall be present."; - type leafref { - path "../../nfv:int-virtual-link-desc/nfv:id"; + choice cp-connection { + leaf int-virtual-link-desc { + description + "Reference to the internal Virtual Link Descriptor (VLD) + to which CPs instantiated from this external CP + Descriptor (CPD) connect. Either intVirtualLinkDesc or + intCpd shall be present."; + type leafref { + path "../../nfv:int-virtual-link-desc/nfv:id"; + } + } + container int-cpd { + leaf vdu-id { + type leafref { + path "../../../vdu/id"; + } + } + leaf cpd { + path "deref(../vdu-id)/../int-cpd/id"; + } } } - /* - intCpd - we reference from the VDU's CP to the ext-CP instead of the - ext-CP to the VDU's CP. - */ uses virtual-network-interface-requirements; uses vnf-cpd; } -- GitLab