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

Addressing bug#91

parent 1e89ad37
Loading
Loading
Loading
Loading
+24 −6
Original line number Original line Diff line number Diff line
@@ -11,17 +11,14 @@
      <name>Firewall VDU</name>
      <name>Firewall VDU</name>
      <int-cpd>
      <int-cpd>
        <id>inside</id>
        <id>inside</id>
        <ext-cpd>inside</ext-cpd>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>Ethernet</layer-protocol>
      </int-cpd>
      </int-cpd>
      <int-cpd>
      <int-cpd>
        <id>management</id>
        <id>management</id>
        <ext-cpd>management</ext-cpd>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>Ethernet</layer-protocol>
      </int-cpd>
      </int-cpd>
      <int-cpd>
      <int-cpd>
        <id>outside</id>
        <id>outside</id>
        <ext-cpd>outside</ext-cpd>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>Ethernet</layer-protocol>
      </int-cpd>
      </int-cpd>
      <virtual-compute-desc>asa-vcd</virtual-compute-desc>
      <virtual-compute-desc>asa-vcd</virtual-compute-desc>
@@ -51,14 +48,26 @@
    </sw-image-desc>
    </sw-image-desc>
    <ext-cpd>
    <ext-cpd>
      <id>inside</id>
      <id>inside</id>
      <int-cpd>
	<vdu-id>firewall</vdu-id>
	<cpd>inside</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>Ethernet</layer-protocol>
    </ext-cpd>
    </ext-cpd>
    <ext-cpd>
    <ext-cpd>
      <id>management</id>
      <id>management</id>
      <int-cpd>
	<vdu-id>firewall</vdu-id>
	<cpd>management</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>Ethernet</layer-protocol>
    </ext-cpd>
    </ext-cpd>
    <ext-cpd>
    <ext-cpd>
      <id>outside</id>
      <id>outside</id>
      <int-cpd>
	<vdu-id>firewall</vdu-id>
	<cpd>outside</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>Ethernet</layer-protocol>
    </ext-cpd>
    </ext-cpd>
    <df>
    <df>
@@ -97,17 +106,14 @@
      <name>Router VDU</name>
      <name>Router VDU</name>
      <int-cpd>
      <int-cpd>
        <id>left</id>
        <id>left</id>
        <ext-cpd>left</ext-cpd>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>Ethernet</layer-protocol>
      </int-cpd>
      </int-cpd>
      <int-cpd>
      <int-cpd>
        <id>management</id>
        <id>management</id>
        <ext-cpd>management</ext-cpd>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>Ethernet</layer-protocol>
      </int-cpd>
      </int-cpd>
      <int-cpd>
      <int-cpd>
        <id>right</id>
        <id>right</id>
        <ext-cpd>right</ext-cpd>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>Ethernet</layer-protocol>
      </int-cpd>
      </int-cpd>
      <virtual-compute-desc>csr-vcd</virtual-compute-desc>
      <virtual-compute-desc>csr-vcd</virtual-compute-desc>
@@ -137,14 +143,26 @@
    </sw-image-desc>
    </sw-image-desc>
    <ext-cpd>
    <ext-cpd>
      <id>left</id>
      <id>left</id>
      <int-cpd>
	<vdu-id>router</vdu-id>
	<cpd>left</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>Ethernet</layer-protocol>
    </ext-cpd>
    </ext-cpd>
    <ext-cpd>
    <ext-cpd>
      <id>management</id>
      <id>management</id>
      <int-cpd>
	<vdu-id>router</vdu-id>
	<cpd>management</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>Ethernet</layer-protocol>
    </ext-cpd>
    </ext-cpd>
    <ext-cpd>
    <ext-cpd>
      <id>right</id>
      <id>right</id>
      <int-cpd>
	<vdu-id>router</vdu-id>
	<cpd>right</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>Ethernet</layer-protocol>
    </ext-cpd>
    </ext-cpd>
    <df>
    <df>
