draft-ietf-dhc-dhcpv6-yang-20.txt   draft-ietf-dhc-dhcpv6-yang-21.txt 
DHC Working Group I. Farrer, Ed. DHC Working Group I. Farrer, Ed.
Internet-Draft Deutsche Telekom AG Internet-Draft Deutsche Telekom AG
Intended status: Standards Track 1 June 2021 Intended status: Standards Track 14 June 2021
Expires: 3 December 2021 Expires: 16 December 2021
YANG Data Model for DHCPv6 Configuration YANG Data Model for DHCPv6 Configuration
draft-ietf-dhc-dhcpv6-yang-20 draft-ietf-dhc-dhcpv6-yang-21
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 (Dynamic Host Configuration Protocol for IPv6) management of DHCPv6 (Dynamic Host Configuration Protocol for IPv6)
servers, relays, and clients. 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",
skipping to change at page 1, line 40 skipping to change at page 1, line 40
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 3 December 2021. This Internet-Draft will expire on 16 December 2021.
Copyright Notice Copyright Notice
Copyright (c) 2021 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.
skipping to change at page 2, line 28 skipping to change at page 2, line 28
2. DHCPv6 Tree Diagrams . . . . . . . . . . . . . . . . . . . . 6 2. DHCPv6 Tree Diagrams . . . . . . . . . . . . . . . . . . . . 6
2.1. DHCPv6 Server Tree Diagram . . . . . . . . . . . . . . . 6 2.1. DHCPv6 Server Tree Diagram . . . . . . . . . . . . . . . 6
2.2. DHCPv6 Relay Tree Diagram . . . . . . . . . . . . . . . . 13 2.2. DHCPv6 Relay Tree Diagram . . . . . . . . . . . . . . . . 13
2.3. DHCPv6 Client Tree Diagram . . . . . . . . . . . . . . . 16 2.3. DHCPv6 Client Tree Diagram . . . . . . . . . . . . . . . 16
3. DHCPv6 YANG Modules . . . . . . . . . . . . . . . . . . . . . 19 3. DHCPv6 YANG Modules . . . . . . . . . . . . . . . . . . . . . 19
3.1. DHCPv6 Server YANG Module . . . . . . . . . . . . . . . . 19 3.1. DHCPv6 Server YANG Module . . . . . . . . . . . . . . . . 19
3.2. DHCPv6 Relay YANG Module . . . . . . . . . . . . . . . . 39 3.2. DHCPv6 Relay YANG Module . . . . . . . . . . . . . . . . 39
3.3. DHCPv6 Client YANG Module . . . . . . . . . . . . . . . . 48 3.3. DHCPv6 Client YANG Module . . . . . . . . . . . . . . . . 48
3.4. DHCPv6 Common YANG Module . . . . . . . . . . . . . . . . 63 3.4. DHCPv6 Common YANG Module . . . . . . . . . . . . . . . . 63
4. Security Considerations . . . . . . . . . . . . . . . . . . . 71 4. Security Considerations . . . . . . . . . . . . . . . . . . . 71
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 72 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 73
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 73 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 74
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 73 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 74
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 74 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.1. Normative References . . . . . . . . . . . . . . . . . . 74 8.1. Normative References . . . . . . . . . . . . . . . . . . 74
8.2. Informative References . . . . . . . . . . . . . . . . . 76 8.2. Informative References . . . . . . . . . . . . . . . . . 77
Appendix A. Data Tree Examples . . . . . . . . . . . . . . . . . 77 Appendix A. Data Tree Examples . . . . . . . . . . . . . . . . . 77
A.1. DHCPv6 Server Configuration Example . . . . . . . . . . . 77 A.1. DHCPv6 Server Configuration Example . . . . . . . . . . . 77
A.2. DHCPv6 Relay Configuration Example . . . . . . . . . . . 81 A.2. DHCPv6 Relay Configuration Example . . . . . . . . . . . 81
A.3. DHCPv6 Client Configuration Examples . . . . . . . . . . 82 A.3. DHCPv6 Client Configuration Examples . . . . . . . . . . 82
Appendix B. Example of Augmenting Additional DHCPv6 Option Appendix B. Example of Augmenting Additional DHCPv6 Option
Definitions . . . . . . . . . . . . . . . . . . . . . . . 85 Definitions . . . . . . . . . . . . . . . . . . . . . . . 85
Appendix C. Example Vendor Specific Server Configuration Appendix C. Example Vendor Specific Server Configuration
Module . . . . . . . . . . . . . . . . . . . . . . . . . 88 Module . . . . . . . . . . . . . . . . . . . . . . . . . 88
Appendix D. Example definition of class-selector Appendix D. Example definition of class-selector
configuration . . . . . . . . . . . . . . . . . . . . . . 95 configuration . . . . . . . . . . . . . . . . . . . . . . 95
skipping to change at page 17, line 19 skipping to change at page 17, line 19
+--rw ia-ta* [ia-id] +--rw ia-ta* [ia-id]
| +--rw ia-id uint32 | +--rw ia-id uint32
| +--rw ia-ta-options | +--rw ia-ta-options
| +--ro lease-state | +--ro lease-state
| +--ro ia-ta-address? inet:ipv6-address | +--ro ia-ta-address? inet:ipv6-address
| +--ro preferred-lifetime? dhc6:timer-seconds32 | +--ro preferred-lifetime? dhc6:timer-seconds32
| +--ro valid-lifetime? dhc6:timer-seconds32 | +--ro valid-lifetime? dhc6:timer-seconds32
| +--ro allocation-time? yang:date-and-time | +--ro allocation-time? yang:date-and-time
| +--ro last-renew-rebind? yang:date-and-time | +--ro last-renew-rebind? yang:date-and-time
| +--ro server-duid? dhc6:duid | +--ro server-duid? dhc6:duid
+--rw ia-pd* [ia-id] +--rw ia-pd* [ia-id] {prefix-delegation}?
| +--rw ia-id uint32 | +--rw ia-id uint32
| +--rw ia-pd-options | +--rw ia-pd-options
| +--ro lease-state | +--ro lease-state
| +--ro ia-pd-prefix? inet:ipv6-prefix | +--ro ia-pd-prefix? inet:ipv6-prefix
| +--ro preferred-lifetime? dhc6:timer-seconds32 | +--ro preferred-lifetime? dhc6:timer-seconds32
| +--ro valid-lifetime? dhc6:timer-seconds32 | +--ro valid-lifetime? dhc6:timer-seconds32
| +--ro lease-t1? dhc6:timer-seconds32 | +--ro lease-t1? dhc6:timer-seconds32
| +--ro lease-t2? dhc6:timer-seconds32 | +--ro lease-t2? dhc6:timer-seconds32
| +--ro allocation-time? yang:date-and-time | +--ro allocation-time? yang:date-and-time
| +--ro last-renew-rebind? yang:date-and-time | +--ro last-renew-rebind? yang:date-and-time
skipping to change at page 18, line 20 skipping to change at page 18, line 20
| +--ro server-duid dhc6:duid | +--ro server-duid dhc6:duid
+---n server-duid-changed +---n server-duid-changed
+--ro new-server-duid dhc6:duid +--ro new-server-duid dhc6:duid
+--ro previous-server-duid dhc6:duid +--ro previous-server-duid dhc6:duid
+--ro lease-ia-na? +--ro lease-ia-na?
| -> /dhcpv6-client/client-if/ia-na/ia-id | -> /dhcpv6-client/client-if/ia-na/ia-id
+--ro lease-ia-ta? +--ro lease-ia-ta?
| -> /dhcpv6-client/client-if/ia-ta/ia-id | -> /dhcpv6-client/client-if/ia-ta/ia-id
+--ro lease-ia-pd? +--ro lease-ia-pd?
-> /dhcpv6-client/client-if/ia-pd/ia-id -> /dhcpv6-client/client-if/ia-pd/ia-id
{prefix-delegation}?
Figure 3: DHCPv6 Client Data Module Structure Figure 3: DHCPv6 Client Data Module Structure
Descriptions of important nodes: Descriptions of important nodes:
* enabled: Globally enables/disables all DHCPv6 client functions. * enabled: Globally enables/disables all DHCPv6 client functions.
* dhcpv6-client: This container holds the client's DHCPv6 specific * dhcpv6-client: This container holds the client's DHCPv6 specific
configuration. configuration.
skipping to change at page 19, line 15 skipping to change at page 19, line 11
* client-configured-options: Holds configuration parameters for * client-configured-options: Holds configuration parameters for
DHCPv6 options which can be sent by the client. The initial set DHCPv6 options which can be sent by the client. The initial set
of applicable option definitions are defined here and additional of applicable option definitions are defined here and additional
options that are also relevant to the relay and/or server are options that are also relevant to the relay and/or server are
imported from the 'ietf-dhcpv6-common' module. Where needed, imported from the 'ietf-dhcpv6-common' module. Where needed,
other DHCPv6 option modules can be augmented as they are defined. other DHCPv6 option modules can be augmented as they are defined.
* ia-na, ia-ta, ia-pd: Contains configuration nodes relevant for * ia-na, ia-ta, ia-pd: Contains configuration nodes relevant for
requesting one or more of each of the lease types. Read-only requesting one or more of each of the lease types. Read-only
nodes related to the active leases for each type are also located nodes related to the active leases for each type are also located
here. here. As prefix delegation is not supported by all DHCPv6 client
implementations, it is enabled with a feature statement.
Information about notifications: Information about notifications:
* invalid-ia-detected: Raised when the identity association of the * invalid-ia-detected: Raised when the identity association of the
client can be proved to be invalid. Possible conditions include: client can be proved to be invalid. Possible conditions include:
duplicated address, illegal address, etc. duplicated address, illegal address, etc.
* retransmission-failed: Raised when the retransmission mechanism * retransmission-failed: Raised when the retransmission mechanism
defined in [RFC8415] has failed. defined in [RFC8415] has failed.
3. DHCPv6 YANG Modules 3. DHCPv6 YANG Modules
3.1. DHCPv6 Server YANG Module 3.1. DHCPv6 Server YANG Module
This module imports typedefs from [RFC6991], [RFC8343]. This module imports typedefs from [RFC6991], [RFC8343].
<CODE BEGINS> file "ietf-dhcpv6-server@2021-06-01.yang" <CODE BEGINS> file "ietf-dhcpv6-server@2021-06-14.yang"
module ietf-dhcpv6-server { module ietf-dhcpv6-server {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-server"; namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-server";
prefix "dhc6-srv"; prefix "dhc6-srv";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
skipping to change at page 20, line 44 skipping to change at page 20, line 43
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2017-11-24 { revision 2021-06-14 {
description description
"First version of the separated server specific YANG model."; "Initial Revision.";
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; reference
"XXXX: YANG Data Model for DHCPv6 Configuration";
} }
/* /*
* Features * Features
*/ */
feature prefix-delegation { feature prefix-delegation {
description description
"Denotes that the server implements DHCPv6 prefix "Denotes that the server implements DHCPv6 prefix
delegation."; delegation.";
skipping to change at page 39, line 4 skipping to change at page 38, line 50
description description
"IPv6 prefix of an active lease that will be deleted "IPv6 prefix of an active lease that will be deleted
from the server."; from the server.";
} }
} }
output { output {
leaf return-message { leaf return-message {
type string; type string;
description description
"Response message from the server."; "Response message from the server.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3.2. DHCPv6 Relay YANG Module 3.2. DHCPv6 Relay YANG Module
This module imports typedefs from [RFC6991], [RFC8343]. This module imports typedefs from [RFC6991], [RFC8343].
<CODE BEGINS> file "ietf-dhcpv6-relay@2021-06-01.yang" <CODE BEGINS> file "ietf-dhcpv6-relay@2021-06-14.yang"
module ietf-dhcpv6-relay { module ietf-dhcpv6-relay {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-relay"; namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-relay";
prefix "dhc6-rly"; prefix "dhc6-rly";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
skipping to change at page 40, line 33 skipping to change at page 40, line 32
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2017-11-24 { revision 2021-06-14 {
description description
"First version of the separated relay specific YANG model."; "Initial Revision.";
reference reference
"I-D: draft-ietf-dhc-dhcpv6-yang"; "XXXX: YANG Data Model for DHCPv6 Configuration";
} }
/* /*
* Features * Features
*/ */
feature prefix-delegation { feature prefix-delegation {
description description
"Enable if the relay functions as a delegating router for "Enable if the relay functions as a delegating router for
DHCPv6 prefix delegation."; DHCPv6 prefix delegation.";
skipping to change at page 49, line 5 skipping to change at page 49, line 5
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3.3. DHCPv6 Client YANG Module 3.3. DHCPv6 Client YANG Module
This module imports typedefs from [RFC6991], [RFC8343]. This module imports typedefs from [RFC6991], [RFC8343].
<CODE BEGINS> file "ietf-dhcpv6-client@2021-06-01.yang" <CODE BEGINS> file "ietf-dhcpv6-client@2021-06-14.yang"
module ietf-dhcpv6-client { module ietf-dhcpv6-client {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-client"; namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-client";
prefix "dhcpv6-clnt"; prefix "dhc6-clnt";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
skipping to change at page 50, line 25 skipping to change at page 50, line 25
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2017-11-24 { revision 2021-06-14 {
description description
"First version of the separated client specific YANG model."; "Initial Revision.";
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; reference
"XXXX: YANG Data Model for DHCPv6 Configuration";
}
/*
* Features
*/
feature prefix-delegation {
description
"Denotes that the client implements DHCPv6 prefix
delegation.";
reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 6.3";
} }
/* /*
* Groupings * Groupings
*/ */
grouping message-statistics { grouping message-statistics {
description description
"Counters for DHCPv6 messages."; "Counters for DHCPv6 messages.";
leaf solicit-count { leaf solicit-count {
skipping to change at page 57, line 49 skipping to change at page 58, line 14
address."; address.";
} }
leaf server-duid { leaf server-duid {
type dhc6:duid; type dhc6:duid;
description description
"DUID of the leasing server."; "DUID of the leasing server.";
} }
} }
} }
list ia-pd { list ia-pd {
if-feature prefix-delegation;
key ia-id; key ia-id;
description description
"Configuration relevant for an IA_PD (Identity Association "Configuration relevant for an IA_PD (Identity Association
for Prefix Delegation)."; for Prefix Delegation).";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 13.3"; IPv6 (DHCPv6), Section 13.3";
leaf ia-id { leaf ia-id {
type uint32; type uint32;
description description
"The unique identifier for this IA_PD."; "The unique identifier for this IA_PD.";
skipping to change at page 63, line 11 skipping to change at page 63, line 27
"Reference to the IA_NA lease."; "Reference to the IA_NA lease.";
} }
leaf lease-ia-ta { leaf lease-ia-ta {
type leafref { type leafref {
path "/dhcpv6-client/client-if/ia-ta/ia-id"; path "/dhcpv6-client/client-if/ia-ta/ia-id";
} }
description description
"Reference to the IA_TA lease."; "Reference to the IA_TA lease.";
} }
leaf lease-ia-pd { leaf lease-ia-pd {
if-feature prefix-delegation;
type leafref { type leafref {
path "/dhcpv6-client/client-if/ia-pd/ia-id"; path "/dhcpv6-client/client-if/ia-pd/ia-id";
} }
description description
"Reference to the IA_PD lease."; "Reference to the IA_PD lease.";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3.4. DHCPv6 Common YANG Module 3.4. DHCPv6 Common YANG Module
This module imports typedefs from [RFC6991]. This module imports typedefs from [RFC6991].
<CODE BEGINS> file "ietf-dhcpv6-common@2021-06-01.yang" <CODE BEGINS> file "ietf-dhcpv6-common@2021-06-14.yang"
module ietf-dhcpv6-common { module ietf-dhcpv6-common {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-common"; namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-common";
prefix "dhc6"; prefix "dhc6";
organization organization
"IETF DHC (Dynamic Host Configuration) Working Group"; "IETF DHC (Dynamic Host Configuration) Working Group";
contact contact
skipping to change at page 64, line 21 skipping to change at page 64, line 37
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2018-01-30 { revision 2021-06-14 {
description description
"Initial revision"; "Initial Revision.";
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; reference
"XXXX: YANG Data Model for DHCPv6 Configuration";
} }
typedef threshold { typedef threshold {
type uint8 { type uint8 {
range 1..100; range 1..100;
} }
description description
"Threshold value in percent."; "Threshold value in percent.";
} }
typedef timer-seconds32 { typedef timer-seconds32 {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Timer value type, in seconds (32-bit range)."; "Timer value type, in seconds (32-bit range).";
} }
typedef duid-base { typedef duid-base {
type string { type string {
pattern '([0-9a-fA-F]{2}){3,130}'; pattern '([0-9a-fA-F]{2}){3,130}';
skipping to change at page 64, line 50 skipping to change at page 65, line 19
} }
typedef duid-base { typedef duid-base {
type string { type string {
pattern '([0-9a-fA-F]{2}){3,130}'; pattern '([0-9a-fA-F]{2}){3,130}';
} }
description description
"Each DHCP server and client has a DUID (DHCP Unique "Each DHCP server and client has a DUID (DHCP Unique
Identifier). The DUID consists of a two-octet Identifier). The DUID consists of a two-octet
type field and an arbitrary length (1-128 octets) content type field and an arbitrary length (1-128 octets) content
field. The duid-base type provides the field. The duid-base type is used by other duid types with
additional pattern constraints.
Currently, there are four defined types of DUIDs Currently, there are four defined types of DUIDs
in RFC 8415 and RFC 6355 - DUID-LLT, DUID-EN, DUID-LL in RFC 8415 and RFC 6355 - DUID-LLT, DUID-EN, DUID-LL
and DUID-UUID. DUID-unstructured represents DUIDs which and DUID-UUID. DUID-unstructured represents DUIDs which
do not follow any of the defined formats."; do not follow any of the defined formats.";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 11 IPv6 (DHCPv6), Section 11
RFC 6355: Definition of the UUID-Based DHCPv6 Unique RFC 6355: Definition of the UUID-Based DHCPv6 Unique
Identifier (DUID-UUID), Section 4"; Identifier (DUID-UUID), Section 4";
} }
typedef duid-llt { typedef duid-llt {
type duid-base { type duid-base {
pattern '0001' pattern '0001'
+ '[0-9a-fA-F]{12,}'; + '[0-9a-fA-F]{12,}';
} }
description description
"DUID type 1, based on Link-Layer Address Plus Time "DUID type 1, based on Link-Layer Address Plus Time
(DUID-LLT). Constructed with a 2-byte hardware type assigned (DUID-LLT). Constructed with a 2-octet hardware type assigned
by IANA, 4-bytes containing the time the DUID is generated by IANA, 4-octet containing the time the DUID is generated
(represented in seconds since midnight (UTC), January 1, 2000, (represented in seconds since midnight (UTC), January 1, 2000,
modulo 2^32), and a link-layer address. The address is encoded modulo 2^32), and a link-layer address. The address is encoded
without separator characters. For example: without separator characters. For example:
+------+----+----------+--------------+ +------+------+----------+--------------+
| 0001 | 06 | 28490058 | 00005E005300 | | 0001 | 0006 | 28490058 | 00005E005300 |
+------+----+----------+--------------+ +------+------+----------+--------------+
This example includes the 2-octet DUID type of 1 (0001), the This example includes the 2-octet DUID type of 1 (0x01), the
hardware type is 06 (IEEE Hardware Types) the creation hardware type is 0x06 (IEEE Hardware Types) the creation
time is 0x284900580 (constructed as described above). Finally, time is 0x028490058 (constructed as described above). Finally,
the link-layer address is 00005E005300 (EUI-48 address the link-layer address is 0x5E005300 (EUI-48 address
00-00-5E-00-53-00)"; 00-00-5E-00-53-00)";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 11.2 IPv6 (DHCPv6), Section 11.2
IANA 'Hardware Types' registry. IANA 'Hardware Types' registry.
<https://www.iana.org/assignments/arp-parameters>"; <https://www.iana.org/assignments/arp-parameters>";
} }
typedef duid-en { typedef duid-en {
type duid-base { type duid-base {
pattern '0002' pattern '0002'
+ '[0-9a-fA-F]{4,}'; + '[0-9a-fA-F]{4,}';
} }
description description
"DUID type 2, assigned by vendor based on Enterprise "DUID type 2, assigned by vendor based on Enterprise
Number (DUID-EN). This DUID consists of the 4-octet vendor's Number (DUID-EN). This DUID consists of the 4-octet vendor's
registered Private Enterprise Number as maintained by IANA registered Private Enterprise Number as maintained by IANA
followed by a unique identifier assigned by the vendor. For followed by a unique identifier assigned by the vendor. For
example: example:
+------+------+------------------+ +------+----------+------------------+
| 0002 | 0009 | 0CC084D303000912 | | 0002 | 00000009 | 0CC084D303000912 |
+------+------+------------------+ +------+----------+------------------+
This example includes the 2-octet DUID type of 2 (0002),
4-octets for the Enterprise Number (0009), followed by 8-octets
of identifier data (0x0CC084D303000912)."; This example includes the 2-octet DUID type of 2 (0x02),
4-octets for the Enterprise Number (0x09), followed by
8-octets of identifier data (0x0CC084D303000912).";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 11.3 IPv6 (DHCPv6), Section 11.3
IANA 'Private Enterprise Numbers' registry. IANA 'Private Enterprise Numbers' registry.
<https://www.iana.org/assignments/enterprise-numbers>"; <https://www.iana.org/assignments/enterprise-numbers>";
} }
typedef duid-ll { typedef duid-ll {
type duid-base { type duid-base {
pattern '0003' pattern '0003'
+ '([0-9a-fA-F]){4,}'; + '([0-9a-fA-F]){4,}';
} }
description description
"DUID type 3, based on Link-Layer Address (DUID-LL). "DUID type 3, based on Link-Layer Address (DUID-LL).
Constructed with a 2-byte hardware type assigned Constructed with a 2-octet hardware type assigned
by IANA, and a link-layer address. The address is encoded by IANA, and a link-layer address. The address is encoded
without separator characters. For example: without separator characters. For example:
+------+----+--------------+ +------+------+--------------+
| 0003 | 06 | 00005E005300 | | 0003 | 0006 | 00005E005300 |
+------+----+--------------+ +------+------+--------------+
This example includes the 2-octet DUID type of 3 (0x03), the
hardware type is 0x06 (IEEE Hardware Types), and the link-layer
This example includes the 2-octet DUID type of 3 (0003), the address is 0x5E005300 (EUI-48 address 00-00-5E-00-53-00)";
hardware type is 06 (IEEE Hardware Types), and the link-layer
address is 00005E005300 (EUI-48 address 00-00-5E-00-53-00)";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 11.4 IPv6 (DHCPv6), Section 11.4
IANA 'Hardware Types' registry. IANA 'Hardware Types' registry.
<https://www.iana.org/assignments/arp-parameters>"; <https://www.iana.org/assignments/arp-parameters>";
} }
typedef duid-uuid { typedef duid-uuid {
type duid-base { type duid-base {
pattern '0004' pattern '0004'
+ '[0-9a-fA-F]{32}'; + '[0-9a-fA-F]{32}';
} }
description description
"DUID type 4, based on Universally Unique Identifier "DUID type 4, based on Universally Unique Identifier
(DUID-UUID). This type of DUID consists of 16 octets (DUID-UUID). This type of DUID consists of 16 octets
containing a 128-bit UUID. For example: containing a 128-bit UUID. For example:
+------+----------------------------------+ +------+----------------------------------+
| 0004 | 9f03b182705747e38a1e422910078642 | | 0004 | 9f03b182705747e38a1e422910078642 |
+------+----------------------------------+ +------+----------------------------------+
This example includes the 2-octet DUID type of 4 (0004), and This example includes the 2-octet DUID type of 4 (0x04), and
the UUID 9f03b182-7057-47e3-8a1e-422910078642."; the UUID 9f03b182-7057-47e3-8a1e-422910078642.";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 11.5 IPv6 (DHCPv6), Section 11.5
RFC 6355: Definition of the UUID-Based DHCPv6 Unique Identifier RFC 6355: Definition of the UUID-Based DHCPv6 Unique Identifier
(DUID-UUID)"; (DUID-UUID)";
} }
typedef duid-unstructured { typedef duid-unstructured {
type duid-base { type duid-base {
skipping to change at page 67, line 33 skipping to change at page 68, line 4
} }
description description
"Used for DUIDs following any other formats than DUID "Used for DUIDs following any other formats than DUID
types 1-4. For example: types 1-4. For example:
+----------------------------------+ +----------------------------------+
| 7b6a164d325946539dc540fb539bc430 | | 7b6a164d325946539dc540fb539bc430 |
+----------------------------------+ +----------------------------------+
Here, an arbitrary 16-octet value is used. The only constraint Here, an arbitrary 16-octet value is used. The only constraint
placed on this is that the first 2-octects are not 0001-0004 placed on this is that the first 2-octects are not 0x01-0x04
to avoid collision with the other defined DUID types to avoid collision with the other defined DUID types
(duid-llt, duid-en, duid-ll, or duid-uuid)."; (duid-llt, duid-en, duid-ll, or duid-uuid).";
reference "RFC 8415: Dynamic Host Configuration Protocol for reference "RFC 8415: Dynamic Host Configuration Protocol for
IPv6 (DHCPv6), Section 11"; IPv6 (DHCPv6), Section 11";
} }
typedef duid { typedef duid {
type union { type union {
type duid-llt; type duid-llt;
type duid-en; type duid-en;
skipping to change at page 73, line 7 skipping to change at page 73, line 31
URI: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-common URI: urn:ietf:params:xml:ns:yang:ietf-dhcpv6-common
Registrant Contact: The IESG. Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace. XML: N/A; the requested URI is an XML namespace.
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-server 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-server prefix: dhc6-srv
reference: RFC XXXX YANG Data Model for DHCPv6 Configuration reference: RFC XXXX YANG Data Model for DHCPv6 Configuration
name: ietf-dhcpv6-relay 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-client prefix: dhc6-rly
reference: RFC XXXX YANG Data Model for DHCPv6 Configuration reference: RFC XXXX YANG Data Model for DHCPv6 Configuration
name: ietf-dhcpv6-client 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-relay prefix: dhc6-clnt
reference: RFC XXXX YANG Data Model for DHCPv6 Configuration reference: RFC XXXX YANG Data Model for DHCPv6 Configuration
name: ietf-dhcpv6-common 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-common prefix: dhc6
reference: RFC XXXX YANG Data Model for DHCPv6 Configuration reference: RFC XXXX YANG Data Model for DHCPv6 Configuration
6. Acknowledgments 6. Acknowledgments
The authors would like to thank Qi Sun, Lishan Li, Hao Wang, Tomek The authors would like to thank Qi Sun, Lishan Li, Hao Wang, Tomek
Mrugalski, Marcin Siodelski, Bernie Volz, Ted Lemon, Bing Liu, Tom Mrugalski, Marcin Siodelski, Bernie Volz, Ted Lemon, Bing Liu, Tom
Petch, and Acee Lindem for their valuable comments and contributions Petch, and Acee Lindem for their valuable comments and contributions
to this work. to this work.
7. Contributors 7. Contributors
skipping to change at page 79, line 34 skipping to change at page 79, line 34
</address-pool> </address-pool>
</address-pools> </address-pools>
Figure 5: Host Reservation Configuration Example XML Figure 5: Host Reservation Configuration Example XML
The following example shows configuration for a network range and The following example shows configuration for a network range and
pool to be used for delegating prefixes to clients. In this example, pool to be used for delegating prefixes to clients. In this example,
each client will receive a /56 prefix. each client will receive a /56 prefix.
The 'max-pd-space-utiliation' is set to 80 so that a 'prefix-pool- The 'max-pd-space-utiliation' is set to 80 so that a 'prefix-pool-
utilization-threshold-exceeded' notification will be raised. utilization-threshold-exceeded' notification will be raised if the
number of prefix allocations exceeds this.
<network-ranges> <network-ranges>
<network-range> <network-range>
<id>1</id> <id>1</id>
<description>prefix-pool-example</description> <description>prefix-pool-example</description>
<network-prefix>2001:db8::/32</network-prefix> <network-prefix>2001:db8::/32</network-prefix>
<prefix-pools> <prefix-pools>
<valid-lifetime>54000</valid-lifetime> <valid-lifetime>54000</valid-lifetime>
<renew-time>7200</renew-time> <renew-time>7200</renew-time>
<rebind-time>32400</rebind-time> <rebind-time>32400</rebind-time>
skipping to change at page 83, line 15 skipping to change at page 83, line 15
* Sets the client's DUID. * Sets the client's DUID.
* Configures a list of option codes that will be requested by the * Configures a list of option codes that will be requested by the
client in its Option Request Option (OPTION_ORO (5)). client in its Option Request Option (OPTION_ORO (5)).
* Configures a single instance of the Vendor-specific Information * Configures a single instance of the Vendor-specific Information
Option (OPTION_VENDOR_OPTS (17)) with a single sub-option data Option (OPTION_VENDOR_OPTS (17)) with a single sub-option data
item. item.
* Requests a non-temporary IPv6 address (IA_NA) with an identity * Requests a non-temporary IPv6 address (IA_NA) with an identity
association interface identifier of 00000001. association interface identifier of 1.
* Requests an IPv6 delegated prefix address (IA_PD) with an identity * Requests an IPv6 delegated prefix address (IA_PD) with an identity
association interface identifier of 00000002. association interface identifier of 2.
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
<interface> <interface>
<name>eth0</name> <name>eth0</name>
<type>ianaift:ethernetCsmacd</type> <type>ianaift:ethernetCsmacd</type>
<description>DHCPv6 Relay Interface</description> <description>DHCPv6 Relay Interface</description>
<enabled>true</enabled> <enabled>true</enabled>
</interface> </interface>
</interfaces> </interfaces>
skipping to change at page 84, line 32 skipping to change at page 84, line 32
<option-request-option> <option-request-option>
<oro-option>17</oro-option> <oro-option>17</oro-option>
<oro-option>23</oro-option> <oro-option>23</oro-option>
<oro-option>24</oro-option> <oro-option>24</oro-option>
<oro-option>82</oro-option> <oro-option>82</oro-option>
</option-request-option> </option-request-option>
<vendor-specific-information-options> <vendor-specific-information-options>
<vendor-specific-information-option> <vendor-specific-information-option>
<enterprise-number>9</enterprise-number> <enterprise-number>9</enterprise-number>
<vendor-option-data> <vendor-option-data>
<sub-option-code>01</sub-option-code> <sub-option-code>1</sub-option-code>
<sub-option-data>abcd1234</sub-option-data> <sub-option-data>abcd1234</sub-option-data>
</vendor-option-data> </vendor-option-data>
</vendor-specific-information-option> </vendor-specific-information-option>
</vendor-specific-information-options> </vendor-specific-information-options>
</client-configured-options> </client-configured-options>
<ia-na> <ia-na>
<ia-id>00000001</ia-id> <ia-id>1</ia-id>
</ia-na> </ia-na>
<ia-pd> <ia-pd>
<ia-id>00000002</ia-id> <ia-id>2</ia-id>
</ia-pd> </ia-pd>
</client-if> </client-if>
</dhcpv6-client> </dhcpv6-client>
Figure 9: Basic Server Configuration Example XML Figure 9: Basic Server Configuration Example XML
Appendix B. Example of Augmenting Additional DHCPv6 Option Definitions Appendix B. Example of Augmenting Additional DHCPv6 Option Definitions
The following section provides a example of how the DHCPv6 option The following section provides a example of how the DHCPv6 option
definitions can be extended to include additional options. It is definitions can be extended to include additional options. It is
skipping to change at page 86, line 37 skipping to change at page 86, line 37
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-10-18 { revision 2021-06-14 {
description description
"Initial version."; "Initial Revision.";
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; reference
"XXXX: YANG Data Model for DHCPv6 Configuration";
} }
/* /*
* Groupings * Groupings
*/ */
grouping sip-server-domain-name-list-option-group { grouping sip-server-domain-name-list-option-group {
description description
"OPTION_SIP_SERVER_D (21) SIP Servers Domain-Name List"; "OPTION_SIP_SERVER_D (21) SIP Servers Domain-Name List";
reference "RFC 3319: Dynamic Host Configuration Protocol reference "RFC 3319: Dynamic Host Configuration Protocol
skipping to change at page 87, line 51 skipping to change at page 88, line 4
leaf sip-serv-id { leaf sip-serv-id {
type uint8; type uint8;
description description
"SIP server list entry identifier."; "SIP server list entry identifier.";
} }
leaf sip-serv-addr { leaf sip-serv-addr {
type inet:ipv6-address; type inet:ipv6-address;
description description
"SIP server IPv6 address."; "SIP server IPv6 address.";
} }
}
}
} }
} }
/* /*
* Augmentations * Augmentations
*/ */
augment "/dhc6-srv:dhcpv6-server/dhc6-srv:option-sets/" + augment "/dhc6-srv:dhcpv6-server/dhc6-srv:option-sets/" +
"dhc6-srv:option-set" { "dhc6-srv:option-set" {
description description
skipping to change at page 90, line 18 skipping to change at page 90, line 18
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-06-04 { revision 2021-06-14 {
description description
"Initial revision."; "Initial Revision.";
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; reference
"XXXX: YANG Data Model for DHCPv6 Configuration";
} }
/* /*
* Groupings * Groupings
*/ */
grouping config { grouping config {
description description
"Parameters necessary for the configuration of a DHCPv6 "Parameters necessary for the configuration of a DHCPv6
server"; server";
skipping to change at page 97, line 5 skipping to change at page 97, line 5
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; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-06-13 { revision 2021-06-14 {
description description
"Initial version."; "Initial Revision.";
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; reference
"XXXX: YANG Data Model for DHCPv6 Configuration";
} }
/* /*
* Groupings * Groupings
*/ */
grouping client-class-id { grouping client-class-id {
description description
"Definitions of client message classification for "Definitions of client message classification for
authorization and assignment purposes."; authorization and assignment purposes.";
skipping to change at page 100, line 51 skipping to change at page 101, line 4
case client-duid-id { case client-duid-id {
description description
"Client class selection based on the value of the "Client class selection based on the value of the
received client DUID."; received client DUID.";
leaf duid { leaf duid {
type dhc6:duid; type dhc6:duid;
description description
"Client DUID."; "Client DUID.";
} }
} }
}
}
} }
/* /*
* Augmentations * Augmentations
*/ */
augment "/dhc6-srv:dhcpv6-server/dhc6-srv:class-selector" { augment "/dhc6-srv:dhcpv6-server/dhc6-srv:class-selector" {
description description
"Augment class selector functions to the DHCPv6 server "Augment class selector functions to the DHCPv6 server
module."; module.";
 End of changes. 58 change blocks. 
76 lines changed or deleted 99 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/