--- 1/draft-ietf-dhc-dhcpv6-yang-15.txt 2021-01-07 08:13:24.193011454 -0800 +++ 2/draft-ietf-dhc-dhcpv6-yang-16.txt 2021-01-07 08:13:24.357015626 -0800 @@ -1,25 +1,25 @@ DHC Working Group Y. Cui Internet-Draft L. Sun Intended status: Standards Track Tsinghua University -Expires: 25 June 2021 I.F. Farrer +Expires: 11 July 2021 I. Farrer S.Z. Zechlin Deutsche Telekom AG Z. He Tsinghua University - M.N. Nowikowski + M. Nowikowski Internet Systems Consortium - 22 December 2020 + 7 January 2021 YANG Data Model for DHCPv6 Configuration - draft-ietf-dhc-dhcpv6-yang-15 + draft-ietf-dhc-dhcpv6-yang-16 Abstract This document describes YANG data modules for the configuration and management of DHCPv6 servers, relays, and clients. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and @@ -35,25 +35,25 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on 25 June 2021. + This Internet-Draft will expire on 11 July 2021. Copyright Notice - Copyright (c) 2020 IETF Trust and the persons identified as the + Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. @@ -64,40 +64,40 @@ 1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Extensibility of the DHCPv6 Server YANG Module . . . . . 3 1.2.1. DHCPv6 Option Definitions . . . . . . . . . . . . . . 4 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 2. DHCPv6 Tree Diagrams . . . . . . . . . . . . . . . . . . . . 5 2.1. DHCPv6 Server Tree Diagram . . . . . . . . . . . . . . . 5 2.2. DHCPv6 Relay Tree Diagram . . . . . . . . . . . . . . . . 12 2.3. DHCPv6 Client Tree Diagram . . . . . . . . . . . . . . . 14 3. DHCPv6 YANG Modules . . . . . . . . . . . . . . . . . . . . . 17 3.1. DHCPv6 Server YANG Module . . . . . . . . . . . . . . . . 17 - 3.2. DHCPv6 Relay YANG Module . . . . . . . . . . . . . . . . 31 - 3.3. DHCPv6 Client YANG Module . . . . . . . . . . . . . . . . 40 + 3.2. DHCPv6 Relay YANG Module . . . . . . . . . . . . . . . . 32 + 3.3. DHCPv6 Client YANG Module . . . . . . . . . . . . . . . . 41 3.4. RFC8415 Server Options YANG Module . . . . . . . . . . . 50 3.5. RFC8415 Relay Options YANG Module . . . . . . . . . . . . 58 - 3.6. RFC8415 Client Options YANG Module . . . . . . . . . . . 65 - 3.7. DHCPv6 Common YANG Module . . . . . . . . . . . . . . . . 71 - 4. Security Considerations . . . . . . . . . . . . . . . . . . . 75 - 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 77 - 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 78 - 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 78 - 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 78 - 8.1. Normative References . . . . . . . . . . . . . . . . . . 78 - 8.2. Informative References . . . . . . . . . . . . . . . . . 80 + 3.6. RFC8415 Client Options YANG Module . . . . . . . . . . . 62 + 3.7. DHCPv6 Common YANG Module . . . . . . . . . . . . . . . . 69 + 4. Security Considerations . . . . . . . . . . . . . . . . . . . 73 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 74 + 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 75 + 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 75 + 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 76 + 8.1. Normative References . . . . . . . . . . . . . . . . . . 76 + 8.2. Informative References . . . . . . . . . . . . . . . . . 78 Appendix A. Example of Augmenting Additional DHCPv6 Option - Definitions . . . . . . . . . . . . . . . . . . . . . . . 80 + Definitions . . . . . . . . . . . . . . . . . . . . . . . 78 Appendix B. Example Vendor Specific Server Configuration - Module . . . . . . . . . . . . . . . . . . . . . . . . . 84 + Module . . . . . . . . . . . . . . . . . . . . . . . . . 82 Appendix C. Example definition of class selector - configuration . . . . . . . . . . . . . . . . . . . . . . 90 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 97 + configuration . . . . . . . . . . . . . . . . . . . . . . 88 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 95 1. Introduction DHCPv6 [RFC8415] is widely used for supplying configuration and other relevant parameters to clients in IPv6 networks. This document defines YANG modules for the configuration and management of DHCPv6 servers, relays and clients. Separate 'element' modules are defined for each of these. There is an additional module per-element defining DHCP options which are relevant for that element (taken from the options defined in [RFC8415]). @@ -836,37 +836,42 @@ "cuiyong@tsinghua.edu.cn lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com godfryd@isc.org"; description "This YANG module defines components for the configuration and management of DHCPv6 servers. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } + revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } revision 2020-12-01 { description "Version update for draft -12 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-12"; } @@ -1528,33 +1533,38 @@ lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com godfryd@isc.org"; description "This YANG module defines components necessary for the configuration and management of DHCPv6 relays. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -1774,22 +1787,22 @@ /* * Data Nodes */ container dhcpv6-relay { description "This container contains the configuration data nodes for the relay."; list relay-if { key if-name; - description "List of interfaces configured for DHCPv6 relaying. - "; + description "List of interfaces configured for DHCPv6 + relaying."; leaf if-name { type if:interface-ref; description "interface-ref to the relay interface."; } leaf-list destination-addresses { type inet:ipv6-address; description "Each DHCPv6 relay agent may be configured with a list of destination addresses for relayed messages. The list may include unicast addresses, multicast addresses or other valid addresses."; @@ -1847,36 +1860,36 @@ */ rpc clear-prefix-entry { nacm:default-deny-all; description "Clears an entry for an active delegated prefix from the relay."; input { leaf lease-prefix { type inet:ipv6-prefix; mandatory true; - description "IPv6 prefix of an active lease entry that will b - e - deleted from the relay."; + description "IPv6 prefix of an active lease entry that will + be deleted from the relay."; + } } output { leaf return-message { type string; description "Response message from the relay."; } } } rpc clear-client-prefixes { nacm:default-deny-all; - description "Clears all active prefix entries for a single client - ."; + description "Clears all active prefix entries for a single + client."; input { leaf client-duid { type binary; mandatory true; description "DUID of the client ."; } } output { leaf return-message { type string; @@ -1948,33 +1961,38 @@ lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com godfryd@isc.org"; description "This YANG module defines components necessary for the configuration and management of DHCPv6 clients. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -2412,30 +2429,29 @@ "cuiyong@tsinghua.edu.cn wangh13@mails.tsinghua.edu.cn lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com"; description "This YANG module contains DHCPv6 options defined in RFC8415 that can be used by DHCPv6 clients. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; @@ -2432,20 +2448,25 @@ This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -2495,22 +2516,22 @@ /* * Groupings */ grouping preference-option-group { description "OPTION_PREFERENCE (7) Preference Option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container preference-option { - description "OPTION_PREFERENCE (7) Preference Option container." - ; + description "OPTION_PREFERENCE (7) Preference Option + container."; leaf pref-value { type uint8; description "The preference value for the server in this message. A 1-octet unsigned integer."; } } } grouping auth-option-group { description "OPTION_AUTH (11) Authentication Option."; @@ -2641,35 +2663,34 @@ description "5 for Renew message, 6 for Rebind message, 11 for Information-request message."; } } } grouping reconfigure-accept-option-group { description "OPTION_RECONF_ACCEPT (20) Reconfigure Accept Option. A client uses the Reconfigure Accept option to announce to - the server whether the client is willing to accept - Reconfigure messages, and a server uses this option to tell - the client whether or not to accept Reconfigure messages. - In the absence of this option, the default behavior is that - the client is unwilling to accept Reconfigure messages. - The presence node is used to enable the option."; + the server whether the client is willing to accept Reconfigure + messages, and a server uses this option to tell the client + whether or not to accept Reconfigure messages. In the absence + of this option, the default behavior is that the client is + unwilling to accept Reconfigure messages. The presence node + is used to enable the option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container reconfigure-accept-option { presence "Enable sending of this option"; description "OPTION_RECONF_ACCEPT (20) Reconfigure Accept Option container."; } } - grouping info-refresh-time-option-group { description "OPTION_INFORMATION_REFRESH_TIME (32) Information Refresh Time option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container info-refresh-time-option { description "OPTION_INFORMATION_REFRESH_TIME (32) Information Refresh Time option container."; leaf info-refresh-time { type dhcpv6-common:timer-seconds32; @@ -2671,41 +2692,42 @@ container info-refresh-time-option { description "OPTION_INFORMATION_REFRESH_TIME (32) Information Refresh Time option container."; leaf info-refresh-time { type dhcpv6-common:timer-seconds32; description "Time duration relative to the current time, expressed in units of seconds."; } } } + grouping sol-max-rt-option-group { description "OPTION_SOL_MAX_RT (82) sol max rt option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container sol-max-rt-option { - description "OPTION_SOL_MAX_RT (82) sol max rt option container - ."; + description "OPTION_SOL_MAX_RT (82) sol max rt option + container."; leaf sol-max-rt-value { type dhcpv6-common:timer-seconds32; description "sol max rt value"; } } } grouping inf-max-rt-option-group { description "OPTION_INF_MAX_RT (83) inf max rt option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container inf-max-rt-option { - description "OPTION_INF_MAX_RT (83) inf max rt option container - ."; + description "OPTION_INF_MAX_RT (83) inf max rt option + container."; leaf inf-max-rt-value { type dhcpv6-common:timer-seconds32; description "inf max rt value"; } } } /* * Augmentations */ @@ -2728,98 +2750,90 @@ uses sol-max-rt-option-group; uses inf-max-rt-option-group; } } 3.5. RFC8415 Relay Options YANG Module This module imports typedefs from [RFC6991]. - file "ietf-dhcpv6-options-rfc8415-server.yang" + file "ietf-dhcpv6-options-rfc8415-relay.yang" - module ietf-dhcpv6-options-rfc8415-server { + module ietf-dhcpv6-options-rfc8415-relay { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:" + - "ietf-dhcpv6-options-rfc8415-server"; - prefix "rfc8415-srv"; - - import ietf-inet-types { - prefix inet; - reference - "RFC 6991: Common YANG Data Types"; - } - - import ietf-dhcpv6-common { - prefix dhcpv6-common; - reference - "To be updated on publication"; - } + "ietf-dhcpv6-options-rfc8415-relay"; + prefix "rfc8415-rly"; - import ietf-dhcpv6-server { - prefix dhcpv6-server; + import ietf-dhcpv6-relay { + prefix dhcpv6-relay; reference "To be updated on publication"; } organization "DHC WG"; contact "cuiyong@tsinghua.edu.cn wangh13@mails.tsinghua.edu.cn lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com"; description "This YANG module contains DHCPv6 options defined in RFC8415 that can be used by DHCPv6 clients. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } revision 2020-12-01 { description "Version update for draft -12 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-12"; } revision 2020-11-19 { - description "Separated into a client specific set of options."; + description "Separated into a relay specific set of options."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-12"; } - revision 2020-05-26 { description "Version update for draft -11 publication and to align revisions across the different modules."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-11"; } revision 2019-06-07 { description "Major reworking to only contain RFC8415 options. if-feature for each option removed. Removed groupings of features by device or combination of devices. Added "; @@ -2845,41 +2859,27 @@ revision 2017-11-24 { description "First version of the separated DHCPv6 options YANG model."; reference "I-D:draft-ietf-dhc-dhcpv6-yang"; } /* * Groupings */ - grouping preference-option-group { - description "OPTION_PREFERENCE (7) Preference Option."; - reference "RFC8415: Dynamic Host Configuration Protocol for - IPv6 (DHCPv6)"; - container preference-option { - description "OPTION_PREFERENCE (7) Preference Option container." - ; - leaf pref-value { - type uint8; - description "The preference value for the server in this - message. A 1-octet unsigned integer."; - } - } - } - grouping auth-option-group { description "OPTION_AUTH (11) Authentication Option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container auth-option { - description "OPTION_AUTH (11) Authentication Option container."; + description "OPTION_AUTH (11) Authentication Option + container."; leaf protocol { type uint8; description "The authentication protocol used in this Authentication option."; } leaf algorithm { type uint8; description "The algorithm used in the authentication protocol."; } @@ -2894,35 +2894,20 @@ } leaf auth-information { type string; description "The authentication information, as specified by the protocol and algorithm used in this Authentication option."; } } } - grouping server-unicast-option-group { - description "OPTION_UNICAST (12) Server Unicast Option."; - reference "RFC8415: Dynamic Host Configuration Protocol for - IPv6 (DHCPv6)"; - container server-unicast-option { - description "OPTION_UNICAST (12) Server Unicast Option - container."; - leaf server-address { - type inet:ipv6-address; - description "The 128-bit address to which the client - should send messages delivered using unicast."; - } - } - } - grouping status-code-option-group { description "OPTION_STATUS_CODE (13) Status Code Option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; container status-code-option { description "OPTION_STATUS_CODE (13) Status Code Option container."; leaf status-code { type uint16; description "The numeric code for the status encoded @@ -2930,167 +2915,49 @@ for the current list of status codes."; } leaf status-message { type string; description "A UTF-8 encoded text string suitable for display to an end user. MUST NOT be null-terminated."; } } } - - grouping rapid-commit-option-group { - description "OPTION_RAPID_COMMIT (14) Rapid Commit Option."; + grouping interface-id-option-group { + description "OPTION_INTERFACE_ID (18) Interface-Id Option."; reference "RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"; - container rapid-commit-option { - presence "Enable sending of this option"; - description "OPTION_RAPID_COMMIT (14) Rapid Commit Option + container interface-id-option { + description "OPTION_INTERFACE_ID (18) Interface-Id Option container."; - } - } - - grouping vendor-specific-information-option-group { - description "OPTION_VENDOR_OPTS (17) Vendor-specific - Information Option."; - reference "RFC8415: Dynamic Host Configuration Protocol - for IPv6 (DHCPv6)"; - container vendor-specific-information-option { - description "OPTION_VENDOR_OPTS (17) Vendor-specific - Information Option container."; - list vendor-specific-information-option-instances { - key enterprise-number; - description "The vendor specific information option allows - for multiple instances in a single message. Each list entry - defines the contents of an instance of the option."; - leaf enterprise-number { - type uint32; - description "The vendor's registered Enterprise Number, - as maintained by IANA."; - - } - list vendor-option-data { - key sub-option-code; - description "Vendor options, interpreted by vendor-specific - client/server functions."; - leaf sub-option-code { - type uint16; - description "The code for the sub-option."; - } - leaf sub-option-data { + leaf interface-id { type string; - description "The data area for the sub-option."; - } - } - } - } - } - - grouping reconfigure-message-option-group { - description "OPTION_RECONF_MSG (19) Reconfigure Message - Option."; - reference "RFC8415: Dynamic Host Configuration Protocol for - IPv6 (DHCPv6)"; - container reconfigure-message-option { - description "OPTION_RECONF_MSG (19) Reconfigure Message - Option."; - leaf msg-type { - type uint8; - description "5 for Renew message, 6 for Rebind message, - 11 for Information-request message."; - } - } - } - - grouping reconfigure-accept-option-group { - description "OPTION_RECONF_ACCEPT (20) Reconfigure Accept - Option. - A client uses the Reconfigure Accept option to announce to - the server whether the client is willing to accept - Reconfigure messages, and a server uses this option to tell - the client whether or not to accept Reconfigure messages. - In the absence of this option, the default behavior is that - the client is unwilling to accept Reconfigure messages. - The presence node is used to enable the option."; - reference "RFC8415: Dynamic Host Configuration Protocol - for IPv6 (DHCPv6)"; - container reconfigure-accept-option { - presence "Enable sending of this option"; - description "OPTION_RECONF_ACCEPT (20) Reconfigure Accept - Option container."; - } - } - - grouping info-refresh-time-option-group { - description "OPTION_INFORMATION_REFRESH_TIME (32) - Information Refresh Time option."; - reference "RFC8415: Dynamic Host Configuration Protocol for - IPv6 (DHCPv6)"; - container info-refresh-time-option { - description "OPTION_INFORMATION_REFRESH_TIME (32) - Information Refresh Time option container."; - leaf info-refresh-time { - type dhcpv6-common:timer-seconds32; - description "Time duration relative to the current time, - expressed in units of seconds."; - } - } - } - - grouping sol-max-rt-option-group { - description "OPTION_SOL_MAX_RT (82) sol max rt option."; - reference "RFC8415: Dynamic Host Configuration Protocol for - IPv6 (DHCPv6)"; - container sol-max-rt-option { - description "OPTION_SOL_MAX_RT (82) sol max rt option container - ."; - leaf sol-max-rt-value { - type dhcpv6-common:timer-seconds32; - description "sol max rt value"; + description "An opaque value of arbitrary length generated + by the relay agent to identify one of the relay agent's + interfaces."; } } } - grouping inf-max-rt-option-group { - description "OPTION_INF_MAX_RT (83) inf max rt option."; - reference "RFC8415: Dynamic Host Configuration Protocol for - IPv6 (DHCPv6)"; - container inf-max-rt-option { - description "OPTION_INF_MAX_RT (83) inf max rt option container - ."; - leaf inf-max-rt-value { - type dhcpv6-common:timer-seconds32; - description "inf max rt value"; - } - } - } /* * Augmentations */ - augment "/dhcpv6-server:dhcpv6-server/dhcpv6-server:option-sets/" + - "dhcpv6-server:option-set" { - when "../../../dhcpv6-server:dhcpv6-node-type=" + - "'dhcpv6-server:server'"; + augment "/dhcpv6-relay:dhcpv6-relay/dhcpv6-relay:relay-if/" + + "dhcpv6-relay:relay-options" { + when "../../../dhcpv6-relay:dhcpv6-node-type=" + + "'dhcpv6-relay:relay'"; description "Augment the option definition groupings to the relay module."; - uses preference-option-group; uses auth-option-group; - uses server-unicast-option-group; uses status-code-option-group; - uses rapid-commit-option-group; - uses vendor-specific-information-option-group; - uses reconfigure-message-option-group; - uses reconfigure-accept-option-group; - uses info-refresh-time-option-group; - uses sol-max-rt-option-group; - uses inf-max-rt-option-group; + uses interface-id-option-group; } } 3.6. RFC8415 Client Options YANG Module This module imports typedefs from [RFC6991]. file "ietf-dhcpv6-options-rfc8415-client.yang" @@ -3111,48 +2978,54 @@ "cuiyong@tsinghua.edu.cn wangh13@mails.tsinghua.edu.cn lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com"; description "This YANG module contains DHCPv6 options defined in RFC8415 that can be used by DHCPv6 clients. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; + } revision 2020-12-01 { description "Version update for draft -12 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-12"; } revision 2020-11-19 { description "Separated into a client specific set of options."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-12"; @@ -3408,33 +3281,38 @@ contact "yong@csnet1.cs.tsinghua.edu.cn lh.sunlinh@gmail.com ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com"; description "This YANG module defines common components used for the configuration and management of DHCPv6. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -3646,60 +3526,60 @@ Security considerations related to DHCPv6 are discussed in [RFC8415]. Security considerations given in [RFC7950] are also applicable here. 5. IANA Considerations This document registers the following YANG modules in the "YANG Module Names" registry [RFC6020]. - name: ietf-dhcpv6 + name: ietf-dhcpv6-common namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-common - prefix: dhcpv6 - reference: TBD + prefix: dhcpv6-common + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration - name: ietf-dhcpv6 + name: ietf-dhcpv6-server namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-server - prefix: dhcpv6 - reference: TBD + prefix: dhcpv6-server + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration - name: ietf-dhcpv6 + name: ietf-dhcpv6-client namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-client - prefix: dhcpv6 - reference: TBD + prefix: dhcpv6-client + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration - name: ietf-dhcpv6 + name: ietf-dhcpv6-relay namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-relay - prefix: dhcpv6 - reference: TBD + prefix: dhcpv6-relay + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration - name: ietf-dhcpv6 + name: ietf-dhcpv6-options-rfc8415-server namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-options- rfc8415-server - prefix: dhcpv6 - reference: TBD + prefix: rfc8415-srv + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration - name: ietf-dhcpv6 + name: ietf-dhcpv6-options-rfc8415-relay namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-options- rfc8415-relay - prefix: dhcpv6 - reference: TBD + prefix: rfc8415-rly + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration - name: ietf-dhcpv6 + name: ietf-dhcpv6-options-rfc8415-client namespace: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-options- rfc8415-client - prefix: dhcpv6 - reference: TBD + prefix: rfc8415-rly + reference: RFC XXXX YANG Data Model for DHCPv6 Configuration 6. Acknowledgments The authors would like to thank Qi Sun, Lishan Li, Sladjana Zoric, Tomek Mrugalski, Marcin Siodelski, and Bing Liu for their valuable comments and contributions to this work. 7. Contributors The following individuals contributed to this effort: @@ -3857,33 +3737,38 @@ } organization "DHC WG"; contact "ian.farrer@telekom.de godfryd@isc.org"; description "This YANG module contains DHCPv6 options defined in RFC3319 that can be used by DHCPv6 servers. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -3907,23 +3792,22 @@ * Groupings */ grouping sip-server-domain-name-list-option-group { 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"; container sip-server-domain-name-list-option { - description "OPTION_SIP_SERVER_D (21) SIP Servers Domain Name Li - st - container."; + description "OPTION_SIP_SERVER_D (21) SIP Servers Domain Name + List container."; list sip-server { key sip-serv-id; description "sip server info"; leaf sip-serv-id { type uint8; description "sip server id"; } leaf sip-serv-domain-name { type inet:domain-name; description "sip server domain name"; @@ -3959,36 +3841,35 @@ /* * Augmentations */ augment "/dhcpv6-server:dhcpv6-server/dhcpv6-server:option-sets/" + "dhcpv6-server:option-set" { when "../../../dhcpv6-server:dhcpv6-node-type=" + "'dhcpv6-server:server'"; - description "Augment the option definition groupings to the serve - r - module."; + description "Augment the option definition groupings to the + server module."; uses sip-server-domain-name-list-option-group; uses sip-server-address-list-option-group; } } + The correct location to augment the new option definition(s) will vary according to the specific rules defined for the use of that specific option. E.g. for options which will be augmented into the ietf-dhcpv6-server module, in many cases, these will be augmented to: '/dhcpv6-server:dhcpv6-server/dhcpv6-server:option-sets/\ dhcpv6- server:option-set' - so that they can be defined within option sets. However, there are some options which are only applicable for specific deployment scenarios and in these cases it may be more logical to augment the option group to a location relevant for the option. One example for this could be OPTION_PD_EXCLUDE (67). This option is only relevant in combination with a delegated prefix which contains a specific prefix. In this case, the following location for the augmentation may be more suitable: @@ -4040,33 +3921,38 @@ ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com"; description "This YANG module defines components for the configuration and management of vendor/implementation specific DHCPv6 server functionality. As this functionality varies greatly between different implementations, the module provided as an example only. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -4353,33 +4237,38 @@ ian.farrer@telekom.de sladjana.zechlin@telekom.de hezihao9512@gmail.com"; description "This YANG module defines components for the definition and configuration of the client class selector function for a DHCPv6 server. As this functionality varies greatly between different implementations, the module provided as an example only. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8513; see the RFC itself for full legal notices."; + revision 2021-01-06 { + description "Version update for draft -16 publication."; + reference "I-D: draft-ietf-dhc-dhcpv6-yang-16"; + } + revision 2020-12-22 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-15"; } revision 2020-12-10 { description "Version update for draft -13 publication."; reference "I-D: draft-ietf-dhc-dhcpv6-yang-13"; } @@ -4547,75 +4435,73 @@ description "Remote-ID data to match."; } } } case client-duid-id { description "Client class selection based on the value of the received client DUID."; uses dhcpv6-common:duid; } } + } + /* * Augmentations */ augment "/dhcpv6-server:dhcpv6-server/dhcpv6-server:class-selector" { - description "Augment class selector functions to the DHCPv6 serve - r - module."; + description "Augment class selector functions to the DHCPv6 + server module."; container client-classes { description "Client classes to augment."; list class { key client-class-name; description "List of the client class identifiers applicable to clients served by this address pool"; uses dhcpv6-class-selector:client-class-id; } } } augment "/dhcpv6-server:dhcpv6-server/" + "dhcpv6-server:network-ranges/dhcpv6-server:network-range" { - description "Augment class selector functions to the DHCPv6 serve - r - network-ranges."; + description "Augment class selector functions to the DHCPv6 + server network-ranges."; leaf-list client-class { type leafref { path "/dhcpv6-server:dhcpv6-server/dhcpv6-server:" + "class-selector/client-classes/class/client-class-name"; } description "Leafrefs to client classes."; } } augment "/dhcpv6-server:dhcpv6-server/dhcpv6-server:" + "network-ranges/dhcpv6-server:network-range/dhcpv6-server:" + "address-pools/dhcpv6-server:address-pool" { - description "Augment class selector functions to the DHCPv6 serve - r - address-pools."; + description "Augment class selector functions to the DHCPv6 + server address-pools."; leaf-list client-class { type leafref { path "/dhcpv6-server:dhcpv6-server/dhcpv6-server:" + "class-selector/client-classes/class/client-class-name"; } description "Leafrefs to client classes."; } } augment "/dhcpv6-server:dhcpv6-server/dhcpv6-server:" + "network-ranges/dhcpv6-server:network-range/dhcpv6-server:" + "prefix-pools/dhcpv6-server:prefix-pool" { - description "Augment class selector functions to the DHCPv6 serve - r - prefix-pools."; + description "Augment class selector functions to the DHCPv6 + server prefix-pools."; leaf-list client-class { type leafref { path "/dhcpv6-server:dhcpv6-server/dhcpv6-server:" + "class-selector/client-classes/class/client-class-name"; } description "Leafrefs to client classes."; } } }