]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[67-expressions-hexa-strings] Updated IETF modules to I-D 07
authorFrancis Dupont <fdupont@isc.org>
Tue, 18 Sep 2018 21:19:44 +0000 (23:19 +0200)
committerFrancis Dupont <fdupont@isc.org>
Tue, 18 Sep 2018 21:19:44 +0000 (23:19 +0200)
src/lib/yang/models/ietf-dhcpv6-client.yang
src/lib/yang/models/ietf-dhcpv6-options.yang
src/lib/yang/models/ietf-dhcpv6-relay.yang
src/lib/yang/models/ietf-dhcpv6-server.yang
src/lib/yang/models/ietf-dhcpv6-types.yang

index 85d05d55fa414e2cb39d654207e31523a601de77..c4faa971e11c566cc59b416f3ab670f28331591f 100644 (file)
@@ -25,6 +25,11 @@ module ietf-dhcpv6-client {
   description "This model defines a YANG data model that can be
     used to configure and manage a DHCPv6 client.";
 
+  revision 2018-09-04 {
+    description "";
+    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+  }
+
   revision 2018-03-04 {
     description "Resolved most issues on the DHC official
     github";
@@ -41,7 +46,6 @@ module ietf-dhcpv6-client {
         YANG model.";
       reference "I-D: draft-ietf-dhc-dhcpv6-yang";
   }
-
   /*
    * Data Nodes
    */
index 6731942cd5ab5428503f30e6cc10182877982100..76169f1e43542253143b6d20b2da4d8506c704ee 100644 (file)
@@ -21,9 +21,14 @@ module ietf-dhcpv6-options {
     ian.farrer@telekom.de
     sladjana.zechlin@telekom.de
     hezihao9512@gmail.com";
+
   description "This model defines a YANG data model that can be
     used to configure DHCPv6 options.";
 
+  revision 2018-09-04 {
+    description "";
+    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+  }
   revision 2018-03-04 {
     description "Resolved most issues on the DHC official
     github";
@@ -31,8 +36,8 @@ module ietf-dhcpv6-options {
   }
 
   revision 2017-12-22 {
-    description "Resolve most issues on Ian's github.";
-    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+          description "Resolve most issues on Ian's github.";
+          reference "I-D: draft-ietf-dhc-dhcpv6-yang";
   }
 
   revision 2017-11-24 {
@@ -46,173 +51,174 @@ module ietf-dhcpv6-options {
    */
 
   //  features for server options
-  feature server-unicast-op {
-    description "Support for Server Unicast option";
-  }
-  feature sip-server-domain-name-list-op {
-    description "Support for SIP Server Domain Name List option";
-  }
-  feature sip-server-address-list-op {
-    description "Support for SIP Server Address List option";
-  }
+        feature server-unicast-op {
+                description "Support for Server Unicast option";
+        }
+        feature sip-server-domain-name-list-op {
+                description "Support for SIP Server Domain Name List option";
+        }
+        feature sip-server-address-list-op {
+                description "Support for SIP Server Address List option";
+        }
   feature dns-servers-op {
     description "Support for DNS Servers Option";
   }
-  feature domain-searchlist-op {
-    description "Support for Domain Search List Option";
-  }
-  feature nis-config-op {
-    description "Support for Network Information Service (NIS)
-      Servers option";
-  }
-  feature nis-plus-config-op {
-    description "Support for Network Information Service V2 (NIS+)
-      Servers option";
-  }
-  feature nis-domain-name-op {
-    description "Support for Network Information Service (NIS)
-      Domain Name option";
-  }
-  feature nis-plus-domain-name-op {
-    description "Support for Network Information Service V2 (NIS+)
-      Server option";
-  }
-  feature sntp-server-op {
-    description "Support for Simple Network Protocol Configuration
-      (SNTP) Servers option";
-  }
-  feature info-refresh-time-op {
-    description "Support for Information Refresh Time option";
-  }
-  feature client-fqdn-op {
-    description "Support for Client FQDN option";
-  }
-  feature posix-timezone-op {
-    description "Support for New POIX Timezone option";
-  }
-  feature tzdb-timezone-op {
-    description "Support for New TZDB Timezone option";
-  }
-  feature ntp-server-op {
-    description "Support for Network Time Protocol (NTP)
-      Server option";
-  }
-  feature boot-file-url-op {
-    description "Support for Boot File URL option";
-  }
-  feature boot-file-param-op {
-    description "Support for Boot File Parameters option";
-  }
-  feature aftr-name-op {
-    description "Support for Address Family Transition
-      Router (AFTR) option";
-  }
-  feature kbr-default-name-op {
-    description "Support for Kerberos Default Name
-      Option";
-  }
-  feature kbr-kdc-op {
-    description "Support for Kerberos KDC option";
-  }
-  feature sol-max-rt-op {
-    description "Support for SOL_MAX_RT option";
-  }
-  feature inf-max-rt-op {
-    description "Support for INF_MAX_RT option";
-  }
-  feature addr-selection-op {
-    description "Support for Address Selection opiton";
-  }
-  feature pcp-server-op {
-    description "Support for Port Control Protocol (PCP)
-      option";
-  }
-  feature s46-rule-op {
-    description "Support for S46 Rule option";
-  }
-  feature s46-br-op {
-    description "Support for S46 Border Relay (BR) option";
-  }
-  feature s46-dmr-op {
-    description "Support for S46 Default Mapping Rule
-      (DMR) option";
-  }
-  feature s46-v4-v6-binding-op {
-    description "Support for S46 IPv4/IPv6 Address
-      Bind option";
-  }
+        feature domain-searchlist-op {
+                description "Support for Domain Search List Option";
+        }
+        feature nis-config-op {
+                description "Support for Network Information Service (NIS)
+                        Servers option";
+        }
+        feature nis-plus-config-op {
+                description "Support for Network Information Service V2 (NIS+)
+                        Servers option";
+        }
+        feature nis-domain-name-op {
+                description "Support for Network Information Service (NIS)
+                        Domain Name option";
+        }
+        feature nis-plus-domain-name-op {
+                description "Support for Network Information Service V2 (NIS+)
+                        Server option";
+        }
+        feature sntp-server-op {
+                description "Support for Simple Network Protocol Configuration
+                        (SNTP) Servers option";
+        }
+        feature info-refresh-time-op {
+                description "Support for Information Refresh Time option";
+        }
+        feature client-fqdn-op {
+                description "Support for Client FQDN option";
+        }
+        feature posix-timezone-op {
+                description "Support for New POIX Timezone option";
+        }
+        feature tzdb-timezone-op {
+                description "Support for New TZDB Timezone option";
+        }
+        feature ntp-server-op {
+                description "Support for Network Time Protocol (NTP)
+                        Server option";
+        }
+        feature boot-file-url-op {
+                description "Support for Boot File URL option";
+        }
+        feature boot-file-param-op {
+                description "Support for Boot File Parameters option";
+        }
+        feature aftr-name-op {
+                description "Support for Address Family Transition
+                        Router (AFTR) option";
+        }
+        feature kbr-default-name-op {
+                description "Support for Kerberos Default Name
+                        Option";
+        }
+        feature kbr-kdc-op {
+                description "Support for Kerberos KDC option";
+        }
+        feature sol-max-rt-op {
+                description "Support for SOL_MAX_RT option";
+        }
+        feature inf-max-rt-op {
+                description "Support for INF_MAX_RT option";
+        }
+        feature addr-selection-op {
+                description "Support for Address Selection opiton";
+        }
+        feature pcp-server-op {
+                description "Support for Port Control Protocol (PCP)
+                        option";
+        }
+        feature s46-rule-op {
+                description "Support for S46 Rule option";
+        }
+        feature s46-br-op {
+                description "Support for S46 Border Relay (BR) option";
+        }
+        feature s46-dmr-op {
+                description "Support for S46 Default Mapping Rule
+                        (DMR) option";
+        }
+        feature s46-v4-v6-binding-op {
+                description "Support for S46 IPv4/IPv6 Address
+                        Bind option";
+        }
 
-  // features for relay-supplied options
-  feature erp-local-domain-name-op {
-    description "Support for ERP Local Domain Name option";
-  }
+        // features for relay-supplied options
+        feature erp-local-domain-name-op {
+                description "Support for ERP Local Domain Name option";
+        }
 
-  // features for client options
-  feature option-request-op {
-    description "Support for Option Request option";
-  }
-  feature rapid-commit-op {
-    description "Support for Rapid Commit option";
-  }
-  feature user-class-op {
-    description "Support for User Class option";
-  }
-  feature vendor-class-op {
-    description "Support for Vendor Class option";
-  }
-  feature client-arch-type-op {
-    description "Support for Client System Architecture
-      Type option";
-  }
-  feature client-network-interface-identifier-op {
-    description "Support for Client Network Interface
-      Identifier option";
-  }
-  feature kbr-principal-name-op {
-    description "Support for Kerberos Principal
-      Name option";
-  }
-  feature kbr-realm-name-op {
-    description "Support Kerberos Realm Name option";
-  }
-  feature client-link-layer-addr-op {
-    description "Support for Client Link-Layer Address
-      Option";
-  }
+        // features for client options
+        feature option-request-op {
+                description "Support for Option Request option";
+        }
+        feature rapid-commit-op {
+                description "Support for Rapid Commit option";
+        }
+        feature user-class-op {
+                description "Support for User Class option";
+        }
+        feature vendor-class-op {
+                description "Support for Vendor Class option";
+        }
+        feature client-arch-type-op {
+                description "Support for Client System Architecture
+                        Type option";
+        }
+        feature client-network-interface-identifier-op {
+                description "Support for Client Network Interface
+                        Identifier option";
+        }
+        feature kbr-principal-name-op {
+                description "Support for Kerberos Principal
+                        Name option";
+        }
+        feature kbr-realm-name-op {
+                description "Support Kerberos Realm Name option";
+        }
+        feature client-link-layer-addr-op {
+                description "Support for Client Link-Layer Address
+                        Option";
+        }
+
+        // features for custom options
+        feature operator-op-ipv6-address {
+                description "Support for Option with IPv6 Addresses";
+        }
+        feature operator-op-single-flag {
+                description "Support for Option with Single Flag";
+        }
+        feature operator-op-ipv6-prefix {
+                description "Support for Option with IPv6 Prefix";
+        }
+        feature operator-op-int32 {
+                description "Support for Opion with 32-bit
+                        Integer Value";
+        }
+        feature operator-op-int16 {
+                description "Support for Opion with 16-bit Integer Value";
+        }
+        feature operator-op-int8 {
+                description "Support for Opion with 8-bit Integer Value";
+        }
+        feature operator-op-uri {
+                description "Support for Opion with URI";
+        }
+        feature operator-op-textstring {
+                description "Support for Opion with Text String";
+        }
+        feature operator-op-var-data {
+                description "Support for Opion with Variable-Length Data";
+        }
+        feature operator-op-dns-wire {
+                description "Support for Opion with DNS Wire
+                        Format Domain Name List";
+        }
 
-  // features for custom options
-  feature operator-op-ipv6-address {
-    description "Support for Option with IPv6 Addresses";
-  }
-  feature operator-op-single-flag {
-    description "Support for Option with Single Flag";
-  }
-  feature operator-op-ipv6-prefix {
-    description "Support for Option with IPv6 Prefix";
-  }
-  feature operator-op-int32 {
-    description "Support for Opion with 32-bit
-      Integer Value";
-  }
-  feature operator-op-int16 {
-    description "Support for Opion with 16-bit Integer Value";
-  }
-  feature operator-op-int8 {
-    description "Support for Opion with 8-bit Integer Value";
-  }
-  feature operator-op-uri {
-    description "Support for Opion with URI";
-  }
-  feature operator-op-textstring {
-    description "Support for Opion with Text String";
-  }
-  feature operator-op-var-data {
-    description "Support for Opion with Variable-Length Data";
-  }
-  feature operator-op-dns-wire {
-    description "Support for Opion with DNS Wire
-      Format Domain Name List";
-  }
   /*
    * Groupings
    */
@@ -234,8 +240,8 @@ module ietf-dhcpv6-options {
     }
 
     container sip-server-domain-name-list-option {
-      // if-feature sip-server-domain-name-list-op;
-      // presence "Enable this option";
+      if-feature sip-server-domain-name-list-op;
+      presence "Enable this option";
       description "OPTION_SIP_SERVER_D (21) SIP Servers Domain Name List";
       reference "RFC3319: Dynamic Host Configuration Protocol
         (DHCPv6) Options for Session Initiation Protocol (SIP) Servers";
@@ -247,8 +253,8 @@ module ietf-dhcpv6-options {
     }
 
     container sip-server-address-list-option {
-      // if-feature sip-server-address-list-op;
-      // presence "Enable this option";
+      if-feature sip-server-address-list-op;
+      presence "Enable this option";
       description "OPTION_SIP_SERVER_A (22) SIP Servers IPv6 Address List";
       reference "RFC3319: Dynamic Host Configuration Protocol (DHCPv6)
         Options for Session Initiation Protocol (SIP) Servers";
@@ -269,8 +275,8 @@ module ietf-dhcpv6-options {
     }
 
     container dns-servers-option {
-      // if-feature dns-servers-op;
-      // presence "Enable this option";
+      if-feature dns-servers-op;
+      presence "Enable this option";
       description "OPTION_DNS_SERVERS (23) DNS recursive Name Server option";
       reference "RFC3646: DNS Configuration options for Dynamic Host Configuration
         Protocol for IPv6 (DHCPv6)";
@@ -291,8 +297,8 @@ module ietf-dhcpv6-options {
     }
 
     container domain-searchlist-option {
-      // if-feature domain-searchlist-op;
-      // presence "Enable this option";
+      if-feature domain-searchlist-op;
+      presence "Enable this option";
       description "OPTION_DOMAIN_LIST (24) Domain Search List Option";
       reference "RFC3646: DNS Configuration options for Dynamic
         Host Configuration Protocol for IPv6 (DHCPv6)";
@@ -311,10 +317,9 @@ module ietf-dhcpv6-options {
         }
       }
     }
-
     container nis-config-option {
-      // if-feature nis-config-op;
-      // presence "Enable this option";
+      if-feature nis-config-op;
+      presence "Enable this option";
       description "OPTION_NIS_SERVERS (27) Network Information Service (NIS)
         Servers Option.";
       reference "RFC3898: Network Information Service (NIS) Configuration
@@ -336,8 +341,8 @@ module ietf-dhcpv6-options {
     }
 
     container nis-plus-config-option {
-      // if-feature nis-plus-config-op;
-      // presence "Enable this option";
+      if-feature nis-plus-config-op;
+      presence "Enable this option";
       description "OPTION_NISP_SERVERS (28): Network Information Service V2
         (NIS+) Servers Option.";
       reference "RFC3989: Network Information Service (NIS) Configuration
@@ -357,6 +362,7 @@ module ietf-dhcpv6-options {
         }
       }
     }
+
     container nis-domain-name-option {
       if-feature nis-domain-name-op;
       presence "Enable this option";
@@ -391,7 +397,7 @@ module ietf-dhcpv6-options {
 
 
     container sntp-server-option {
-      // if-feature sntp-server-op;
+      if-feature sntp-server-op;
       presence "Enable this option";
       description "OPTION_SNTP_SERVERS (31) Simple Network Time Protocol
         (SNTP) Servers Option";
@@ -414,7 +420,7 @@ module ietf-dhcpv6-options {
     }
 
     container info-refresh-time-option {
-    //if-feature info-refresh-time-op;
+      if-feature info-refresh-time-op;
       presence "Enable this option";
       description "OPTION_INFORMATION_REFRESH_TIME (32) Information Refresh
         Time option.";
@@ -428,7 +434,7 @@ module ietf-dhcpv6-options {
     }
 
     container client-fqdn-option {
-    //if-feature client-fqdn-op;
+      if-feature client-fqdn-op;
       presence "Enable this option";
       description "OPTION_CLIENT_FQDN (39) DHCPv6 Client FQDN Option";
       reference "RFC4704: The Dynamic Host Configuration Protocol for IPv6
@@ -451,7 +457,7 @@ module ietf-dhcpv6-options {
     }
 
     container posix-timezone-option {
-    //if-feature posix-timezone-op;
+      if-feature posix-timezone-op;
       presence "Enable this option";
       description "OPTION_NEW_POSIX_TIMEZONE (41) Posix Timezone option";
       reference "RFC4833: Timezone Options for DHCP";
@@ -463,7 +469,7 @@ module ietf-dhcpv6-options {
     }
 
     container tzdb-timezone-option {
-    //if-feature tzdb-timezone-op;
+      if-feature tzdb-timezone-op;
       presence "Enable this option";
       description "OPTION_NEW_TZDB_TIMEZONE (42) Timezone Database option";
       reference "RFC4822: Timezone Options for DHCP";
@@ -480,7 +486,7 @@ module ietf-dhcpv6-options {
 
       // Zihao - Re-modelled so it only contains one time source suboption
 
-    //if-feature ntp-server-op;
+      if-feature ntp-server-op;
       presence "Enable this option";
       description "OPTION_NTP_SERVER (56) NTP Server Option for DHCPv6";
       reference "RFC5908: Network Time Protocol (NTP) Server Option for
@@ -494,63 +500,63 @@ module ietf-dhcpv6-options {
           description "NTP server id";
         }
         choice ntp-time-source-suboption {
-          description "Select a NTP time source suboption.";
-          case server-address {
-            leaf-list ntp-serv-addr-suboption {
-                type inet:ipv6-address;
-                description "NTP server addr";
-            }
+                description "Select a NTP time source suboption.";
+                case server-address {
+                leaf-list ntp-serv-addr-suboption {
+                  type inet:ipv6-address;
+                  description "NTP server addr";
+              }
           }
-          case server-multicast-address {
-            leaf-list ntp-serv-mul-addr-suboption {
+                case server-multicast-address {
+                        leaf-list ntp-serv-mul-addr-suboption {
               type inet:ipv6-address;
-              description "NTP server multicast addr";
+                    description "NTP server multicast addr";
             }
-          }
-          case server-fqdn {
-            leaf-list ntp-serv-fqdn-suboption {
+                }
+                case server-fqdn {
+                        leaf-list ntp-serv-fqdn-suboption {
               type string;
               description "NTP server fqdn";
             }
-          }
+                }
         }
       }
     }
 
-    container boot-file-url-option {
-    //if-feature boot-file-url-op;
-      presence "Enable this option";
-      description "OPT_BOOTFILE_URL (59) Boot File URL option";
-      reference "RFC5970: DHCPv6 Options for Network Boot";
-      list boot-file {
-        key boot-file-id;
-        description "boot file info";
-        leaf boot-file-id {
-          type uint8;
-          mandatory true;
-          description "boot file id";
-        }
+        container boot-file-url-option {
+                if-feature boot-file-url-op;
+                presence "Enable this option";
+                description "OPT_BOOTFILE_URL (59) Boot File URL Option";
+                reference "RFC5970: DHCPv6 Options for Network Boot";
+                list boot-file {
+                        key boot-file-id;
+                        description "boot file info";
+                        leaf boot-file-id {
+                                type uint8;
+                                mandatory true;
+                                description "boot file id";
+                        }
         leaf-list suitable-arch-type {
           type uint16;
           description "architecture type";
         }
         leaf-list suitable-net-if {
-          type uint32;
-          description "network interface";
-        }
-        leaf boot-file-url {
-          type string;
-          mandatory true;
-          description "url for boot file";
-        }
-      }
-    }
-
-    container boot-file-param-option {
-    //if-feature boot-file-param-op;
-      presence "Enable this option";
-      description "OPT_BOOTFiLE_PARAM (60) Boot File Parameters Option";
-      reference "RFC5970: DHCPv6 Options for Network Boot";
+                type uint32;
+                description "network interface";
+        }
+                        leaf boot-file-url {
+                                type string;
+                                mandatory true;
+                                description "url for boot file";
+                        }
+                }
+        }
+
+        container boot-file-param-option {
+                if-feature boot-file-param-op;
+                presence "Enable this option";
+                description "OPT_BOOTFiLE_PARAM (60) Boot File Parameters Option";
+                reference "RFC5970: DHCPv6 Options for Network Boot";
       list boot-file-paras {
         key para-id;
         description "boot file parameters";
@@ -565,10 +571,10 @@ module ietf-dhcpv6-options {
           description "parameter value";
         }
       }
-    }
+        }
 
     container aftr-name-option {
-    //if-feature aftr-name-op;
+      if-feature aftr-name-op;
       presence "Enable this option";
       description "OPTION_AFTR_NAME (64) AFTR-Name DHCPv6 Option";
       reference "RFC6334: Dynamic Host Configuration Protocol for IPv6
@@ -581,10 +587,10 @@ module ietf-dhcpv6-options {
     }
 
     container kbr-default-name-option {
-    //if-feature kbr-default-name-op;
-      presence "Enable this option";
-      description "OPTION_KRB_DEFAULT_REALM_NAME (77) Kerberos Default Realm Name Option";
-      reference "RFC6784: Kerberos Options for DHCPv6";
+        if-feature kbr-default-name-op;
+        presence "Enable this option";
+        description "OPTION_KRB_DEFAULT_REALM_NAME (77) Kerberos Default Realm Name Option";
+        reference "RFC6784: Kerberos Options for DHCPv6";
       leaf default-realm-name {
         type string;
         mandatory true;
@@ -593,10 +599,10 @@ module ietf-dhcpv6-options {
     }
 
     container kbr-kdc-option {
-    //if-feature kbr-kdc-op;
-      presence "Enable this option";
-      description "OPTION_KRB_KDC (78) Kerberos KDB Option";
-      reference "RFC6784: Kerberos Options for DHCPv6";
+        if-feature kbr-kdc-op;
+        presence "Enable this option";
+        description "OPTION_KRB_KDC (78) Kerberos KDB Option";
+        reference "RFC6784: Kerberos Options for DHCPv6";
       list kdc-info {
         key kdc-id;
         description "kdc info";
@@ -639,7 +645,7 @@ module ietf-dhcpv6-options {
     }
 
     container sol-max-rt-option {
-    //if-feature sol-max-rt-op;
+      if-feature sol-max-rt-op;
       presence "Enable this option";
       description "OPTION_SOL_MAX_RT (82) sol max rt option";
       reference "RFC7083: Modification to Default Values of
@@ -652,7 +658,7 @@ module ietf-dhcpv6-options {
     }
 
     container inf-max-rt-option {
-    //if-feature inf-max-rt-op;
+      if-feature inf-max-rt-op;
       presence "Enable this option";
       description "OPTION_INF_MAX_RT (83) inf max rt option";
       reference "RFC7083: Modification to Default Values of
@@ -665,7 +671,7 @@ module ietf-dhcpv6-options {
     }
 
     container addr-selection-option {
-    //if-feature addr-selection-op;
+      if-feature addr-selection-op;
       presence "Enable this option";
       description "OPTION_ADDRSEL (84) and OPTION_ADDRSEL_TABLE (85)";
       reference "RFC7078: Distributing Address Selection Policy Using
@@ -715,7 +721,7 @@ module ietf-dhcpv6-options {
     }
 
     container pcp-server-option {
-    //if-feature pcp-server-op;
+      if-feature pcp-server-op;
       presence "Enable this option";
       description "OPTION_V6_PCP_SERVER (86) pcp server option";
       reference "RFC7291: DHCP Options for the Port Control
@@ -737,7 +743,7 @@ module ietf-dhcpv6-options {
     }
 
     container s46-rule-option {
-    //if-feature s46-rule-op;
+      if-feature s46-rule-op;
       presence "Enable this option";
       description "OPTION_S46_RULE (89) S46 rule option";
       reference "RFC7598: DHCPv6 Options for Configuration of
@@ -787,7 +793,7 @@ module ietf-dhcpv6-options {
     }
 
     container s46-br-option {
-    //if-feature s46-br-op;
+      if-feature s46-br-op;
       presence "Enable this option";
       description "OPTION_S46_BR (90) S46 BR Option";
       reference "RFC7598: DHCPv6 Options for Configuration of
@@ -809,7 +815,7 @@ module ietf-dhcpv6-options {
     }
 
     container s46-dmr-option {
-    //if-feature s46-dmr-op;
+      if-feature s46-dmr-op;
       presence "Enable this option";
       description "OPTION_S46_DMR (91) S46 DMR Option";
       reference "RFC7598: DHCPv6 Options for Configuration of
@@ -836,7 +842,7 @@ module ietf-dhcpv6-options {
     }
 
     container s46-v4-v6-binding-option {
-    //if-feature s46-v4-v6-binding-op;
+      if-feature s46-v4-v6-binding-op;
       presence "Enable this option";
       description "OPTION_S46_V4V6BIND (92) S46 IPv4/IPv6 Address
         Binding option";
@@ -858,7 +864,8 @@ module ietf-dhcpv6-options {
         leaf bind-prefix6-len {
           type uint8;
           mandatory true;
-          description "bind ipv6 prefix length";
+          description "bind ipv6 prefix
+            length";
         }
         leaf bind-ipv6-prefix {
           type inet:ipv6-address;
@@ -878,7 +885,7 @@ module ietf-dhcpv6-options {
     description "OPTION_RSOO (66) Relay-Supplied Options option";
     reference "RFC6422: Relay-Supplied DHCP Options";
     container erp-local-domain-name-option {
-    //if-feature erp-local-domain-name-op;
+      if-feature erp-local-domain-name-op;
       presence "Enable this option";
       description "OPTION_ERP_LOCAL_DOMAIN_NAME (65) DHCPv6 ERP Local
         Domain Name Option";
@@ -942,7 +949,7 @@ module ietf-dhcpv6-options {
     }
 
     container option-request-option {
-    //if-feature option-request-op;
+      if-feature option-request-op;
       presence "Enable this option";
       description "OPTION_ORO (6) Option Request Option";
       reference "RFC3315: Dynamic Host Configuration Protocol for
@@ -965,7 +972,7 @@ module ietf-dhcpv6-options {
     }
 
     container user-class-option {
-    //if-feature user-class-op;
+      if-feature user-class-op;
       presence "Enable this option";
       description "OPTION_USER_CLASS (15) User Class Option";
       reference "RFC3315: Dynamic Host Configuration Protocol
@@ -990,7 +997,7 @@ module ietf-dhcpv6-options {
     }
 
     container vendor-class-option {
-    //if-feature vendor-class-op;
+      if-feature vendor-class-op;
       presence "Enable this option";
       description "OPTION_VENDOR_CLASS (16) Vendor Class Option";
       reference "RFC3315: Dynamic Host Configuration Protocol
@@ -1001,8 +1008,8 @@ module ietf-dhcpv6-options {
         description "enterprise number";
       }
       list vendor-class {
-        key vendor-class-id;
-        description "vendor class";
+          key vendor-class-id;
+          description "vendor class";
         leaf vendor-class-id {
           type uint8;
           mandatory true;
@@ -1022,7 +1029,7 @@ module ietf-dhcpv6-options {
     }
 
     container client-fqdn-option {
-    //if-feature client-fqdn-op;
+      if-feature client-fqdn-op;
       presence "Enable this option";
       description "OPTION_CLIENT_FQDN (39) The Dynamic Host
         Configuration Protocol for IPv6 (DHCPv6) Client Fully
@@ -1048,7 +1055,7 @@ module ietf-dhcpv6-options {
     }
 
     container client-arch-type-option {
-    //if-feature client-arch-type-op;
+      if-feature client-arch-type-op;
       presence "Enable this option";
       description "OPTION_CLIENT_ARCH_TYPE (61) Client System
         Architecture Type Option";
@@ -1070,10 +1077,10 @@ module ietf-dhcpv6-options {
     }
 
     container client-network-interface-identifier-option {
-    //if-feature client-network-interface-identifier-op;
+      if-feature client-network-interface-identifier-op;
       presence "Enable this option";
       description "OPTION_NII (62) Client Network Interface
-        Identifier Option";
+          Identifier Option";
       reference "RFC5970: DHCPv6 Options for Network Boot";
       leaf type {
         type uint8;
@@ -1093,47 +1100,47 @@ module ietf-dhcpv6-options {
     }
 
     container kbr-principal-name-option {
-    //if-feature kbr-principal-name-op;
+      if-feature kbr-principal-name-op;
       presence "Enable this option";
       description "OPTION_KRB_PRINCIPAL_NAME (75) Kerberos
         Principal Name Option";
       reference "RFC6784: Kerberos Options for DHCPv6";
       list principle-name {
-        key principle-name-id;
-        description "principle name";
-        leaf principle-name-id {
-          type uint8;
-          mandatory true;
-          description "principle name id";
-        }
-        leaf name-type {
-          type int32;
-          mandatory true;
-          description "This field specifies the type of name that follows.";
-        }
-        leaf name-string {
-          type string;
-          mandatory true;
-          description "This field encodes a sequence of components that form
-            a name, each component encoded as a KerberoString";
-        }
+          key principle-name-id;
+          description "principle name";
+          leaf principle-name-id {
+                  type uint8;
+                  mandatory true;
+                  description "principle name id";
+          }
+          leaf name-type {
+                  type int32;
+                  mandatory true;
+                  description "This field specifies the type of name that follows.";
+          }
+          leaf name-string {
+                  type string;
+                  mandatory true;
+                  description "This field encodes a sequence of components that form
+                          a name, each component encoded as a KerberoString";
+          }
       }
     }
 
     container kbr-realm-name-option {
-    //if-feature kbr-realm-name-op;
-      presence "Enable this option";
-      description "OPTION_KRB_REALM_NAME (76) Kerberos Realm Name Option";
-      reference "RFC6784: Kerberos Options for DHCPv6";
-      leaf realm-name {
-        type string;
-        mandatory true;
-        description "realm name";
-      }
+        if-feature kbr-realm-name-op;
+        presence "Enable this option";
+        description "OPTION_KRB_REALM_NAME (76) Kerberos Realm Name Option";
+        reference "RFC6784: Kerberos Options for DHCPv6";
+        leaf realm-name {
+                type string;
+                mandatory true;
+                description "realm name";
+        }
     }
 
     container client-link-layer-addr-option {
-    //if-feature client-link-layer-addr-op;
+      if-feature client-link-layer-addr-op;
       presence "Enable this option";
       description "OPTION_CLIENT_LINKLAYER_ADDR (79) DHCPv6 Client
         Link-Layer Address Option";
@@ -1160,7 +1167,7 @@ module ietf-dhcpv6-options {
     description "operator customized options";
 
     container operator-option-ipv6-address {
-    //if-feature operator-op-ipv6-address;
+      if-feature operator-op-ipv6-address;
       presence "Enable this option";
       description "operator ipv6 address option";
       reference "RFC7227: Guidelines for Creating New DHCPv6 Options";
@@ -1181,7 +1188,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-single-flag {
-    //if-feature operator-op-single-flag;
+      if-feature operator-op-single-flag;
       presence "Enable this option";
       description "operator single flag";
       reference "RFC7227: Guidelines for Creating New DHCPv6
@@ -1203,7 +1210,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-ipv6-prefix {
-    //if-feature operator-op-ipv6-prefix;
+      if-feature operator-op-ipv6-prefix;
       presence "Enable this option";
       description "operator ipv6 prefix option";
       reference "RFC7227: Guidelines for Creating New DHCPv6
@@ -1230,7 +1237,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-int32 {
-    //if-feature operator-op-int32;
+      if-feature operator-op-int32;
       presence "Enable this option";
       description "operator integer 32 option";
       reference "RFC7227: Guidelines for Creating New DHCPv6
@@ -1252,7 +1259,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-int16 {
-    //if-feature operator-op-int16;
+      if-feature operator-op-int16;
       presence "Enable this option";
       description "operator integer 16 option";
       reference "RFC7227: Guidelines for Creating New DHCPv6
@@ -1274,7 +1281,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-int8 {
-    //if-feature operator-op-int8;
+      if-feature operator-op-int8;
       presence "Enable this option";
       description "operator integer 8 option";
       reference "RFC7227: Guidelines for Creating New DHCPv6
@@ -1296,7 +1303,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-uri {
-    //if-feature operator-op-uri;
+      if-feature operator-op-uri;
       presence "Enable this option";
       description "operator uri option";
       reference "RFC7227: Guidelines for Creating New DHCPv6 Options";
@@ -1317,7 +1324,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-textstring {
-    //if-feature operator-op-textstring;
+      if-feature operator-op-textstring;
       presence "Enable this option";
       description "operator itext string option";
       reference "RFC7227: Guidelines for Creating New DHCPv6 Options";
@@ -1338,7 +1345,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-var-data {
-    //if-feature operator-op-var-data;
+      if-feature operator-op-var-data;
       presence "Enable this option";
       description "operator variable length data option";
       reference "RFC7227: Guidelines for Creating New DHCPv6 Options";
@@ -1359,7 +1366,7 @@ module ietf-dhcpv6-options {
     }
 
     container operator-option-dns-wire {
-    //if-feature operator-op-dns-wire;
+      if-feature operator-op-dns-wire;
       presence "Enable this option";
       description "operator dns wire format domain name list option";
       reference "RFC7227: Guidelines for Creating New DHCPv6
@@ -1379,5 +1386,6 @@ module ietf-dhcpv6-options {
         }
       }
     }
+
   }
 }
index f884e4a6ab5091ab7f66d671724e72cc82e1434d..b480ff4b3a7f9514a0dfaa41511c1d45c7305a90 100644 (file)
@@ -30,6 +30,11 @@ module ietf-dhcpv6-relay {
     "This model defines a YANG data model that can be
      used to configure and manage a DHCPv6 relay.";
 
+    revision 2018-09-04 {
+    description "";
+    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+  }
+
   revision 2018-03-04 {
     description "Resolved most issues on the DHC official
     github";
@@ -127,6 +132,7 @@ module ietf-dhcpv6-relay {
         }
         uses dhcpv6-types:vendor-infor;
       }
+
       container rsoo-option-sets {
         description
          "DHCPv6 relay agent could provide some information that would
index 4c5fafaeea57df3077f71d568801e89df7d90d41..0e13df47bdbfe180fdd49a2f7ef27817c005a27a 100644 (file)
 module ietf-dhcpv6-server {
-  yang-version 1.1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-server";
-  prefix "dhcpv6-server";
+        yang-version 1.1;
+        namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-server";
+        prefix "dhcpv6-server";
 
-  import ietf-inet-types {
-    prefix inet;
+        import ietf-inet-types {
+                prefix inet;
   }
-  import ietf-yang-types {
-    prefix yang;
-  }
-  import ietf-dhcpv6-options {
-    prefix dhcpv6-options;
+        import ietf-yang-types {
+        prefix yang;
+        }
+        import ietf-dhcpv6-options {
+        prefix dhcpv6-options;
   }
   import ietf-dhcpv6-types {
-    prefix dhcpv6-types;
+        prefix dhcpv6-types;
   }
   import ietf-interfaces {
-    prefix if;
+        prefix if;
   }
 
   organization "DHC WG";
   contact
-    "cuiyong@tsinghua.edu.cn
-     lh.sunlinh@gmail.com
-     ian.farrer@telekom.de
-     sladjana.zechlin@telekom.de
-     hezihao9512@gmail.com";
-  description "This model defines a YANG data model that can be
-      used to configure and manage a DHCPv6 server.";
+        "cuiyong@tsinghua.edu.cn
+         lh.sunlinh@gmail.com
+         ian.farrer@telekom.de
+         sladjana.zechlin@telekom.de
+         hezihao9512@gmail.com";
 
-  revision 2018-03-04 {
-    description "Resolved most issues on the DHC official
-    github";
-    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
-  }
+        description "This model defines a YANG data model that can be
+        used to configure and manage a DHCPv6 server.";
 
-  revision 2017-12-22 {
-    description "Resolve most issues on Ian's github.";
+  revision 2018-09-04 {
+    description "";
     reference "I-D: draft-ietf-dhc-dhcpv6-yang";
   }
 
-  revision 2017-11-24 {
-    description "First version of the separated server specific
-        YANG model.";
-    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+  revision 2018-03-04 {
+        description "Resolved most issues on the DHC official
+        github";
+        reference "I-D: draft-ietf-dhc-dhcpv6-yang";
   }
 
-  /*
-  * Typedef
-  */
-  typedef threshold {
-    type union {
-      type uint16 {
-        range 0..100;
-      }
-      type enumeration {
-        enum "disabled" {
-            description "No threshold";
+        revision 2017-12-22 {
+                description "Resolve most issues on Ian's github.";
+        reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+        }
+
+        revision 2017-11-24 {
+        description "First version of the separated server specific
+                YANG model.";
+        reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+        }
+
+        /*
+        * Typedef
+        */
+        typedef threshold {
+        type union {
+                type uint16 {
+                range 0..100;
+                }
+                type enumeration {
+                enum "disabled" {
+                        description "No threshold";
+                }
+        }
+        }
+        description "Threshold value in percent";
         }
-      }
-    }
-    description "Threshold value in percent";
-  }
 
-  /*
-  * Data Nodes
-  */
-  container server {
-    presence "Enables the server";
-    description "DHCPv6 server portion";
+        /*
+        * Data Nodes
+        */
+        container server {
+                presence "Enables the server";
+        description "DHCPv6 server portion";
 
     /*
      * Configuration data
      */
     container server-config {
-      description "This container contains the configuration data
+        description "This container contains the configuration data
             of a server.";
-      container serv-attributes {
-        description
-         "This container contains basic attributes of a DHCPv6 server
-         such as IPv6 address, server name  and so on. Some optional
-         functions that can be provided  by the server is also included.";
-        container duid {
-          description "Sets the DUID of server";
-          uses dhcpv6-types:duid;
-        }
-        leaf name {
-          type string;
-          description "server's name";
-        }
-        leaf description {
-          type string;
-          description "description of the server.";
-        }
-        leaf-list ipv6-address {
-          type inet:ipv6-address;
-          description "server's IPv6 address.";
-        }
-        leaf-list interfaces-config {
-          // Note - this should probably be references to
-          // entries in the ietf-interfaces model
-          type if:interface-ref;
-          description "A leaf list to denote which one or more interfaces
-            the server should listen on. The default value is to listen
-            on all the interfaces. This node is also used to set a unicast
-            address for the server to listen with a specific interface.
-            For example, if people want the server to listen on a unicast
-            address with a specific interface, he can use the format like
-            'eth1/2001:db8::1'.";
+        container serv-attributes {
+                    description
+                     "This container contains basic attributes of a DHCPv6 server
+                     such as IPv6 address, server name  and so on. Some optional
+                     functions that can be provided  by the server is also included.";
+                    container duid {
+                      description "Sets the DUID of server";
+                      uses dhcpv6-types:duid;
+                    }
+                    leaf name {
+                type string;
+                description "server's name";
+                    }
+                    leaf description {
+                type string;
+                description "description of the server.";
+                    }
+                    leaf-list ipv6-address {
+                type inet:ipv6-address;
+                description "server's IPv6 address.";
+                    }
+                    leaf-list interfaces-config {
+                // Note - this should probably be references to
+                // entries in the ietf-interfaces model
+                type if:interface-ref;
+                description "A leaf list to denote which one or more interfaces
+                        the server should listen on. The default value is to listen
+                        on all the interfaces. This node is also used to set a unicast
+                        address for the server to listen with a specific interface.
+                  For example, if people want the server to listen on a unicast
+                  address with a specific interface, he can use the format like
+                  'eth1/2001:db8::1'.";
+                    }
+                                container lease-storage {
+                                        description "Indicates how the server stores the lease";
+                                        choice storage-type {
+                                                description "the type of lease storage";
+                                                // leaf persist {
+                                                //              type boolean;
+                                                //              mandatory true;
+                                                //              description "controls whether the new leases and updates to existing leases are
+                                                //              written to the file";
+                                                // }
+                                                case memfile {
+                                                        description "the server stores lease information in a CSV file";
+
+                                                        leaf memfile-name {
+                                                                type string;
+                                                                description "specifies an absolute location of the lease file in which new leases
+                                                                and lease updates will be recorded";
+                                                        }
+
+                                                        leaf memfile-lfc-interval {
+                                                                type uint64;
+                                                                description "specifies the interval in seconds, at which the server will perform a
+                                                                lease file cleanup (LFC)";
+                                                        }
+
+                                                }
+                                                case mysql {
+                                                        leaf mysql-name {
+                                                                type string;
+                                                                description "type of the database";
+                                                        }
+                                                        leaf mysql-host {
+                                                                type string;
+                                                                description "If the database is located
+                                                                on a different system to the DHCPv6 server, the database host name must also be specified.";
+                                                        }
+                                                        leaf mysql-password {
+                                                                type string;
+                                                                description "the credentials of the account under which the server will access the database";
+                                                        }
+                                                        leaf mysql-port {
+                                                                type uint8;
+                                                                description "If the database is located on a different system, the port number may be specified";
+                                                        }
+                                                        leaf mysql-lfc-interval {
+                                                                type uint64;
+                                                                description "specifies the interval in seconds, at which the server will perform a
+                                                                lease file cleanup (LFC)";
+                                                        }
+                                                        leaf mysql-connect-timeout {
+                                                                type uint64;
+                                                                description "If the database is located on a different system, a longer interval needs to be specified";
+                                                        }
+
+                                                }
+                                                case postgresql {
+                                                        leaf postgresql-name {
+                                                                type string;
+                                                                description "type of the database";
+                                                        }
+                                                        leaf postgresql-host {
+                                                                type string;
+                                                                description "If the database is located
+                                                                on a different system to the DHCPv6 server, the database host name must also be specified.";
+                                                        }
+                                                        leaf postgresql-password {
+                                                                type string;
+                                                                description "the credentials of the account under which the server will access the database";
+                                                        }
+                                                        leaf postgresql-port {
+                                                                type uint8;
+                                                                description "If the database is located on a different system, the port number may be specified";
+                                                        }
+                                                        leaf postgresql-lfc-interval {
+                                                                type uint64;
+                                                                description "specifies the interval in seconds, at which the server will perform a
+                                                                lease file cleanup (LFC)";
+                                                        }
+                                                        leaf postgresql-connect-timeout {
+                                                                type uint64;
+                                                                description "If the database is located on a different system, a longer interval needs to be specified";
+                                                        }
+                                                }
+                                                case cassandra {
+                                                        leaf cassandra-name {
+                                                                type string;
+                                                                description "type of the database";
+                                                        }
+                                                        leaf cassandra-contact-points {
+                                                                type string;
+                                                                description "Cassandra takes a list of comma separated IP addresses to contact the cluster";
+                                                        }
+                                                        leaf cassandra-password {
+                                                                type string;
+                                                                description "the credentials of the account under which the server will access the database";
+                                                        }
+                                                        leaf cassandra-lfc-interval {
+                                                                type uint64;
+                                                                description "specifies the interval in seconds, at which the server will perform a
+                                                                lease file cleanup (LFC)";
+                                                        }
+                                                        leaf cassandra-connect-timeout {
+                                                                type uint64;
+                                                                description "If the database is located on a different system, a longer interval needs to be specified";
+                                                        }
+                                                }
+                                        }
+                                }
+                    uses dhcpv6-types:vendor-infor;
         }
-        uses dhcpv6-types:vendor-infor;
-      }
 
-      container option-sets {
-        description "DHCPv6 employs various options to carry additional
+            container option-sets {
+                description "DHCPv6 employs various options to carry additional
           information and parameters in DHCP messages. This container defines
           all the possible options that need to be configured at the server
           side. ";
         list option-set {
-            key option-set-id;
-            description "A server may allow different option sets to be
-              configured for different conditions (i.e. different networks,
-              clients and etc). This 'option-set' list enables various sets of
-              options being defined and configured in a single server. Different
-              sets are distinguished by the key called 'option-set-id'. All the
-              possible options discussed above are defined in the list and each
-              option is corresponding to a container. Since all the options in
-              the list are optional, each container in this list has a 'presence'
-              statement to indicate whether this option (container) will be
-              included in the current option set or not. In addition, each container
-              also has a 'if-feature' statement to indicate whether the server
-              supports this option (container).";
+                        key option-set-id;
+                        description "A server may allow different option sets to be
+                configured for different conditions (i.e. different networks,
+                clients and etc). This 'option-set' list enables various sets of
+                options being defined and configured in a single server. Different
+                sets are distinguished by the key called 'option-set-id'. All the
+                possible options discussed above are defined in the list and each
+                option is corresponding to a container. Since all the options in
+                the list are optional, each container in this list has a 'presence'
+                statement to indicate whether this option (container) will be
+                included in the current option set or not. In addition, each container
+                also has a 'if-feature' statement to indicate whether the server
+                supports this option (container).";
             leaf option-set-id {
-              type uint32;
-              description "option set id";
+                type uint32;
+                description "option set id";
             }
           uses dhcpv6-options:server-option-definitions;
           uses dhcpv6-options:custom-option-definitions;
         }
-      }
+            }
 
-      container network-ranges {
+            container network-ranges {
         description "This model supports a hierarchy
-          to achieve dynamic configuration. That is to say we could configure the
-          server at different levels through this model. The top level is a global
-          level which is defined as the container 'network-ranges'. The following
-          levels are defined as sub-containers under it. The 'network-ranges'
-          contains the parameters (e.g. option-sets) that would be allocated to
-          all the clients served by this server.";
+                to achieve dynamic configuration. That is to say we could configure the
+                server at different levels through this model. The top level is a global
+                level which is defined as the container 'network-ranges'. The following
+                levels are defined as sub-containers under it. The 'network-ranges'
+                contains the parameters (e.g. option-sets) that would be allocated to
+                all the clients served by this server.";
 
         leaf option-set-id {
           type leafref {
             path "/server/server-config/option-sets/option-set/option-set-id";
           }
           description
-            "The ID field of relevant global option-set to be provisioned to
-            clients.";
+                "The ID field of relevant global option-set to be provisioned to
+                clients.";
         }
         list network-range {
-          key network-range-id;
-          description
-          "Under the 'network-ranges' container, a 'network-range' list
-           is defined to configure the server at a network level which is also
-           considered as the second level. Different network are identified by the
-           key 'network-range-id'. This is because a server may have different
+                key network-range-id;
+                description
+                "Under the 'network-ranges' container, a 'network-range' list
+                 is defined to configure the server at a network level which is also
+                 considered as the second level. Different network are identified by the
+                 key 'network-range-id'. This is because a server may have different
            configuration parameters (e.g. option sets) for different networks.";
-          leaf network-range-id {
-            type uint32;
-            mandatory true;
-            description "equivalent to subnet id";
-          }
-          leaf network-description {
-            type string;
-            mandatory true;
-            description "description of the subnet";
-          }
-          leaf network-prefix {
-            type inet:ipv6-prefix;
-            mandatory true;
-            description "subnet prefix";
-          }
-          leaf option-set-id {
+                leaf network-range-id {
+                        type uint32;
+                        mandatory true;
+                        description "equivalent to subnet id";
+                }
+                leaf network-description {
+                        type string;
+                        mandatory true;
+                        description "description of the subnet";
+                }
+                leaf network-prefix {
+                        type inet:ipv6-prefix;
+                        mandatory true;
+                  description "subnet prefix";
+                }
+                leaf option-set-id {
             type leafref {
               path "/server/server-config/option-sets/option-set/option-set-id";
             }
             description "The ID field of relevant option-set to be provisioned to
             clients of this network-range.";
-          }
+                }
 
-          container address-pools {
+                container address-pools {
             description
             "A container that describes the DHCPv6 server's
              address pools.";
             list address-pool {
-              key pool-id;
-              description "A DHCPv6 server can be configured with
-              several address pools. This list defines such address pools
-              which are distinguished by the key called 'pool-id'.";
-              leaf pool-id {
-                type uint32;
+                key pool-id;
+                description "A DHCPv6 server can be configured with
+                several address pools. This list defines such address pools
+                which are distinguished by the key called 'pool-id'.";
+                leaf pool-id {
+                        type uint32;
                 mandatory true;
                 description "pool id";
-              }
-              leaf pool-prefix {
+                }
+                                leaf pool-prefix {
                 type inet:ipv6-prefix;
                 mandatory true;
                 description "pool prefix";
-              }
-              leaf start-address {
+                    }
+                leaf start-address {
                 type inet:ipv6-address-no-zone;
                 mandatory true;
                 description "start address";
-              }
-              leaf end-address {
+                }
+                leaf end-address {
                 type inet:ipv6-address-no-zone;
                 mandatory true;
                 description "end address";
               }
-              leaf valid-lifetime {
+                leaf valid-lifetime {
                 type yang:timeticks;
                 mandatory true;
                 description "valid liftime for IA";
-              }
-              leaf renew-time {
+                }
+                leaf renew-time {
                 type yang:timeticks;
                 mandatory true;
                 description "renew time";
               }
-              leaf rebind-time {
+                leaf rebind-time {
                 type yang:timeticks;
                 mandatory true;
                 description "rebind time";
-              }
-              leaf preferred-lifetime {
-                type yang:timeticks;
-                mandatory true;
-                description "preferred lifetime for IA";
-              }
-              leaf rapid-commit {
-                type boolean;
-                mandatory false;
-                description "A boolean value specifies whether the pool
-                supports client-server exchanges involving two messages.";
-              }
+                }
+                leaf preferred-lifetime {
+                      type yang:timeticks;
+                      mandatory true;
+                      description "preferred lifetime for IA";
+                }
+                leaf rapid-commit {
+                                        type boolean;
+                                        mandatory true;
+                                        description "A boolean value specifies whether the pool
+                                        supports client-server exchanges involving two messages.";
+                                        }
               leaf client-class {
                 type string;
                 description
                 "If this leaf is specified, this pool will only serve
                 the clients belonging to this class.";
               }
-              leaf max-address-count {
+                leaf max-address-count {
                 type threshold;
                 mandatory true;
                 description "maximum count of addresses that can
-                  be allocated in this pool. This value may be
-                  less than count of total addresses.";
-              }
-              leaf option-set-id {
+                        be allocated in this pool. This value may be
+                        less than count of total addresses.";
+                }
+                leaf option-set-id {
                 type leafref {
-                  path "/server/server-config/option-sets/option-set/option-set-id";
+                        path "/server/server-config/option-sets/option-set/option-set-id";
                 }
                 mandatory true;
                 description "The ID field of relevant option-set to be
-                    provisioned to clients of this address-pool.";
-              }
-            }
-          }
-          container pd-pools {
+                                provisioned to clients of this address-pool.";
+                }
+                  }
+                }
+
+                container pd-pools {
             description "If a server supports prefix delegation function, this
-              container will be used to define  the delegating router's prefix
-              pools.";
+                container will be used to define  the delegating router's prefix
+                pools.";
             list pd-pool {
-              key pool-id;
-              description "Similar to server's address pools, a delegating
-                router can also be configured with multiple prefix pools
-                specified by a list called 'prefix-pool'.";
-              leaf pool-id {
-                type uint32;
-                mandatory true;
-                description "pool id";
-              }
-              leaf prefix {
-                  type inet:ipv6-prefix;
-                  mandatory true;
-                  description "ipv6 prefix";
-              }
-              leaf prefix-length {
-                  type uint8;
-                  mandatory true;
-                  description "prefix length";
-              }
-              leaf valid-lifetime {
-                type yang:timeticks;
+                key pool-id;
+                description "Similar to server's address pools, a delegating
+                        router can also be configured with multiple prefix pools
+                        specified by a list called 'prefix-pool'.";
+                                                        leaf pool-id {
+                        type uint32;
+                      mandatory true;
+                      description "pool id";
+                    }
+                    leaf prefix {
+                        type inet:ipv6-prefix;
+                        mandatory true;
+                        description "ipv6 prefix";
+                    }
+                    leaf prefix-length {
+                        type uint8;
+                        mandatory true;
+                        description "prefix length";
+                    }
+                    leaf valid-lifetime {
+                        type yang:timeticks;
                 mandatory true;
                 description "valid lifetime for IA";
-              }
-              leaf renew-time {
+                    }
+                    leaf renew-time {
                 type yang:timeticks;
                 mandatory true;
                 description "renew time";
-              }
-              leaf rebind-time {
+                    }
+                leaf rebind-time {
                 type yang:timeticks;
                 mandatory true;
                 description "rebind time";
-              }
-              leaf preferred-lifetime {
+                        }
+                    leaf preferred-lifetime {
                 type yang:timeticks;
                 mandatory true;
                 description "preferred lifetime for IA";
-              }
-              leaf rapid-commit {
-                type boolean;
-                mandatory false;
-                description "A boolean value specifies whether the server
-                support client-server exchanges involving two messages defined.";
-              }
-              leaf client-class {
+                    }
+                leaf rapid-commit {
+                                        type boolean;
+                                        mandatory true;
+                                        description "A boolean value specifies whether the server
+                                        support client-server exchanges involving two messages defined.";
+                                        }
+                                        leaf client-class {
                 type string;
                 description "client class";
               }
-              leaf max-pd-space-utilization {
+                    leaf max-pd-space-utilization {
                 type threshold;
-                mandatory false;
+                mandatory true;
                 description "Maximum utilization of pd space in this pool";
-              }
-              leaf option-set-id {
-                type leafref {
-                    path "/server/server-config/option-sets/option-set/option-set-id";
+                    }
+                    leaf option-set-id {
+                        type leafref {
+                                path "/server/server-config/option-sets/option-set/option-set-id";
+                        }
+                        mandatory true;
+                        description "The ID field of relevant option-set to be
+                          provisioned to clients of this prefix-pool.";
+                    }
                   }
-                  mandatory false;
-                  description "The ID field of relevant option-set to be
-                    provisioned to clients of this prefix-pool.";
-              }
-            }
-          }
+                }
 
           container host-reservations {
             description
-              "This container allows the server to make reservations at host level.";
+                "This container allows the server to make reservations at host level.";
             list host-reservation {
               key cli-id;
               description "This list allows the server to reserve addresses,
@@ -351,7 +466,7 @@ module ietf-dhcpv6-server {
 
               choice client-identifier {
                 description "When making reservations, the server needs to choose a
-                identifier to identify the server. Currently 'DUID' and 'hardware
+                identifier to identify the client. Currently 'DUID' and 'hardware
                 address' are supported.";
                 case duid {
                   description "DUID";
@@ -375,19 +490,19 @@ module ietf-dhcpv6-server {
                 key reserv-prefix-id;
                 description "reserved prefix reservation";
                 leaf reserv-prefix-id {
-                  type uint32;
-                  mandatory true;
-                  description "reserved prefix id";
+                        type uint32;
+                        mandatory true;
+                        description "reserved prefix id";
                 }
                 leaf reserv-prefix {
-                  type inet:ipv6-prefix;
-                  mandatory true;
-                  description "reserved prefix";
-                }
+                        type inet:ipv6-prefix;
+                        mandatory true;
+                        description "reserved prefix";
+                      }
                 leaf reserv-prefix-len {
-                  type uint8;
-                  mandatory true;
-                  description "reserved prefix length";
+                        type uint8;
+                        mandatory true;
+                        description "reserved prefix length";
                 }
               }
 
@@ -407,446 +522,446 @@ module ietf-dhcpv6-server {
           }
 
         }
-      }
+                        }
 
-      container relay-opaque-paras {
+        container relay-opaque-paras {
         description "This container contains some opaque values in Relay Agent
-          options that need to be configured on the server side only for value
-          match. Such Relay Agent options include Interface-Id option,
-          Remote-Id option and Subscriber-Id option.";
+                options that need to be configured on the server side only for value
+                match. Such Relay Agent options include Interface-Id option,
+                Remote-Id option and Subscriber-Id option.";
         list relays {
-          key relay-name;
-          description "relay agents";
-          leaf relay-name {
-            type string;
-            mandatory true;
-            description "relay agent name";
-          }
-          list interface-info {
-            key if-name;
-            description "interface info";
-            leaf if-name {
-              type string;
-              mandatory true;
-              description "interface name";
-            }
-            leaf interface-id {
-              type string;
-              mandatory true;
-              description "interface id";
-            }
-          }
-          list subscribers {
-            key subscriber;
-            description "subscribers";
-            leaf subscriber {
-              type uint32;
-              mandatory true;
-              description "subscriber";
-            }
-            leaf subscriber-id {
-              type string;
-              mandatory true;
-              description "subscriber id";
-            }
-          }
-          list remote-host {
-            key ent-num;
-            description "remote host";
-            leaf ent-num {
-              type uint32;
-              mandatory true;
-              description "enterprise number";
-            }
-            leaf remote-id {
-              type string;
-              mandatory true;
-              description "remote id";
-            }
+                key relay-name;
+                description "relay agents";
+                leaf relay-name {
+                type string;
+                mandatory true;
+                description "relay agent name";
           }
-        }
-      }
+                list interface-info {
+                key if-name;
+                description "interface info";
+                leaf if-name {
+                        type string;
+                        mandatory true;
+                        description "interface name";
+                }
+                leaf interface-id {
+                type string;
+                mandatory true;
+                        description "interface id";
+                }
+                }
+                list subscribers {
+                  key subscriber;
+                        description "subscribers";
+                        leaf subscriber {
+                                type uint32;
+                        mandatory true;
+                        description "subscriber";
+                  }
+                leaf subscriber-id {
+                type string;
+                        mandatory true;
+                        description "subscriber id";
+                }
+                }
+                list remote-host {
+                key ent-num;
+                description "remote host";
+                leaf ent-num {
+                        type uint32;
+                        mandatory true;
+                        description "enterprise number";
+                }
+                leaf remote-id {
+                        type string;
+                        mandatory true;
+                        description "remote id";
+                }
+                }
+              }
+                }
 
-      container rsoo-enabled-options {
+            container rsoo-enabled-options {
         description "rsoo enabled options";
         list rsoo-enabled-option {
-          key option-code;
-          description "rsoo enabled option";
-          leaf option-code {
-            type uint16;
-            mandatory true;
-            description "option code";
-          }
-          leaf description {
-            type string;
-            mandatory true;
-            description "description of the option";
-          }
+                key option-code;
+                description "rsoo enabled option";
+                leaf option-code {
+                type uint16;
+                mandatory true;
+                description "option code";
+                }
+                leaf description {
+                type string;
+                mandatory true;
+                description "description of the option";
+                }
         }
-      }
+            }
 
-    }
+                }
 
-    /*
-     * State data
-     */
+          /*
+           * State data
+           */
     container server-state {
-      config "false";
-      description "states of server";
-      container network-ranges {
-        description "This model supports a hierarchy to achieve dynamic configuration.
-          That is to say we could configure the server  at different levels through
-          this model. The top level is a global level which is defined as the container
-          'network-ranges'. The following levels are defined as sub-containers under it.
-          The 'network-ranges' contains the parameters (e.g. option-sets) that  would be
-          allocated to all the clients served by this server.";
-        list network-range {
-          key network-range-id;
-          description "The ID field of relevant option-set to be provisioned
-            to clients of this network-range.";
-          leaf network-range-id {
-            type uint32;
-            mandatory true;
-            description "equivalent to subnet id";
-          }
-          container address-pools {
-            description "A container that describes the DHCPv6 server's address pools";
-              list address-pool {
-                key pool-id;
-                description "A DHCPv6 server can be configured with
-                several address pools. This list defines such address pools
-                which are distinguished by the key called 'pool-id'.";
-                leaf pool-id {
-                  type uint32;
-                  mandatory true;
-                  description "pool id";
-                }
-                leaf total-address-count {
-                  type uint64;
-                  mandatory true;
-                  description "count of total addresses in the pool";
-                }
-                leaf allocated-address-conut {
-                  type uint64;
-                  mandatory true;
-                  description "count of allocated addresses in the pool";
+        config "false";
+        description "states of server";
+        container network-ranges {
+                description "This model supports a hierarchy to achieve dynamic configuration.
+                        That is to say we could configure the server  at different levels through
+                        this model. The top level is a global level which is defined as the container
+                        'network-ranges'. The following levels are defined as sub-containers under it.
+                        The 'network-ranges' contains the parameters (e.g. option-sets) that  would be
+                        allocated to all the clients served by this server.";
+                list network-range {
+                        key network-range-id;
+                description "The ID field of relevant option-set to be provisioned
+                        to clients of this network-range.";
+                        leaf network-range-id {
+                        type uint32;
+                        mandatory true;
+                        description "equivalent to subnet id";
                 }
-              }
-              list binding-info {
-                key cli-id;
-                description "A list that records a binding information for each DHCPv6
-                  client that has already been allocated IPv6 addresses.";
-                leaf cli-id {
-                  type uint32;
-                  mandatory true;
-                  description "client id";
-                }
-                container duid {
-                  description "Read the DUID";
-                  uses dhcpv6-types:duid;
+                container address-pools {
+                        description "A container that describes the DHCPv6 server's address pools";
+                        list address-pool {
+                                key pool-id;
+                                description "A DHCPv6 server can be configured with
+                                several address pools. This list defines such address pools
+                                which are distinguished by the key called 'pool-id'.";
+                leaf pool-id {
+                        type uint32;
+                        mandatory true;
+                        description "pool id";
+                    }
+                                        leaf total-address-count {
+                                                type uint64;
+                                                mandatory true;
+                                                description "count of total addresses in the pool";
+                                        }
+                                        leaf allocated-address-conut {
+                                                type uint64;
+                                                mandatory true;
+                                                description "count of allocated addresses in the pool";
+                                        }
+                        }
+                        list binding-info {
+                                key cli-id;
+                                description "A list that records a binding information for each DHCPv6
+                                        client that has already been allocated IPv6 addresses.";
+                                leaf cli-id {
+                                        type uint32;
+                                        mandatory true;
+                                        description "client id";
                 }
-                list cli-ia {
-                  key iaid;
-                  description "client IA";
-                  leaf ia-type {
-                    type string;
-                    mandatory true;
-                    description "IA type";
-                  }
-                  leaf iaid {
-                    type uint32;
-                    mandatory true;
-                    description "IAID";
-                  }
-                  leaf-list cli-addr {
-                    type inet:ipv6-address;
-                    description "client addr";
-                  }
-                  leaf pool-id {
-                    type uint32;
-                    mandatory true;
-                    description "pool id";
-                  }
+                                container duid {
+                                        description "Read the DUID";
+                                        uses dhcpv6-types:duid;
                 }
-              }
-            }
-            container pd-pools {
-              description "If a server supports prefix delegation function,
-                this container will be used to define the delegating
-                router's prefix pools.";
-              list prefix-pool {
+                                list cli-ia {
+                                        key iaid;
+                                        description "client IA";
+                                        leaf ia-type {
+                                                type string;
+                                                mandatory true;
+                                                description "IA type";
+                                        }
+                                        leaf iaid {
+                                                type uint32;
+                                                mandatory true;
+                                                description "IAID";
+                                        }
+                                        leaf-list cli-addr {
+                                                type inet:ipv6-address;
+                                                description "client addr";
+                                        }
+                                        leaf pool-id {
+                                                type uint32;
+                                                mandatory true;
+                                                description "pool id";
+                                        }
+                                }
+                        }
+                        }
+                        container pd-pools {
+                                description "If a server supports prefix delegation function,
+                                        this container will be used to define the delegating
+                                        router's prefix pools.";
+                                list prefix-pool {
                 key pool-id;
                 description "Similar to server's address pools, a delegating
-                  router can also be configured with multiple prefix pools
-                  specified by a list called 'prefix-pool'.";
+                        router can also be configured with multiple prefix pools
+                        specified by a list called 'prefix-pool'.";
                 leaf pool-id {
-                  type uint32;
-                  mandatory true;
-                  description "pool id";
+                        type uint32;
+                        mandatory true;
+                        description "pool id";
                 }
                 leaf pd-space-utilization {
-                  type threshold;
-                  mandatory true;
-                  description "current PD space utilization";
-                }
-              }
-              list binding-info {
-                key cli-id;
-                description "A list records a binding information for each DHCPv6
-                  client that has already been alloated IPv6 prefixes.";
-                leaf cli-id {
-                  type uint32;
-                  mandatory true;
-                  description "client id";
-                }
-                container duid {
-                  description "Reads the DUID";
-                  uses dhcpv6-types:duid;
+                        type threshold;
+                        mandatory true;
+                        description "current PD space utilization";
                 }
-                list cli-iapd {
-                  key iaid;
-                  description "client IAPD";
-                  leaf iaid {
-                    type uint32;
-                    mandatory true;
-                    description "IAID";
-                  }
-                  leaf-list cli-prefix {
-                    type inet:ipv6-prefix;
-                    description "client ipv6 prefix";
-                  }
-                  leaf-list cli-prefix-len {
-                    type uint8;
-                    description "client prefix length";
-                  }
-                  leaf pool-id {
-                    type uint32;
-                    mandatory true;
-                    description "pool id";
-                  }
-                }
-              }
-            }
+                                }
+                                list binding-info {
+                                        key cli-id;
+                                        description "A list records a binding information for each DHCPv6
+                                                client that has already been alloated IPv6 prefixes.";
+                                                leaf cli-id {
+                                                        type uint32;
+                                                        mandatory true;
+                                                        description "client id";
+                                                }
+                                                container duid {
+                                                        description "Reads the DUID";
+                                                        uses dhcpv6-types:duid;
+                                                }
+                                                list cli-iapd {
+                                                        key iaid;
+                                                        description "client IAPD";
+                                                        leaf iaid {
+                                                                type uint32;
+                                                                mandatory true;
+                                                                description "IAID";
+                                                        }
+                                                        leaf-list cli-prefix {
+                                                                type inet:ipv6-prefix;
+                                                                description "client ipv6 prefix";
+                                                        }
+                                                        leaf-list cli-prefix-len {
+                                                                type uint8;
+                                                                description "client prefix length";
+                                                        }
+                                                        leaf pool-id {
+                                                                type uint32;
+                                                                mandatory true;
+                                                                description "pool id";
+                                                        }
+                                                }
+                                }
+                        }
 
-          container host-reservations {
+                container host-reservations {
             description "This container provides host reservations in the host level.";
-            list binding-info {
-              key cli-id;
-              description
-                "A list records a binding information for each DHCPv6
-                client that has already been alloated IPv6 addresses or prefixes
-                by host reservations.";
-              leaf cli-id {
-                type uint32;
-                mandatory true;
-                description "client id";
-              }
-              container duid {
-                description "Reads the DUID";
-                uses dhcpv6-types:duid;
-              }
-              list cli-ia {
-                key iaid;
-                description "client IA";
-                leaf ia-type {
-                  type string;
-                  mandatory true;
-                  description "IA type, IA_NA or IA_TA";
-                }
-                leaf iaid {
-                  type uint32;
-                  mandatory true;
-                  description "IAID";
-                }
-                leaf-list cli-addr {
-                  type inet:ipv6-address;
-                  description "client addr";
-                }
-              }
+                                                list binding-info {
+                                key cli-id;
+                                description
+                                        "A list records a binding information for each DHCPv6
+                                        client that has already been alloated IPv6 addresses or prefixes
+                                        by host reservations.";
+                                        leaf cli-id {
+                                                type uint32;
+                                                mandatory true;
+                                                description "client id";
+                                        }
+                                        container duid {
+                                                description "Reads the DUID";
+                                                uses dhcpv6-types:duid;
+                                        }
+                                        list cli-ia {
+                                        key iaid;
+                                        description "client IA";
+                                        leaf ia-type {
+                                                type string;
+                                                mandatory true;
+                                                description "IA type, IA_NA or IA_TA";
+                                        }
+                                        leaf iaid {
+                                                type uint32;
+                                                mandatory true;
+                                                description "IAID";
+                                        }
+                                        leaf-list cli-addr {
+                                                type inet:ipv6-address;
+                                                description "client addr";
+                                        }
+                                }
 
-              list cli-iapd {
-                key iaid;
-                description "client IAPD";
-                leaf iaid {
-                  type uint32;
-                  mandatory true;
-                  description "IAID";
-                }
-                leaf-list cli-prefix {
-                  type inet:ipv6-prefix;
-                  description "client ipv6 prefix";
-                }
-                leaf-list cli-prefix-len {
-                  type uint8;
-                  description "client prefix length";
+                                        list cli-iapd {
+                                                key iaid;
+                                                description "client IAPD";
+                                                leaf iaid {
+                                                        type uint32;
+                                                        mandatory true;
+                                                        description "IAID";
+                                                }
+                                                leaf-list cli-prefix {
+                                                        type inet:ipv6-prefix;
+                                                        description "client ipv6 prefix";
+                                                }
+                                                leaf-list cli-prefix-len {
+                                                        type uint8;
+                                                        description "client prefix length";
+                                                }
+                                        }
+                        }
                 }
-              }
-            }
-          }
 
-          }
-        }
+                                        }
+                        }
 
         container packet-stats {
-          description "A container presents the packet statistics related to
-            the DHCPv6 server.";
+                description "A container presents the packet statistics related to
+                        the DHCPv6 server.";
           leaf solicit-count {
-            type uint32;
-            mandatory true;
-            description "solicit counter";
+                                                type uint32;
+                                                mandatory true;
+                                                description "solicit counter";
           }
           leaf request-count {
-            type uint32;
-            mandatory true;
-            description "request counter";
+                                                type uint32;
+                                                mandatory true;
+                                                description "request counter";
           }
           leaf renew-count {
-            type uint32;
-            mandatory true;
-            description "renew counter";
+                                                type uint32;
+                                                mandatory true;
+                                                description "renew counter";
           }
           leaf rebind-count {
-            type uint32;
-            mandatory true;
-            description "rebind counter";
+                                                type uint32;
+                                                mandatory true;
+                                                description "rebind counter";
           }
           leaf decline-count {
-            type uint32;
-            mandatory true;
-            description "decline count";
+                                                type uint32;
+                                                mandatory true;
+                                                description "decline count";
           }
           leaf release-count {
-            type uint32;
-            mandatory true;
-            description "release counter";
+                type uint32;
+                mandatory true;
+                description "release counter";
           }
           leaf info-req-count {
-            type uint32;
-            mandatory true;
-            description "information request counter";
+                type uint32;
+                mandatory true;
+                description "information request counter";
           }
           leaf advertise-count {
-            type uint32;
-            mandatory true;
-            description "advertise counter";
+                type uint32;
+                mandatory true;
+                description "advertise counter";
           }
           leaf confirm-count {
-            type uint32;
-            mandatory true;
-            description "confirm counter";
+                type uint32;
+                mandatory true;
+                description "confirm counter";
           }
           leaf reply-count {
-            type uint32;
-            mandatory true;
-            description "reply counter";
+                                                type uint32;
+                                                mandatory true;
+                                                description "reply counter";
           }
           leaf reconfigure-count {
-            type uint32;
-            mandatory true;
-            description "reconfigure counter";
+                                                type uint32;
+                                                mandatory true;
+                                                description "reconfigure counter";
           }
           leaf relay-forward-count {
-            type uint32;
-            mandatory true;
-            description "relay forward counter";
+                type uint32;
+                mandatory true;
+                description "relay forward counter";
           }
           leaf relay-reply-count {
-            type uint32;
-            mandatory true;
-            description "relay reply counter";
+                type uint32;
+                mandatory true;
+                description "relay reply counter";
           }
         }
-      }
-    }
+        }
+        }
 
-  /*
-  * Notifications
-  */
+        /*
+        * Notifications
+        */
 
-  notification notifications {
-    description "dhcpv6 server notification module";
+        notification notifications {
+          description "dhcpv6 server notification module";
     container dhcpv6-server-event {
-      description "dhcpv6 server event";
-      container address-pool-running-out {
+        description "dhcpv6 server event";
+        container address-pool-running-out {
         description "raised when the address pool is going to
-          run out.  A threshold for utilization ratio of the pool has
-          been defined in the server feature so that it will notify the
-          administrator when the utilization ratio reaches the
-          threshold, and such threshold is a settable parameter";
+                run out.  A threshold for utilization ratio of the pool has
+                been defined in the server feature so that it will notify the
+                administrator when the utilization ratio reaches the
+                threshold, and such threshold is a settable parameter";
         leaf total-address-count {
-          type uint64;
-          mandatory true;
-          description "count of total addresses in the pool";
+                type uint64;
+                mandatory true;
+                description "count of total addresses in the pool";
         }
         leaf max-address-count {
-          type uint64;
-          mandatory true;
-          description "maximum count of addresses that can be allocated
-            in the pool. This value may be less than count of total
-            addresses";
+                type uint64;
+                mandatory true;
+                description "maximum count of addresses that can be allocated
+                        in the pool. This value may be less than count of total
+                        addresses";
         }
         leaf allocated-address-conut {
-          type uint64;
-          mandatory true;
-          description "count of allocated addresses in the pool";
-        }
-        container duid {
-          description "server duid";
-          uses dhcpv6-types:duid;
+                type uint64;
+                mandatory true;
+                description "count of allocated addresses in the pool";
         }
+                    container duid {
+                        description "server duid";
+                        uses dhcpv6-types:duid;
+                    }
         leaf serv-name {
-          type string;
-          description "server name";
+                type string;
+                description "server name";
         }
         leaf pool-name {
-          type string;
-          mandatory true;
-          description "pool name";
-        }
-      }
-      container pd-pool-running-out {
-        description "raised when the address/prefix pool is going to
-          run out.  A threshold for utilization ratio of the pool has
-          been defined in the server feature so that it will notify the
-          administrator when the utilization ratio reaches the
-          threshold, and such threshold is a settable parameter";
-        leaf max-pd-space-utilization {
-          type threshold;
-          mandatory true;
-          description "maximum pd space utilization";
+                type string;
+                mandatory true;
+                description "pool name";
         }
-        leaf pd-space-utilization {
-          type threshold;
-          mandatory true;
-          description "current pd space utilization";
         }
+                container pd-pool-running-out {
+        description "raised when the address/prefix pool is going to
+                run out.  A threshold for utilization ratio of the pool has
+                been defined in the server feature so that it will notify the
+                administrator when the utilization ratio reaches the
+                threshold, and such threshold is a settable parameter";
+                        leaf max-pd-space-utilization {
+                type threshold;
+                mandatory true;
+                description "maximum pd space utilization";
+                }
+                        leaf pd-space-utilization {
+                                type threshold;
+                                mandatory true;
+                                description "current pd space utilization";
+                        }
         container duid {
-          description "Sets the DUID";
-          uses dhcpv6-types:duid;
+                description "Sets the DUID";
+                uses dhcpv6-types:duid;
         }
         leaf serv-name {
-          type string;
-          description "server name";
+                type string;
+                description "server name";
         }
         leaf pool-name {
-          type string;
-          mandatory true;
-          description "pool name";
+                type string;
+                mandatory true;
+                description "pool name";
         }
-      }
-      container invalid-client-detected {
-        description "raised when the server has found a client which
-          can be regarded as a potential attacker. Some description
-          could also be included.";
+            }
+            container invalid-client-detected {
+                description "raised when the server has found a client which
+                can be regarded as a potential attacker. Some description
+                could also be included.";
         container duid {
-          description "Sets the DUID";
-          uses dhcpv6-types:duid;
+                description "Sets the DUID";
+                uses dhcpv6-types:duid;
         }
         leaf description {
-          type string;
-          description "description of the event";
+                type string;
+                description "description of the event";
+                }
+            }
+          }
         }
-      }
-    }
-  }
 }
index 7614adab0b15c796e74df6d21dfb9760a5ecac35..f7f54685436102acf613a155cf9fc65cb2d88b79 100644 (file)
@@ -21,6 +21,11 @@ module ietf-dhcpv6-types {
   description "This model defines a YANG data model that can be
     used to define some commonly used DHCPv6 types";
 
+  revision 2018-09-04 {
+    description "";
+    reference "I-D: draft-ietf-dhc-dhcpv6-yang";
+  }
+
   revision 2018-01-30 {
     description "Initial revision";
     reference "I-D: draft-ietf-dhc-dhcpv6-yang";