Skip to content
etsi-nfv-vnf.yang 76.8 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 2018-06-19 {
    description
      "Initial revision.

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

  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 {
        mandatory true;
        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";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
      leaf nicio-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 {
      mandatory true;
      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
Loading full blame...