From: Francis Dupont Date: Tue, 18 Sep 2018 21:19:44 +0000 (+0200) Subject: [67-expressions-hexa-strings] Updated IETF modules to I-D 07 X-Git-Tag: 137-improve-kea-compilation-time-2_base~8^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7d1e6a0916a0b7dea09e073c8b93a2380e79120;p=thirdparty%2Fkea.git [67-expressions-hexa-strings] Updated IETF modules to I-D 07 --- diff --git a/src/lib/yang/models/ietf-dhcpv6-client.yang b/src/lib/yang/models/ietf-dhcpv6-client.yang index 85d05d55fa..c4faa971e1 100644 --- a/src/lib/yang/models/ietf-dhcpv6-client.yang +++ b/src/lib/yang/models/ietf-dhcpv6-client.yang @@ -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 */ diff --git a/src/lib/yang/models/ietf-dhcpv6-options.yang b/src/lib/yang/models/ietf-dhcpv6-options.yang index 6731942cd5..76169f1e43 100644 --- a/src/lib/yang/models/ietf-dhcpv6-options.yang +++ b/src/lib/yang/models/ietf-dhcpv6-options.yang @@ -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 { } } } + } } diff --git a/src/lib/yang/models/ietf-dhcpv6-relay.yang b/src/lib/yang/models/ietf-dhcpv6-relay.yang index f884e4a6ab..b480ff4b3a 100644 --- a/src/lib/yang/models/ietf-dhcpv6-relay.yang +++ b/src/lib/yang/models/ietf-dhcpv6-relay.yang @@ -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 diff --git a/src/lib/yang/models/ietf-dhcpv6-server.yang b/src/lib/yang/models/ietf-dhcpv6-server.yang index 4c5fafaeea..0e13df47bd 100644 --- a/src/lib/yang/models/ietf-dhcpv6-server.yang +++ b/src/lib/yang/models/ietf-dhcpv6-server.yang @@ -1,344 +1,459 @@ 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"; + } + } + } } - } - } - } } diff --git a/src/lib/yang/models/ietf-dhcpv6-types.yang b/src/lib/yang/models/ietf-dhcpv6-types.yang index 7614adab0b..f7f5468543 100644 --- a/src/lib/yang/models/ietf-dhcpv6-types.yang +++ b/src/lib/yang/models/ietf-dhcpv6-types.yang @@ -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";