+17 −20
Original line number Original line Diff line number Diff line
@@ -4,10 +4,7 @@ submodule etsi-nfv-ns {
    prefix nfv;
    prefix nfv;
  }
  }


  import etsi-nfv-common {
  include etsi-nfv-common;
    prefix common;
  }

  include etsi-nfv-vnf;
  include etsi-nfv-vnf;
  include etsi-nfv-pnf;
  include etsi-nfv-pnf;


@@ -345,7 +342,7 @@ submodule etsi-nfv-ns {
            "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
            "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
             information element";
             information element";
        }
        }
        uses common:security-parameters;
        uses security-parameters;
      }
      }


      list vnffgd {
      list vnffgd {
@@ -495,7 +492,7 @@ submodule etsi-nfv-ns {
            }
            }
            container ns {
            container ns {
              leaf nsd-id {
              leaf nsd-id {
                must ". = deref(../../ns-profile-id)/../nsd-id" {
                must ". = deref(../../nested-ns-profile-id)/../nsd-id" {
                }
                }


                type leafref {
                type leafref {
@@ -755,7 +752,7 @@ submodule etsi-nfv-ns {
          }
          }


          leaf min-number-of-instances {
          leaf min-number-of-instances {
            mandatory true;
            default 1;
            type uint16;
            type uint16;
            description
            description
              "Minimum number of instances of the VNF based on this
              "Minimum number of instances of the VNF based on this
@@ -766,7 +763,7 @@ submodule etsi-nfv-ns {
          }
          }


          leaf max-number-of-instances {
          leaf max-number-of-instances {
            mandatory true;
            default 1;
            type uint16;
            type uint16;
            description
            description
              "Maximum number of instances of the VNF based on this
              "Maximum number of instances of the VNF based on this
@@ -776,7 +773,7 @@ submodule etsi-nfv-ns {
               element";
               element";
          }
          }


          uses common:local-affinity-or-anti-affinity-rule;
          uses local-affinity-or-anti-affinity-rule;


          list affinity-or-anti-affinity-group {
          list affinity-or-anti-affinity-group {
            key "id";
            key "id";
@@ -988,7 +985,7 @@ submodule etsi-nfv-ns {
               information element";
               information element";
          }
          }


          uses common:local-affinity-or-anti-affinity-rule;
          uses local-affinity-or-anti-affinity-rule;


          list affinity-or-anti-affinity-group {
          list affinity-or-anti-affinity-group {
            key "id";
            key "id";
@@ -1015,7 +1012,7 @@ submodule etsi-nfv-ns {
            reference
            reference
              "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
              "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
               information element";
               information element";
            uses common:link-bitrate-requirements;
            uses link-bitrate-requirements;
          }
          }
          container min-bitrate-requirements {
          container min-bitrate-requirements {
            description
            description
@@ -1024,7 +1021,7 @@ submodule etsi-nfv-ns {
            reference
            reference
              "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
              "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
               information element";
               information element";
            uses common:link-bitrate-requirements;
            uses link-bitrate-requirements;
          }
          }
        }
        }


@@ -1104,7 +1101,7 @@ submodule etsi-nfv-ns {


          leaf affinity-type {
          leaf affinity-type {
            mandatory true;
            mandatory true;
            type common:affinity-type;
            type affinity-type;
            description
            description
              "Specifies the type of relationship that the members of
              "Specifies the type of relationship that the members of
               the group have: 'affinity' or 'anti-affinity.'";
               the group have: 'affinity' or 'anti-affinity.'";
@@ -1115,7 +1112,7 @@ submodule etsi-nfv-ns {


          leaf affinity-scope {
          leaf affinity-scope {
            mandatory true;
            mandatory true;
            type common:affinity-scope;
            type affinity-scope;
            description
            description
              "Specifies the scope of the affinity or anti-affinity
              "Specifies the scope of the affinity or anti-affinity
               relationship e.g. a NFVI node, an NFVI PoP, etc.";
               relationship e.g. a NFVI node, an NFVI PoP, etc.";
@@ -1179,7 +1176,7 @@ submodule etsi-nfv-ns {
            }
            }


            leaf number-of-instances {
            leaf number-of-instances {
              mandatory true;
              default 1;
              type uint32;
              type uint32;
              description
              description
                "Specifies the number of VNF instances required for
                "Specifies the number of VNF instances required for
@@ -1212,7 +1209,7 @@ submodule etsi-nfv-ns {
                 VirtualLinkToLevelMapping information element";
                 VirtualLinkToLevelMapping information element";
            }
            }


            uses common:link-bitrate-requirements;
            uses link-bitrate-requirements;
          }
          }


          list ns-to-level-mapping {
          list ns-to-level-mapping {
@@ -1239,7 +1236,7 @@ submodule etsi-nfv-ns {
            }
            }


            leaf number-of-instances {
            leaf number-of-instances {
              mandatory true;
              default 1;
              type uint32;
              type uint32;
              description
              description
                "Specifies the number of nested NS instances required
                "Specifies the number of nested NS instances required
@@ -1345,7 +1342,7 @@ submodule etsi-nfv-ns {
          }
          }
          leaf min-number-of-instances {
          leaf min-number-of-instances {
            type uint16;
            type uint16;
            mandatory true;
            default 1;
            description
            description
              "Minimum number of nested NS instances based on the
              "Minimum number of nested NS instances based on the
               referenced NSD that is permitted to exist for this
               referenced NSD that is permitted to exist for this
@@ -1356,7 +1353,7 @@ submodule etsi-nfv-ns {
          }
          }
          leaf max-number-of-instances {
          leaf max-number-of-instances {
            type uint16;
            type uint16;
            mandatory true;
            default 1;
            description
            description
              "Maximum number of nested NS instances based on the
              "Maximum number of nested NS instances based on the
               referenced NSD that is permitted to exist for this
               referenced NSD that is permitted to exist for this
@@ -1567,7 +1564,7 @@ submodule etsi-nfv-ns {
          }
          }
	}
	}
      }
      }
      uses common:security-parameters;
      uses security-parameters;
    }
    }
  }
  }
}
}
+124 −10
Original line number Original line Diff line number Diff line
@@ -56,7 +56,7 @@ submodule etsi-nfv-vnf {
      }
      }


      leaf support-mandatory {
      leaf support-mandatory {
        mandatory true;
        default "false";
        type boolean;
        type boolean;
        description
        description
          "Indicates whether fulfilling the constraint is
          "Indicates whether fulfilling the constraint is
@@ -623,7 +623,7 @@ submodule etsi-nfv-vnf {
            type uint16 {
            type uint16 {
              range "1..max";
              range "1..max";
            }
            }
            mandatory true;
            default 1;
            description
            description
              "Number of virtual CPUs.";
              "Number of virtual CPUs.";
            reference
            reference
@@ -738,7 +738,7 @@ submodule etsi-nfv-vnf {
            enum "swap";
            enum "swap";
            enum "ephemeral";
            enum "ephemeral";
          }
          }
          mandatory true;
          default "root";
          description
          description
            "Type of virtualised storage resource (e.g. volume,
            "Type of virtualised storage resource (e.g. volume,
             object).";
             object).";
@@ -836,7 +836,7 @@ submodule etsi-nfv-vnf {
             information element.";
             information element.";
        }
        }
        leaf container-format {
        leaf container-format {
          mandatory true;
          default "bare";
          type enumeration {
          type enumeration {
            enum "aki" {
            enum "aki" {
              description
              description
@@ -876,7 +876,7 @@ submodule etsi-nfv-vnf {
             information element.";
             information element.";
        }
        }
        leaf disk-format {
        leaf disk-format {
          mandatory true;
          default "qcow2";
          type enumeration {
          type enumeration {
            enum "aki" {
            enum "aki" {
              description
              description
@@ -974,7 +974,7 @@ submodule etsi-nfv-vnf {
             information element.";
             information element.";
        }
        }
        leaf image {
        leaf image {
          mandatory true;
          default ".";
          type inet:uri;
          type inet:uri;
          description
          description
            "This is a reference to the actual software image.
            "This is a reference to the actual software image.
@@ -1148,10 +1148,12 @@ submodule etsi-nfv-vnf {
              }
              }
            }
            }
            leaf cpd {
            leaf cpd {
              type leafref {
                path "deref(../vdu-id)/../int-cpd/id";
                path "deref(../vdu-id)/../int-cpd/id";
              }
              }
            }
            }
          }
          }
        }
        uses virtual-network-interface-requirements;
        uses virtual-network-interface-requirements;
        uses cpd;
        uses cpd;
      }
      }
@@ -1201,7 +1203,7 @@ submodule etsi-nfv-vnf {
          }
          }
          leaf min-number-of-instances {
          leaf min-number-of-instances {
            type uint16;
            type uint16;
            mandatory true;
            default 1;
            description
            description
              "Minimum number of instances of the VNFC based on this
              "Minimum number of instances of the VNFC based on this
               VDU that is permitted to exist for this flavour.";
               VDU that is permitted to exist for this flavour.";
@@ -1211,7 +1213,7 @@ submodule etsi-nfv-vnf {
          }
          }
          leaf max-number-of-instances {
          leaf max-number-of-instances {
            type uint16;
            type uint16;
            mandatory true;
            default 1;
            must ". >= ../nfv:min-number-of-instances";
            must ". >= ../nfv:min-number-of-instances";
            reference
            reference
              "GS NFV IFA011: Section 7.1.8.3, VduProfile information
              "GS NFV IFA011: Section 7.1.8.3, VduProfile information
@@ -1615,7 +1617,7 @@ submodule etsi-nfv-vnf {
              must ". >= ../../../../nfv:df/" +
              must ". >= ../../../../nfv:df/" +
                   "nfv:vdu-profile[id=current()/../nfv:id]/" +
                   "nfv:vdu-profile[id=current()/../nfv:id]/" +
                   "nfv:min-number-of-instances";
                   "nfv:min-number-of-instances";
              mandatory true;
              default 1;
              description
              description
                "Number of instances of VNFC based on this VDU to
                "Number of instances of VNFC based on this VDU to
                 deploy for this level.";
                 deploy for this level.";
@@ -2034,6 +2036,118 @@ submodule etsi-nfv-vnf {
               AffinityOrAntiAffinityGroup information element";
               AffinityOrAntiAffinityGroup information element";
          }
          }
        }
        }

        list indicator {
          key "id";

          leaf id {
            type string;
            description
              "Unique identifier.";
            reference
              "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
               information element";
          }

          leaf name {
            type string;
            description
              "The human readable name of the VnfIndicator.";
            reference
              "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
               information element";
          }

          leaf indicator-value {
            type string;
            description
              "Defines the allowed values or value ranges of this
               indicator.";
            reference
              "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
               information element";
          }

          leaf source {
            type enumeration {
              enum vnf;
              enum em;
              enum both;
            }
            description
              "Describe the source of the indicator. The possible
               values are:
               • VNF.
               • EM.
               • Both.

               This tells the consumer where to send the subscription
               request.";
            reference
              "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
               information element";
          }

          description
            "Declares the VNF indicators that are supported by this
             VNF (specific to this DF).";
          reference
            "GS NFV IFA011: Section 7.1.8.2 VnfDf information
             element";
        }

        list supported-vnf-interfaces {
          key "name";

          leaf name {
            type enumeration {
              enum vnf-configuration;
              enum vnf-indicator;
            }
            description
              "Identifies an interface produced by the VNF. Valid
               values:
               - VNF_CONFIGURATION
               - VNF_INDICATOR";
            reference
              "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
               information element";
          }

          leaf-list cpd-id {
            type leafref {
              path "../../../ext-cpd/id";
            }
            description
              "References one or more CPDs from which to instantiate
               external CPs through which interface endpoints on the
               VNF side can be reached by the VNFM.";
            reference
              "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
               information element";
          }

          list interface-details {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
          }

          description
            "Indicates which interfaces the VNF produces and provides
             additional details on how to access the interface
             endpoints.";
          reference
            "GS NFV IFA011: Section 7.1.8.2 VnfDf information
             element";
        }

        list monitoring-parameter {
        list monitoring-parameter {
          key "id";
          key "id";