Commit 44e08987 authored by Mahesh Jethanandani's avatar Mahesh Jethanandani
Browse files

Updated complex example to comply with ETSI nomenclature and to align with the latest model

parents a4ee7816 d67cd24d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
# https://forge.etsi.org/etsi-software-license

YANG_MODULES="yang/yang/*"
OUTPUT="etsi-nfv.html"
OUTPUT="etsi-nfv-descriptors.html"
IMG_NAME="sol006"
VERSION=latest
IMG="$IMG_NAME:$VERSION"
+40 −26
Original line number Diff line number Diff line
<nfv xmlns="urn:etsi:params:xml:ns:yang:etsi-nfv">
<nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors">
  <vnfd>
    <id>complex-vnf</id>
    <provider>My Company</provider>
@@ -12,12 +12,12 @@
      <int-cpd>
        <id>internal</id>
        <int-virtual-link-desc>internal-vl</int-virtual-link-desc>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>mgmt</id>
        <int-virtual-link-desc>mgmt</int-virtual-link-desc>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <virtual-compute-desc>CP</virtual-compute-desc>
      <virtual-storage-desc>root</virtual-storage-desc>
@@ -29,12 +29,12 @@
      <int-cpd>
        <id>internal</id>
        <int-virtual-link-desc>internal-vl</int-virtual-link-desc>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>mgmt</id>
        <int-virtual-link-desc>mgmt</int-virtual-link-desc>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <virtual-compute-desc>CP</virtual-compute-desc>
      <virtual-storage-desc>root</virtual-storage-desc>
@@ -45,16 +45,16 @@
      <name>data-plane</name>
      <int-cpd>
        <id>in</id>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>internal</id>
        <int-virtual-link-desc>internal-vl</int-virtual-link-desc>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>out</id>
        <layer-protocol>IPv4</layer-protocol>
        <layer-protocol>ipv4</layer-protocol>
      </int-cpd>
      <virtual-compute-desc>DP</virtual-compute-desc>
      <virtual-storage-desc>root</virtual-storage-desc>
@@ -80,28 +80,42 @@
    </virtual-compute-desc>
    <virtual-storage-descriptor>
      <id>root</id>
      <type-of-storage>root</type-of-storage>
      <type-of-storage>root-storage</type-of-storage>
      <size-of-storage>10</size-of-storage>
    </virtual-storage-descriptor>
    <sw-image-desc>
      <id>CP</id>
      <name>CP</name>
      <version>1.1</version>
      <checksum>
	<algorithm>sha-224</algorithm>
	<hash>deadbeef</hash>
      </checksum>
      <container-format>bare</container-format>
      <disk-format>qcow2</disk-format>
      <min-ram>2.0</min-ram>
      <size>1</size>
      <image>http://mycompany.images.com/control-plane.qcow2</image>
    </sw-image-desc>
    <sw-image-desc>
      <id>DP</id>
      <name>DP</name>
      <version>1.1</version>
      <checksum>
	<algorithm>sha-224</algorithm>
	<hash>deadbeef</hash>
      </checksum>
      <container-format>bare</container-format>
      <disk-format>qcow2</disk-format>
      <min-ram>2.0</min-ram>
      <size>1</size>
      <image>http://mycompany.images.com/data-plane.qcow2</image>
    </sw-image-desc>
    <int-virtual-link-desc>
      <id>internal-vl</id>
      <connectivity-type>
        <layer-protocol>
          <protocol>IPv4</protocol>
          <protocol>ipv4</protocol>
        </layer-protocol>
      </connectivity-type>
    </int-virtual-link-desc>
@@ -109,7 +123,7 @@
      <id>mgmt</id>
      <connectivity-type>
        <layer-protocol>
          <protocol>IPv4</protocol>
          <protocol>ipv4</protocol>
        </layer-protocol>
      </connectivity-type>
    </int-virtual-link-desc>
@@ -119,12 +133,12 @@
        <vdu-id>data-plane</vdu-id>
        <cpd>in</cpd>
      </int-cpd>
      <layer-protocol>IPv4</layer-protocol>
      <layer-protocol>ipv4</layer-protocol>
    </ext-cpd>
    <ext-cpd>
      <id>mgmt</id>
      <int-virtual-link-desc>mgmt</int-virtual-link-desc>
      <layer-protocol>IPv4</layer-protocol>
      <layer-protocol>ipv4</layer-protocol>
    </ext-cpd>
    <ext-cpd>
      <id>out</id>
