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

  include etsi-nfv-common;

  import ietf-inet-types {
    prefix inet;
  }
  import ietf-yang-types {
    prefix yang;
  }

  description
    "Models for VNFD according to GS NFV-IFA 011.";

  revision 2019-03-18 {
    description
      "Initial revision.

       Common data structure to support VNFD according to:
       VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
      "ETSI GS NFV-IFA 011 Ed261v254";
  }

  grouping virtual-network-interface-requirements {
    list virtual-network-interface-requirement {
      key "name";
      description
        "Specifies requirements on a virtual network interface
         realising the CPs instantiated from this CPD.";
      reference
        "GS NFV-IFA011: Section 7.1.6.4, VduCpd information
         element";

      leaf name {
        type string;
        description
          "Provides a human readable name for the requirement.";
        reference
          "GS NFV-IFA011: Section 7.1.6.6,
           VirtualNetworkInterfaceRequirements information element";
      }
      leaf description {
        type string;
        description
          "Provides a human readable description of the requirement.";
        reference
          "GS NFV-IFA011: Section 7.1.6.6,
           VirtualNetworkInterfaceRequirements information element";
      }
      leaf support-mandatory {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        default "false";
        type boolean;
        description
          "Indicates whether fulfilling the constraint is
           mandatory (true) for successful operation or desirable
           (false).";
        reference
          "GS NFV-IFA011: Section 7.1.6.6,
           VirtualNetworkInterfaceRequirements information element";
      }
      list network-interface-requirements {
        key "key";
        leaf key {
          type string;
        }
        leaf value {
          type string;
        }
        description
          "The network interface requirements. An element from an
           array of key-value pairs that articulate the network
           interface deployment requirements.";
        reference
          "GS NFV-IFA011: Section 7.1.6.6,
           VirtualNetworkInterfaceRequirements information element";
      }
      leaf niclo-requirements {
        type leafref {
          path "/nfv/vnfd/virtual-compute-descriptor/id";
        }
        description
          "This references (couples) the CPD with any logical node I/O
           requirements (for network devices) that may have been
           created. Linking these attributes is necessary so that so
           that I/O requirements that need to be articulated at the
           logical node level can be associated with the network
           interface requirements associated with the CPD.";
        reference
          "GS NFV-IFA011: Section 7.1.6.6,
           VirtualNetworkInterfaceRequirements information element";
      }
    }
  }

  // This grouping definition is for use within Vnfd as defined in
  // IFA011. A similar definition of Cpd exists in IFA014, but
  // that is for use with Sapd and Pnfd. Do not use this grouping
  // for that.
  grouping vnf-cpd {
    description
      "A Cpd information element describes network
       connectivity to a compute resource or a VL.";
    reference
      "GS NFC IFA011: Section 7.1.6.3 Cpd Information
       Element";
    leaf id {
      type string;
      description
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "Identifier of this Cpd information element.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
    }
    leaf layer-protocol {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
      default Ethernet;
      type identityref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        base layer-protocol;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "Identifies which protocol the CP uses for connectivity
         purposes (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire,
         etc.).";
      reference
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
    }
    leaf role {
      type identityref {
	base cp-role;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "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
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
    }
    leaf description {
      type string;
      description
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "Human readable description of the connection point";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        "GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
    }
    container protocol {
      description
	"Identifies the protocol layering information the CP uses for
         connectivity purposes and associated information. There shall
         be one cpProtocol for each layer protocol as indicated by the
         attribute layerProtocol.";
      reference
	"GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
      leaf associated-layer-protocol {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        type identityref {
          base layer-protocol;
        }
        description
          "One of the values of the attribute layerProtocol of the Cpd
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        reference
          "GS NFV IFA011: Section 7.1.6.8, CpProtocolData information
           element.";
      }

      list address-data {
	key "address-type";
	leaf address-type {
	  type identityref {
	    base address-type;
	  }
	  description
	    "Describes the type of the address to be assigned to the CP
             instantiated from the parent CPD.
             Value:
             • MAC address.
             • IP address.
             • …
             The content type shall be aligned with the address type
             supported by the layerProtocol attribute of the parent CPD.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          reference
            "GS NFV IFA011: Section 7.1.3.3, AddressData information
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        }
        container l2-address-data {
          when "../address-type='mac-address'";
        }
        container l3-address-data {
          when "../address-type='ip-address'";
	  leaf ip-address-assignment {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            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. ";
Loading full blame...