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

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/