@@ -132,7 +146,7 @@
        <vdu-id>data-plane</vdu-id>
        <cpd>out</cpd>
      </int-cpd>
      <layer-protocol>IPv4</layer-protocol>
      <layer-protocol>ipv4</layer-protocol>
    </ext-cpd>
    <df>
      <id>gold</id>
@@ -160,30 +174,30 @@
      <instantiation-level>
        <id>il-1</id>
        <vdu-level>
          <id>control-plane-active</id>
          <vdu-id>control-plane-active</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>control-plane-standby</id>
          <vdu-id>control-plane-standby</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>data-plane</id>
          <vdu-id>data-plane</vdu-id>
          <number-of-instances>2</number-of-instances>
        </vdu-level>
      </instantiation-level>
      <instantiation-level>
        <id>il-2</id>
        <vdu-level>
          <id>control-plane-active</id>
          <vdu-id>control-plane-active</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>control-plane-standby</id>
          <vdu-id>control-plane-standby</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>data-plane</id>
          <vdu-id>data-plane</vdu-id>
          <number-of-instances>4</number-of-instances>
        </vdu-level>
      </instantiation-level>
@@ -220,30 +234,30 @@
      <instantiation-level>
        <id>il-1</id>
        <vdu-level>
          <id>control-plane-active</id>
          <vdu-id>control-plane-active</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>control-plane-standby</id>
          <vdu-id>control-plane-standby</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>data-plane</id>
          <vdu-id>data-plane</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
      </instantiation-level>
      <instantiation-level>
        <id>il-2</id>
        <vdu-level>
          <id>control-plane-active</id>
          <vdu-id>control-plane-active</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>control-plane-standby</id>
          <vdu-id>control-plane-standby</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
        <vdu-level>
          <id>data-plane</id>
          <vdu-id>data-plane</vdu-id>
          <number-of-instances>2</number-of-instances>
        </vdu-level>
      </instantiation-level>
+51 −37
Original line number Diff line number Diff line
<nfv xmlns="urn:etsi:params:xml:ns:yang:etsi-nfv">
<nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors">
  <vnfd>
    <id>ASA</id>
    <provider>My Company</provider>
@@ -11,15 +11,15 @@
      <name>Firewall VDU</name>
      <int-cpd>
        <id>inside</id>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>ethernet</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>management</id>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>ethernet</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>outside</id>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>ethernet</layer-protocol>
      </int-cpd>
      <virtual-compute-desc>asa-vcd</virtual-compute-desc>
      <virtual-storage-desc>asa-vsd</virtual-storage-desc>
@@ -36,14 +36,21 @@
    </virtual-compute-desc>
    <virtual-storage-descriptor>
      <id>asa-vsd</id>
      <type-of-storage>root</type-of-storage>
      <type-of-storage>root-storage</type-of-storage>
      <size-of-storage>0</size-of-storage>
    </virtual-storage-descriptor>
    <sw-image-desc>
      <id>asa-image</id>
      <name>ASA image</name>
      <version>1.1</version>
      <checksum>
	<algorithm>sha-224</algorithm>
	<hash>deadbeef</hash>
      </checksum>
      <container-format>bare</container-format>
      <disk-format>qcow2</disk-format>
      <min-ram>2.0</min-ram>
      <size>1</size>
      <image>http://mycompany.images.com/asa.qcow2</image>
    </sw-image-desc>
    <ext-cpd>
@@ -52,7 +59,7 @@
	<vdu-id>firewall</vdu-id>
	<cpd>inside</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
    <ext-cpd>
      <id>management</id>
@@ -60,7 +67,7 @@
	<vdu-id>firewall</vdu-id>
	<cpd>management</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
    <ext-cpd>
      <id>outside</id>
@@ -68,7 +75,7 @@
	<vdu-id>firewall</vdu-id>
	<cpd>outside</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
    <df>
      <id>normal</id>
