Skip to content
etsi-nfv-ns.yang 46.7 KiB
Newer Older
submodule etsi-nfv-ns {
  yang-version 1.1;
  belongs-to etsi-nfv {
    prefix nfv;
  }

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
  include etsi-nfv-common;
  include etsi-nfv-vnf;
  include etsi-nfv-pnf;

  description
    "Models for NS according to ETSI GS NFV-IFA 014.";

  revision 2019-03-18 {
    description
      "Initial revision
       Common data structure to support NSD according to:
       ETSI GS NFV-IFA 014 Ed261v252";
    reference
      "ETSI GS NFV-IFA 014 Ed261v252";
  }

  grouping resource-handle {
    leaf vim-id {
      type string;
    }
    leaf resource-provider-id {
      type string;
    }
    leaf resource-id {
      type string;
    }
  }

  grouping nsd {
    list nsd {
      key "id";
      leaf id {
        type string;
        description
          "Identifier of this NSD information element. It Globally
           uniquely identifies an instance of the NSD.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      }
      leaf designer {
        type string;
        description
          "Identifies the designer of the NSD.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      }
      leaf version {
        type string;
        description
          "Identifies the version of the NSD.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      }
      leaf name {
        type string;
        description
          "Provides the human readable name of the NSD.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      }
      leaf invariant-id {
        type string;
        description
          "Identifies an NSD in a version independent manner. This
           attribute is invariant across versions of the network
           service descriptor.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      leaf-list nested-nsd-id {
        must ". != ../id";
        type leafref {
          path "../../nsd/id";
        description
          "References the NSD of a constituent nested NS.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      leaf-list vnfd-id {
        type leafref {
          path "../../vnfd/id";
        description
          "References the VNFD of a constituent VNF.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";

      leaf-list pnfd-id {
	type leafref {
	  path "../../pnfd/id";
	}
        description
          "References the PNFD of a constituent PNF.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";
      }

      list sapd {
        key "id";
        description
          "Provides the descriptor of a service access point of the
           network service.";
        reference
          "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
           information element";

        leaf id {
          type string;
          description
            "Identifier of this Cpd information element.";
          reference
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            "GS NFV IFA014: Section 6.6.3.1 Cpd information element";
        }

        leaf address-assignment {
          type boolean;
          description
            "Specify whether the SAP address assignment is under the
             responsibility of management and orchestration functions
             or not. If it is set to True, management and
             orchestration functions are responsible for assigning
             addresses to the access points instantiated from this
             SAPD.";
          reference
            "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
        leaf virtual-link-desc {
          type leafref {
            path "../../virtual-link-desc/id";
            "References the descriptor of the NS VL instance to
             which the SAP instantiated from this SAPD connects to.";
          reference
            "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
        }

        choice associated-cpd-id {
          container vnf {
            leaf vnfd-id {
              mandatory true;
              type leafref {
                path "../../../../nfv:vnfd/nfv:id";
              }
              must "boolean(../../../vnfd-id[.=current()])";
            }

            leaf ext-cpd-id {
              mandatory true;
              type leafref {
                path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
              }
            }
          }
          container pnf {
            leaf pnfd-id {
              mandatory true;
                type leafref {
                path "../../../../nfv:pnfd/nfv:id";
              }
              must "boolean(../pnfd-id[.=current()])";
            }

            leaf ext-cpd-id {
              mandatory true;
              type leafref {
                path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
              }
            }
          }
          container ns {
            leaf nsd-id {
            mandatory true;
              type leafref {
                path "../../../../nfv:nsd/nfv:id";
              }
              must "boolean(../nsd-id[.=current()])";
	    }
Loading full blame...