Commit a1816e93 authored by Mahesh Jethanandani's avatar Mahesh Jethanandani
Browse files

Contribution NFVSOL(18)000330

Patch to address comments received during NFVSOL#68

Change-Id: I28eff3e9c305fe6961c204727dc9bb3158edfbbc
parent 1adbb7a5
Loading
Loading
Loading
Loading
+178 −0
Original line number Diff line number Diff line
@@ -339,4 +339,182 @@ module etsi-nfv-common {
         information element.";
    }
  }

  grouping security-parameters {
    leaf signature {
      type string;
      description
        "Provides the signature of the signed part of the
         descriptor.";
      reference
        "GS NFV IFA014: Section 6.2.5, SecurityParameters
         information element.";
    }
    leaf algorithm {
      type string;
      description
        "Identifies the algorithm used to compute the signature.";
      reference
        "GS NFV IFA014: Section 6.2.5, SecurityParameters
         information element.";
    }
    leaf certificate {
      type string;
      description
        "Provides a certificate or a reference to a certificate to
         validate the signature.";
      reference
        "GS NFV IFA014: Section 6.2.5, SecurityParameters
         information element.";
    }
  }
  grouping 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
        "Identifier of this Cpd information element.";
      reference
        "GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
    }
    leaf layer-protocol {
      mandatory true;
      type identityref {
        base common:layer-protocol;
      }
      description
        "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.";
    }
    leaf role {
      type identityref {
        base common:cp-role;
      }
      description
        "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.";
    }
    leaf description {
      type string;
      description
        "Human readable description of the connection point";
      reference
        "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 {
        type identityref {
          base common: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
           element.";
      }

      list address-data {
        key "address-type";
        leaf address-type {
          type identityref {
            base common: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.";
          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'";
          leaf ip-address-assignment {
            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
               information element.";
          }
          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
               information element.";
          }
          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
               information element.";
          }
          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
               information element.";
          }
        }
        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
           element.";
      }
    }
    leaf trunk-mode {
      type boolean;
      description
        "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.";
    }
  }
}
+4 −21
Original line number Diff line number Diff line
@@ -20,20 +20,6 @@ submodule etsi-nfv-ns {
       "ETSI GS NFV-IFA 011 Ed251v243";
  }

  grouping security-parameters {
    container security {
      leaf signature {
        type string;
      }
      leaf algorithm {
        type string;
      }
      leaf certificate {
        type string;
      }
    }
  }

  grouping resource-handle {
    leaf vim-id {
      type string;
@@ -92,12 +78,9 @@ submodule etsi-nfv-ns {
           descriptor consists of.";
        leaf vnfd {
          type leafref {
            path "/nfv/vnfd/id";
          }
            path "../../../vnfd/id";
          }
        }
      leaf-list pnfd {
        type string;
      }
      list service-access-point-descriptor {
        key "id";
@@ -226,7 +209,7 @@ submodule etsi-nfv-ns {
        leaf description {
          type string;
        }
        uses security-parameters;
        uses common:security-parameters;
      }
      // vnffgd skipped since not fully specified by the spec
      list monitored-info {
@@ -373,7 +356,7 @@ submodule etsi-nfv-ns {
          key "pnfd";
          leaf pnfd {
            type leafref {
              path "../../../pnfd";
              path "../../../../pnfd/id";
            }
          }
          // no virtual-link-connectivity as we don't have PNFD modelled.
@@ -589,7 +572,7 @@ submodule etsi-nfv-ns {
          }
        }
      }
      uses security-parameters;
      uses common:security-parameters;
    }
  }
}
+120 −0
Original line number Diff line number Diff line
submodule etsi-nfv-pnf {
  belongs-to etsi-nfv {
    prefix nfv;
  }

  /*
   * Import
   */
  import etsi-nfv-common {
    prefix common;
  }

  /*
   * Include
   */
  include etsi-nfv-ns;

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

  revision 2018-06-25 {
    description
      "Initial revision.

       Common data structure to support VNFD according to:
       ETSI GS NFV-IFA 014 Ed251v244";

    reference
      "ETSI GS NFV-IFA 014 Ed251v244";
  }

  grouping pnfd {
    description
      "The Pnfd information element is a deployment template
       enabling on-boarding PNFs and referencing them from an NSD.
       It focuses on connectivity aspects only";
    reference
      "GS NFV-IFA014: Section 6.6.2, Pnfd information element";

    container pnfd {
      leaf id {
        type string;
        description
          "Identifier of this Pnfd information element. It uniquely
           identifies the PNFD.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      leaf function-description {
        type string;
        description
          "Describes the PNF function.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      leaf provider {
        type string;
        description
          "Identifies the provider of the PNFD.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      leaf version {
        type string;
        mandatory true;
        description
          "Identifies the version of the PNFD.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      leaf invariant-id {
        type string;
        description
          "Identifies a PNFD in a version independent manner. This
           attribute is invariant across versions of PNFD.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      leaf name {
        type string;
        description
          "Provides the human readable name of the PNFD.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      list ext-cp {
        key "id";
        uses common:cpd;
        description
          "Specifies the characteristics of one or more connection
           points where to connect the PNF to a VL.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      list security {
        key "signature";
        uses common:security-parameters;
        description
          "Provides a signature to prevent tampering.
           Editor's Note: While IFA014 does specify that the PNFD
           includes a security parameter. SOL001 does not have one.
           We need to harmonize SOL001 & SOL006 on this point.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
      leaf geographical-location-info {
        type string;
        description
          "It provides information about the geographical location
           (e.g. geographic coordinates or address of the building,
           etc.) of the PNF. The cardinality 0 is used when the
           location is unknown.
           Editor's Note: The type is TBD in SOL001. We need to make
           a common SOL001/SOL006 decision.";
        reference
          "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
      }
    }
  }
}
+3 −153
Original line number Diff line number Diff line
@@ -28,156 +28,6 @@ submodule etsi-nfv-vnf {
      "ETSI GS NFV-IFA 011 Ed251v243";
  }

  grouping 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
        "Identifier of this Cpd information element.";
      reference
        "GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
    }
    leaf layer-protocol {
      mandatory true;
      type identityref {
        base common:layer-protocol;
      }
      description
        "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.";
    }
    leaf role {
      type identityref {
        base common:cp-role;
      }
      description
        "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.";
    }
    leaf description {
      type string;
      description
        "Human readable description of the connection point";
      reference
        "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 {
        type identityref {
          base common: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
           element.";
      }

      list address-data {
        key "address-type";
        leaf address-type {
          type identityref {
            base common: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.";
          reference
            "GS NFV IFA011: Section 7.1.3.3, AddressData information
             element.";
        }
        container l2-address-data {
          when "../nfv:address-type='mac-address'";
        }
        container l3-address-data {
          when "../nfv:address-type='ip-address'";
          leaf ip-address-assignment {
            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
               information element.";
          }
          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
               information element.";
          }
          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
               information element.";
          }
          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
               information element.";
          }
        }
        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
           element.";
      }
    }
    leaf trunk-mode {
      type boolean;
      description
        "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.";
    }
  }

  grouping virtual-network-interface-requirements {
    list virtual-network-interface-requirement {
      key "name";
@@ -444,7 +294,7 @@ submodule etsi-nfv-vnf {
              "GS NFV IFA011: Section 7.1.6.4, VduCpd information
               element.";
          }
          uses cpd;
          uses common:cpd;
        }
        leaf virtual-compute-desc {
          type leafref {
@@ -1221,7 +1071,7 @@ submodule etsi-nfv-vnf {
          ext-CP to the VDU's CP.
        */
        uses virtual-network-interface-requirements;
        uses cpd;
        uses common:cpd;
      }

      list deployment-flavor {
@@ -1894,7 +1744,7 @@ submodule etsi-nfv-vnf {
          "GS NFV IFA011: Section 7.1.2 VNFD information element";

        leaf event {
          type common:lifecycle-management-script-event;
          type common:internal-lifecycle-management-script-event;
          description
            "Describes VNF lifecycle event(s) or an external stimulus
             detected on a VNFM reference point.";
+2 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ module etsi-nfv {
    prefix common;
  }
  include etsi-nfv-vnf;
  include etsi-nfv-pnf;
  include etsi-nfv-ns;

  organization
@@ -24,6 +25,6 @@ module etsi-nfv {
  container nfv {
    uses vnfd;
    uses nsd;
    container pnfd {}
    uses pnfd;
  } // nfv
}