@@ -80,14 +87,14 @@
      <instantiation-level>
        <id>double</id>
        <vdu-level>
          <id>firewall</id>
          <vdu-id>firewall</vdu-id>
          <number-of-instances>2</number-of-instances>
        </vdu-level>
      </instantiation-level>
      <instantiation-level>
        <id>single</id>
        <vdu-level>
          <id>firewall</id>
          <vdu-id>firewall</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
      </instantiation-level>
@@ -106,15 +113,15 @@
      <name>Router VDU</name>
      <int-cpd>
        <id>left</id>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>ethernet</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>management</id>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>ethernet</layer-protocol>
      </int-cpd>
      <int-cpd>
        <id>right</id>
        <layer-protocol>Ethernet</layer-protocol>
        <layer-protocol>ethernet</layer-protocol>
      </int-cpd>
      <virtual-compute-desc>csr-vcd</virtual-compute-desc>
      <virtual-storage-desc>csr-vsd</virtual-storage-desc>
@@ -131,14 +138,21 @@
    </virtual-compute-desc>
    <virtual-storage-descriptor>
      <id>csr-vsd</id>
      <type-of-storage>root</type-of-storage>
      <type-of-storage>root-storage</type-of-storage>
      <size-of-storage>0</size-of-storage>
    </virtual-storage-descriptor>
    <sw-image-desc>
      <id>csr-image</id>
      <name>CSR image</name>
      <version>1.1</version>
      <checksum>
	<algorithm>sha-224</algorithm>
	<hash>deadbeef</hash>
      </checksum>
      <container-format>bare</container-format>
      <disk-format>qcow2</disk-format>
      <min-ram>2.0</min-ram>
      <size>1</size>
      <image>http://mycompany.images.com/csr.qcow2</image>
    </sw-image-desc>
    <ext-cpd>
@@ -147,7 +161,7 @@
	<vdu-id>router</vdu-id>
	<cpd>left</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
    <ext-cpd>
      <id>management</id>
@@ -155,7 +169,7 @@
	<vdu-id>router</vdu-id>
	<cpd>management</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
    <ext-cpd>
      <id>right</id>
@@ -163,7 +177,7 @@
	<vdu-id>router</vdu-id>
	<cpd>right</cpd>
      </int-cpd>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
    <df>
      <id>normal</id>
@@ -175,14 +189,14 @@
      <instantiation-level>
        <id>double</id>
        <vdu-level>
          <id>router</id>
          <vdu-id>router</vdu-id>
          <number-of-instances>2</number-of-instances>
        </vdu-level>
      </instantiation-level>
      <instantiation-level>
        <id>single</id>
        <vdu-level>
          <id>router</id>
          <vdu-id>router</vdu-id>
          <number-of-instances>1</number-of-instances>
        </vdu-level>
      </instantiation-level>
@@ -206,7 +220,7 @@
      <vnf-profile>
        <id>firewall</id>
        <vnfd-id>ASA</vnfd-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <instantiation-level>single</instantiation-level>
        <min-number-of-instances>1</min-number-of-instances>
        <max-number-of-instances>1</max-number-of-instances>
@@ -243,7 +257,7 @@
      <id>fw2dpi</id>
      <connectivity-type>
        <layer-protocol>
	  <protocol>Ethernet</protocol>
	  <protocol>ethernet</protocol>
	</layer-protocol>
      </connectivity-type>
      <df>
@@ -258,7 +272,7 @@
      <id>mgmt</id>
      <connectivity-type>
        <layer-protocol>
	  <protocol>IPv4</protocol>
	  <protocol>ipv4</protocol>
	</layer-protocol>
      </connectivity-type>
      <df>
@@ -273,7 +287,7 @@
      <id>r2fw</id>
      <connectivity-type>
        <layer-protocol>
	  <protocol>Ethernet</protocol>
	  <protocol>ethernet</protocol>
	</layer-protocol>
      </connectivity-type>
      <df>
@@ -289,7 +303,7 @@
      <vnf-profile>
        <id>firewall</id>
        <vnfd-id>ASA</vnfd-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <instantiation-level>single</instantiation-level>
        <min-number-of-instances>1</min-number-of-instances>
        <max-number-of-instances>1</max-number-of-instances>
@@ -311,7 +325,7 @@
      <vnf-profile>
        <id>router</id>
        <vnfd-id>CSR</vnfd-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <instantiation-level>single</instantiation-level>
        <min-number-of-instances>1</min-number-of-instances>
        <max-number-of-instances>1</max-number-of-instances>
@@ -333,7 +347,7 @@
      <virtual-link-profile>
        <id>mgmt</id>
        <virtual-link-desc-id>mgmt</virtual-link-desc-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <max-bitrate-requirements>
          <root>1000</root>
        </max-bitrate-requirements>
@@ -344,7 +358,7 @@
      <virtual-link-profile>
        <id>r2fw</id>
        <virtual-link-desc-id>r2fw</virtual-link-desc-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <max-bitrate-requirements>
          <root>10000000</root>
        </max-bitrate-requirements>
@@ -370,7 +384,7 @@
      <vnf-profile>
        <id>firewall</id>
        <vnfd-id>ASA</vnfd-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <instantiation-level>single</instantiation-level>
        <min-number-of-instances>1</min-number-of-instances>
        <max-number-of-instances>1</max-number-of-instances>
@@ -399,7 +413,7 @@
      <vnf-profile>
        <id>router</id>
        <vnfd-id>CSR</vnfd-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <instantiation-level>single</instantiation-level>
        <min-number-of-instances>1</min-number-of-instances>
        <max-number-of-instances>1</max-number-of-instances>
@@ -432,7 +446,7 @@
      <virtual-link-profile>
        <id>fw2dpi</id>
        <virtual-link-desc-id>fw2dpi</virtual-link-desc-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <max-bitrate-requirements>
          <root>1000000</root>
        </max-bitrate-requirements>
@@ -443,7 +457,7 @@
      <virtual-link-profile>
        <id>mgmt</id>
        <virtual-link-desc-id>mgmt</virtual-link-desc-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <max-bitrate-requirements>
          <root>1000</root>
        </max-bitrate-requirements>
@@ -454,7 +468,7 @@
      <virtual-link-profile>
        <id>r2fw</id>
        <virtual-link-desc-id>r2fw</virtual-link-desc-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <max-bitrate-requirements>
          <root>1000000</root>
        </max-bitrate-requirements>
@@ -498,7 +512,7 @@
      <id>r2fw</id>
      <connectivity-type>
        <layer-protocol>
	  <protocol>IPv4</protocol>
	  <protocol>ipv4</protocol>
	</layer-protocol>
      </connectivity-type>
      <df>
@@ -514,7 +528,7 @@
      <vnf-profile>
        <id>router</id>
        <vnfd-id>CSR</vnfd-id>
        <flavor-id>normal</flavor-id>
        <flavour-id>normal</flavour-id>
        <instantiation-level>single</instantiation-level>
        <min-number-of-instances>1</min-number-of-instances>
        <max-number-of-instances>1</max-number-of-instances>
@@ -529,7 +543,7 @@
      <virtual-link-profile>
        <id>r2fw</id>
        <virtual-link-desc-id>r2fw</virtual-link-desc-id>
        <flavor-id>r2fw</flavor-id>
        <flavour-id>r2fw</flavour-id>
        <max-bitrate-requirements>
          <root>500</root>
        </max-bitrate-requirements>
@@ -570,7 +584,7 @@
    <version>1.0</version>
    <ext-cpd>
      <id>outside</id>
      <layer-protocol>Ethernet</layer-protocol>
      <layer-protocol>ethernet</layer-protocol>
    </ext-cpd>
  </pnfd>
</nfv>
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ cd src
echo "Testing compilation"
CONFD_OPTS="--fail-on-warnings"
CONFD_OPTS=""
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv.fxs etsi-nfv.yang
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-descriptors.fxs etsi-nfv-descriptors.yang

echo "Starting ConfD"
confd
+183 −10
Original line number Diff line number Diff line
submodule etsi-nfv-common {
  yang-version 1.1;
  belongs-to etsi-nfv {
  belongs-to etsi-nfv-descriptors {
    prefix nfv;
  }
  description
@@ -20,22 +20,22 @@ submodule etsi-nfv-common {
   */
  identity layer-protocol {
  }
  identity Ethernet {
  identity ethernet {
    base layer-protocol;
  }
  identity MPLS {
  identity mpls {
    base layer-protocol;
  }
  identity ODU2 {
  identity odu2 {
    base layer-protocol;
  }
  identity IPv4 {
  identity ipv4 {
    base layer-protocol;
  }
  identity IPv6 {
  identity ipv6 {
    base layer-protocol;
  }
  identity Pseudo-Wire {
  identity pseudo-wire {
    base layer-protocol;
  }

@@ -177,6 +177,69 @@ submodule etsi-nfv-common {
    base cp-role;
  }

  identity checksum-algorithm {
    description
      "Identifies the algorithms supported for the purpose of
       calculating the checksum.";
    reference
      "GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
  }

  identity sha-224 {
    base checksum-algorithm;
    description
      "SHA-224.";
    reference
      "GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
  }

  identity sha-256 {
    base checksum-algorithm;
    description
      "SHA-256.";
    reference
      "GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
  }

  identity sha-384 {
    base checksum-algorithm;
    description
      "SHA-384.";
    reference
      "GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
  }

  identity sha-512 {
    base checksum-algorithm;
    description
      "SHA-512.";
    reference
      "GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
  }

  identity storage-type {
    description
      "Base type of storage that identities can derive from.";
  }

  identity root-storage {
    base storage-type;
    description
      "Root type of storage.";
  }

  identity swap-storage {
    base storage-type;
    description
      "Swap type of storage.";
  }

  identity ephemeral-storage {
    base storage-type;
    description
      "Ephemeral type of storage.";
  }
  
  /*
   * Typedefs
   */
@@ -215,8 +278,8 @@ submodule etsi-nfv-common {
      enum "end-healing";
      enum "start-termination";
      enum "end-termination";
      enum "start-vnf-flavor-change";
      enum "end-vnf-flavor-change";
      enum "start-vnf-flavour-change";
      enum "end-vnf-flavour-change";
      enum "start-vnf-operation-change";
      enum "end-vnf-operation-change";
      enum "start-vnf-ext-conn-change";
@@ -392,7 +455,7 @@ submodule etsi-nfv-common {
    }

    leaf-list layer-protocol {
      default Ethernet;
      default ethernet;
      type identityref {
        base layer-protocol;
      }
@@ -571,5 +634,115 @@ submodule etsi-nfv-common {
      reference
        "GS NFV IFA011: Section 7.1.6.3 Cpd information element";
    }

    leaf security-group-rule-id {
      type leafref {
        path "/nfv/vnfd/security-group-rule/id";
      }
      description
        "Reference of the security group rules bound to this
         CPD.";
      reference
        "GS NFV IFA011: Section 7.1.6.3 Cpd information element";
    }
  }

  grouping security-group-rule {
    list security-group-rule {
      key "id";

      leaf id {
        type string;
        description
          "Identifier of this SecurityGroupRule information
           element.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      leaf description {
        type string;
        description
          "Human readable description of the security group rule.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      leaf direction {
        type enumeration {
          enum ingress;
          enum egress;
        }
        default "ingress";
        description
          "The direction in which the security group rule is applied.
           Permitted values: INGRESS, EGRESS. Defaults to INGRESS.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      leaf ether-type {
        type enumeration {
          enum ipv4;
          enum ipv6;
        }
        default "ipv4";
        description
          "Indicates the protocol carried over the Ethernet layer.
           Permitted values: IPV4, IPV6. Defaults to IPV4.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      leaf protocol {
        type enumeration {
          enum tcp;
          enum udp;
          enum icmp;
        }
        default "tcp";
        description
          "Indicates the protocol carried over the IP layer.
           Permitted values: any protocol defined in the IANA
           protocol registry, e.g. TCP, UDP, ICMP, etc. Defaults
           to TCP.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      leaf port-range-min {
        must ". <= ../port-range-max";
        type uint16;
        default "0";
        description
          "Indicates minimum port number in the range that is
           matched by the security group rule. Defaults to 0.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      leaf port-range-max {
        must ". >= ../port-range-min";
        type uint16;
        default "65535";
        description
          "Indicates maximum port number in the range that is
           matched by the security group rule. Defaults to 65535.";
        reference
          "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
           information element.";
      }

      description
        "Defines security group rules to be used by the VNF.";
      reference
        "GS NFV IFA011: Section 7.1.2, VNFD information element.";
    }
  }
}
Loading