draft-ietf-dhc-dhcpv6-yang-06.txt | draft-ietf-dhc-dhcpv6-yang-07.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: September 5, 2018 I. Farrer | Expires: March 8, 2019 I. Farrer | |||
S. Zechlin | S. Zechlin | |||
Deutsche Telekom AG | Deutsche Telekom AG | |||
Z. He | Z. He | |||
Tsinghua University | Tsinghua University | |||
March 4, 2018 | September 4, 2018 | |||
YANG Data Model for DHCPv6 Configuration | YANG Data Model for DHCPv6 Configuration | |||
draft-ietf-dhc-dhcpv6-yang-06 | draft-ietf-dhc-dhcpv6-yang-07 | |||
Abstract | Abstract | |||
This document describes a YANG data model [RFC6020] for the | This document describes a YANG data model [RFC6020] for the | |||
configuration and management of DHCPv6 servers, relays, and clients. | configuration and 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", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
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 September 5, 2018. | This Internet-Draft will expire on March 8, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 22 ¶ | skipping to change at page 2, line 22 ¶ | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. DHCPv6 Tree Diagram . . . . . . . . . . . . . . . . . . . . . 3 | 2. DHCPv6 Tree Diagram . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. DHCPv6 Server Tree Diagrams . . . . . . . . . . . . . . . 3 | 2.1. DHCPv6 Server Tree Diagrams . . . . . . . . . . . . . . . 3 | |||
2.2. DHCPv6 Relay Tree Diagrams . . . . . . . . . . . . . . . 16 | 2.2. DHCPv6 Relay Tree Diagrams . . . . . . . . . . . . . . . 16 | |||
2.3. DHCPv6 Client Tree Diagrams . . . . . . . . . . . . . . . 19 | 2.3. DHCPv6 Client Tree Diagrams . . . . . . . . . . . . . . . 20 | |||
3. DHCPv6 YANG Model . . . . . . . . . . . . . . . . . . . . . . 27 | 3. DHCPv6 YANG Model . . . . . . . . . . . . . . . . . . . . . . 27 | |||
3.1. DHCPv6 Server YANG Model . . . . . . . . . . . . . . . . 27 | 3.1. DHCPv6 Server YANG Model . . . . . . . . . . . . . . . . 27 | |||
3.2. DHCPv6 Relay YANG Model . . . . . . . . . . . . . . . . . 45 | 3.2. DHCPv6 Relay YANG Model . . . . . . . . . . . . . . . . . 47 | |||
3.3. DHCPv6 Client YANG Model . . . . . . . . . . . . . . . . 55 | 3.3. DHCPv6 Client YANG Model . . . . . . . . . . . . . . . . 57 | |||
3.4. DHCPv6 Options YANG Model . . . . . . . . . . . . . . . . 62 | 3.4. DHCPv6 Options YANG Model . . . . . . . . . . . . . . . . 65 | |||
3.5. DHCPv6 Types YANG Model . . . . . . . . . . . . . . . . . 91 | 3.5. DHCPv6 Types YANG Model . . . . . . . . . . . . . . . . . 94 | |||
4. Security Considerations (TBD) . . . . . . . . . . . . . . . . 95 | 4. Security Considerations (TBD) . . . . . . . . . . . . . . . . 99 | |||
5. IANA Considerations (TBD) . . . . . . . . . . . . . . . . . . 96 | 5. IANA Considerations (TBD) . . . . . . . . . . . . . . . . . . 99 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 96 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 99 | |||
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 96 | 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 99 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 96 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 100 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 97 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 100 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 97 | 8.2. Informative References . . . . . . . . . . . . . . . . . 100 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 99 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 102 | |||
1. Introduction | 1. Introduction | |||
DHCPv6 [RFC3315] is widely used for supplying configuration and other | DHCPv6 [RFC3315] 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 a DHCPv6 YANG data model, containing sub-modules for the | defines a DHCPv6 YANG data model, containing sub-modules for the | |||
configuration and management of DHCPv6 servers, relays and clients. | configuration and management of DHCPv6 servers, relays and clients. | |||
A single YANG model covering all of these elements provides an | A single YANG model covering all of these elements provides an | |||
operator with a common interface for the management of the entire | operator with a common interface for the management of the entire | |||
DHCPv6 deployment in their network. | DHCPv6 deployment in their network. | |||
skipping to change at page 3, line 36 ¶ | skipping to change at page 3, line 36 ¶ | |||
A simplified graphical representation of the data model is provided | A simplified graphical representation of the data model is provided | |||
in this d cument. For a description of the symbols in these | in this d cument. For a description of the symbols in these | |||
diagrams, please refer to [I-D.ietf-netmod-yang-tree-diagrams]. | diagrams, please refer to [I-D.ietf-netmod-yang-tree-diagrams]. | |||
2. DHCPv6 Tree Diagram | 2. DHCPv6 Tree Diagram | |||
2.1. DHCPv6 Server Tree Diagrams | 2.1. DHCPv6 Server Tree Diagrams | |||
module: ietf-dhcpv6-server | module: ietf-dhcpv6-server | |||
+--rw server! | +--rw server! | |||
+--rw server-config | +--rw server-config | |||
| +--rw serv-attributes | | +--rw serv-attributes | |||
| | +--rw duid | | | +--rw duid | |||
| | | +--rw type-code? uint16 | | | | +--rw type-code? uint16 | |||
| | | +--rw (duid-type)? | | | | +--rw (duid-type)? | |||
| | | +--:(duid-llt) | | | | +--:(duid-llt) | |||
| | | | +--rw duid-llt-hardware-type? uint16 | | | | | +--rw duid-llt-hardware-type? uint16 | |||
| | | | +--rw duid-llt-time? yang:timeticks | | | | | +--rw duid-llt-time? yang:timeticks | |||
| | | | +--rw duid-llt-link-layer-addr? yang:mac-address | | | | | +--rw duid-llt-link-layer-addr? yang:mac-address | |||
| | | +--:(duid-en) | | | | +--:(duid-en) | |||
| | | | +--rw duid-en-enterprise-number? uint32 | | | | | +--rw duid-en-enterprise-number? uint32 | |||
| | | | +--rw duid-en-identifier? string | | | | | +--rw duid-en-identifier? string | |||
| | | +--:(duid-ll) | | | | +--:(duid-ll) | |||
| | | | +--rw duid-ll-hardware-type? uint16 | | | | | +--rw duid-ll-hardware-type? uint16 | |||
| | | | +--rw duid-ll-link-layer-addr? yang:mac-address | | | | | +--rw duid-ll-link-layer-addr? yang:mac-address | |||
| | | +--:(duid-uuid) | | | | +--:(duid-uuid) | |||
| | | | +--rw uuid? yang:uuid | | | | | +--rw uuid? yang:uuid | |||
| | | +--:(duid-unknown) | | | | +--:(duid-unknown) | |||
| | | +--rw data? binary | | | | +--rw data? binary | |||
| | +--rw name? string | | | +--rw name? string | |||
| | +--rw description? string | | | +--rw description? string | |||
| | +--rw ipv6-address* inet:ipv6-address | | | +--rw ipv6-address* inet:ipv6-address | |||
| | +--rw interfaces-config* if:interface-ref | | | +--rw interfaces-config* if:interface-ref | |||
| | +--rw vendor-info | | | +--rw lease-storage | |||
| | +--rw ent-num uint32 | | | | +--rw (storage-type)? | |||
| | +--rw data* string | | | | +--:(memfile) | |||
| +--rw option-sets | | | | | +--rw memfile-name? string | |||
| | +--rw option-set* [option-set-id] | | | | | +--rw memfile-lfc-interval? uint64 | |||
| | +--rw option-set-id uint32 | | | | +--:(mysql) | |||
| | +--rw server-unicast-option! {server-unicast-op}? | | | | | +--rw mysql-name? string | |||
| | | +--rw server-address? inet:ipv6-address | | | | | +--rw mysql-host? string | |||
| | +--rw sip-server-domain-name-list-option! | | | | | +--rw mysql-password? string | |||
{sip-server-domain-name-list-op}? | | | | | +--rw mysql-port? uint8 | |||
| | | +--rw sip-serv-domain-name string | | | | | +--rw mysql-lfc-interval? uint64 | |||
| | +--rw sip-server-address-list-option! | | | | | +--rw mysql-connect-timeout? uint64 | |||
{sip-server-address-list-op}? | | | | +--:(postgresql) | |||
| | | +--rw sip-server* [sip-serv-id] | | | | | +--rw postgresql-name? string | |||
| | | +--rw sip-serv-id uint8 | | | | | +--rw postgresql-host? string | |||
| | | +--rw sip-serv-addr inet:ipv6-address | | | | | +--rw postgresql-password? string | |||
| | +--rw dns-servers-option! {dns-servers-op}? | | | | | +--rw postgresql-port? uint8 | |||
| | | +--rw dns-server* [dns-serv-id] | | | | | +--rw postgresql-lfc-interval? uint64 | |||
| | | +--rw dns-serv-id uint8 | | | | | +--rw postgresql-connect-timeout? uint64 | |||
| | | +--rw dns-serv-addr inet:ipv6-address | | | | +--:(cassandra) | |||
| | +--rw domain-searchlist-option! {domain-searchlist-op}? | | | | +--rw cassandra-name? string | |||
| | | +--rw domain-searchlist* [domain-searchlist-id] | | | | +--rw cassandra-contact-points? string | |||
| | | +--rw domain-searchlist-id uint8 | | | | +--rw cassandra-password? string | |||
| | | +--rw domain-search-list-entry string | | | | +--rw cassandra-lfc-interval? uint64 | |||
| | +--rw nis-config-option! {nis-config-op}? | | | | +--rw cassandra-connect-timeout? uint64 | |||
| | | +--rw nis-server* [nis-serv-id] | | | +--rw vendor-info | |||
| | | +--rw nis-serv-id uint8 | | | +--rw ent-num uint32 | |||
| | | +--rw nis-serv-addr inet:ipv6-address | | | +--rw data* string | |||
| | +--rw nis-plus-config-option! {nis-plus-config-op}? | | +--rw option-sets | |||
| | | +--rw nis-plus-server* [nis-plus-serv-id] | | | +--rw option-set* [option-set-id] | |||
| | | +--rw nis-plus-serv-id uint8 | | | +--rw option-set-id uint32 | |||
| | | +--rw nis-plus-serv-addr inet:ipv6-address | | | +--rw server-unicast-option! {server-unicast-op}? | |||
| | +--rw nis-domain-name-option! {nis-domain-name-op}? | | | | +--rw server-address? inet:ipv6-address | |||
| | | +--rw nis-domain-name? string | | | +--rw sip-server-domain-name-list-option! {sip-server-domain-name-list-op}? | |||
| | +--rw nis-plus-domain-name-option! | | | | +--rw sip-serv-domain-name string | |||
{nis-plus-domain-name-op}? | | | +--rw sip-server-address-list-option! {sip-server-address-list-op}? | |||
| | | +--rw nis-plus-domain-name? string | | | | +--rw sip-server* [sip-serv-id] | |||
| | +--rw sntp-server-option! {sntp-server-op}? | | | | +--rw sip-serv-id uint8 | |||
| | | +--rw sntp-server* [sntp-serv-id] | | | | +--rw sip-serv-addr inet:ipv6-address | |||
| | | +--rw sntp-serv-id uint8 | | | +--rw dns-servers-option! {dns-servers-op}? | |||
| | | +--rw sntp-serv-addr inet:ipv6-address | | | | +--rw dns-server* [dns-serv-id] | |||
| | +--rw info-refresh-time-option! {info-refresh-time-op}? | | | | +--rw dns-serv-id uint8 | |||
| | | +--rw info-refresh-time yang:timeticks | | | | +--rw dns-serv-addr inet:ipv6-address | |||
| | +--rw client-fqdn-option! {client-fqdn-op}? | | | +--rw domain-searchlist-option! {domain-searchlist-op}? | |||
| | | +--rw server-initiate-update boolean | | | | +--rw domain-searchlist* [domain-searchlist-id] | |||
| | | +--rw client-initiate-update boolean | | | | +--rw domain-searchlist-id uint8 | |||
| | | +--rw modify-name-from-cli boolean | | | | +--rw domain-search-list-entry string | |||
| | +--rw posix-timezone-option! {posix-timezone-op}? | | | +--rw nis-config-option! {nis-config-op}? | |||
| | | +--rw tz-posix string | | | | +--rw nis-server* [nis-serv-id] | |||
| | +--rw tzdb-timezone-option! {tzdb-timezone-op}? | | | | +--rw nis-serv-id uint8 | |||
| | | +--rw tz-database string | | | | +--rw nis-serv-addr inet:ipv6-address | |||
| | +--rw ntp-server-option! {ntp-server-op}? | | | +--rw nis-plus-config-option! {nis-plus-config-op}? | |||
| | | +--rw ntp-server* [ntp-serv-id] | | | | +--rw nis-plus-server* [nis-plus-serv-id] | |||
| | | +--rw ntp-serv-id uint8 | | | | +--rw nis-plus-serv-id uint8 | |||
| | | +--rw (ntp-time-source-suboption)? | | | | +--rw nis-plus-serv-addr inet:ipv6-address | |||
| | | +--:(server-address) | | | +--rw nis-domain-name-option! {nis-domain-name-op}? | |||
| | | | +--rw ntp-serv-addr-suboption* | | | | +--rw nis-domain-name? string | |||
inet:ipv6-address | | | +--rw nis-plus-domain-name-option! {nis-plus-domain-name-op}? | |||
| | | +--:(server-multicast-address) | | | | +--rw nis-plus-domain-name? string | |||
| | | | +--rw ntp-serv-mul-addr-suboption* | | | +--rw sntp-server-option! {sntp-server-op}? | |||
inet:ipv6-address | | | | +--rw sntp-server* [sntp-serv-id] | |||
| | | +--:(server-fqdn) | | | | +--rw sntp-serv-id uint8 | |||
| | | +--rw ntp-serv-fqdn-suboption* string | | | | +--rw sntp-serv-addr inet:ipv6-address | |||
| | +--rw boot-file-url-option! {boot-file-url-op}? | | | +--rw info-refresh-time-option! {info-refresh-time-op}? | |||
| | | +--rw boot-file* [boot-file-id] | | | | +--rw info-refresh-time yang:timeticks | |||
| | | +--rw boot-file-id uint8 | | | +--rw client-fqdn-option! {client-fqdn-op}? | |||
| | | +--rw suitable-arch-type* uint16 | | | | +--rw server-initiate-update boolean | |||
| | | +--rw suitable-net-if* uint32 | | | | +--rw client-initiate-update boolean | |||
| | | +--rw boot-file-url string | | | | +--rw modify-name-from-cli boolean | |||
| | +--rw boot-file-param-option! {boot-file-param-op}? | | | +--rw posix-timezone-option! {posix-timezone-op}? | |||
| | | +--rw boot-file-paras* [para-id] | | | | +--rw tz-posix string | |||
| | | +--rw para-id uint8 | | | +--rw tzdb-timezone-option! {tzdb-timezone-op}? | |||
| | | +--rw parameter string | | | | +--rw tz-database string | |||
| | +--rw aftr-name-option! {aftr-name-op}? | | | +--rw ntp-server-option! {ntp-server-op}? | |||
| | | +--rw tunnel-endpoint-name string | | | | +--rw ntp-server* [ntp-serv-id] | |||
| | +--rw kbr-default-name-option! {kbr-default-name-op}? | | | | +--rw ntp-serv-id uint8 | |||
| | | +--rw default-realm-name string | | | | +--rw (ntp-time-source-suboption)? | |||
| | +--rw kbr-kdc-option! {kbr-kdc-op}? | | | | +--:(server-address) | |||
| | | +--rw kdc-info* [kdc-id] | | | | | +--rw ntp-serv-addr-suboption* inet:ipv6-address | |||
| | | +--rw kdc-id uint8 | | | | +--:(server-multicast-address) | |||
| | | +--rw priority uint16 | | | | | +--rw ntp-serv-mul-addr-suboption* inet:ipv6-address | |||
| | | +--rw weight uint16 | | | | +--:(server-fqdn) | |||
| | | +--rw transport-type uint8 | | | | +--rw ntp-serv-fqdn-suboption* string | |||
| | | +--rw port-number uint16 | | | +--rw boot-file-url-option! {boot-file-url-op}? | |||
| | | +--rw kdc-ipv6-addr inet:ipv6-address | | | | +--rw boot-file* [boot-file-id] | |||
| | | +--rw realm-name string | | | | +--rw boot-file-id uint8 | |||
| | +--rw sol-max-rt-option! {sol-max-rt-op}? | | | | +--rw suitable-arch-type* uint16 | |||
| | | +--rw sol-max-rt-value yang:timeticks | | | | +--rw suitable-net-if* uint32 | |||
| | +--rw inf-max-rt-option! {inf-max-rt-op}? | | | | +--rw boot-file-url string | |||
| | | +--rw inf-max-rt-value yang:timeticks | | | +--rw boot-file-param-option! {boot-file-param-op}? | |||
| | +--rw addr-selection-option! {addr-selection-op}? | | | | +--rw boot-file-paras* [para-id] | |||
| | | +--rw a-bit-set boolean | | | | +--rw para-id uint8 | |||
| | | +--rw p-bit-set boolean | | | | +--rw parameter string | |||
| | | +--rw policy-table* [policy-id] | | | +--rw aftr-name-option! {aftr-name-op}? | |||
| | | +--rw policy-id uint8 | | | | +--rw tunnel-endpoint-name string | |||
| | | +--rw label uint8 | | | +--rw kbr-default-name-option! {kbr-default-name-op}? | |||
| | | +--rw precedence uint8 | | | | +--rw default-realm-name string | |||
| | | +--rw prefix-len uint8 | | | +--rw kbr-kdc-option! {kbr-kdc-op}? | |||
| | | +--rw prefix inet:ipv6-prefix | | | | +--rw kdc-info* [kdc-id] | |||
| | +--rw pcp-server-option! {pcp-server-op}? | | | | +--rw kdc-id uint8 | |||
| | | +--rw pcp-server* [pcp-serv-id] | | | | +--rw priority uint16 | |||
| | | +--rw pcp-serv-id uint8 | | | | +--rw weight uint16 | |||
| | | +--rw pcp-serv-addr inet:ipv6-address | | | | +--rw transport-type uint8 | |||
| | +--rw s46-rule-option! {s46-rule-op}? | | | | +--rw port-number uint16 | |||
| | | +--rw s46-rule* [rule-id] | | | | +--rw kdc-ipv6-addr inet:ipv6-address | |||
| | | +--rw rule-id uint8 | | | | +--rw realm-name string | |||
| | | +--rw rule-type enumeration | | | +--rw sol-max-rt-option! {sol-max-rt-op}? | |||
| | | +--rw prefix4-len uint8 | | | | +--rw sol-max-rt-value yang:timeticks | |||
| | | +--rw ipv4-prefix inet:ipv4-prefix | | | +--rw inf-max-rt-option! {inf-max-rt-op}? | |||
| | | +--rw prefix6-len uint8 | | | | +--rw inf-max-rt-value yang:timeticks | |||
| | | +--rw ipv6-prefix inet:ipv6-prefix | | | +--rw addr-selection-option! {addr-selection-op}? | |||
| | | +--rw port-parameter | | | | +--rw a-bit-set boolean | |||
| | | +--rw offset uint8 | | | | +--rw p-bit-set boolean | |||
| | | +--rw psid-len uint8 | | | | +--rw policy-table* [policy-id] | |||
| | | +--rw psid uint16 | | | | +--rw policy-id uint8 | |||
| | +--rw s46-br-option! {s46-br-op}? | | | | +--rw label uint8 | |||
| | | +--rw br* [br-id] | | | | +--rw precedence uint8 | |||
| | | +--rw br-id uint8 | | | | +--rw prefix-len uint8 | |||
| | | +--rw br-ipv6-addr inet:ipv6-address | | | | +--rw prefix inet:ipv6-prefix | |||
| | +--rw s46-dmr-option! {s46-dmr-op}? | | | +--rw pcp-server-option! {pcp-server-op}? | |||
| | | +--rw dmr* [dmr-id] | | | | +--rw pcp-server* [pcp-serv-id] | |||
| | | +--rw dmr-id uint8 | | | | +--rw pcp-serv-id uint8 | |||
| | | +--rw dmr-prefix-len uint8 | | | | +--rw pcp-serv-addr inet:ipv6-address | |||
| | | +--rw dmr-ipv6-prefix inet:ipv6-prefix | | | +--rw s46-rule-option! {s46-rule-op}? | |||
| | +--rw s46-v4-v6-binding-option! {s46-v4-v6-binding-op}? | | | | +--rw s46-rule* [rule-id] | |||
| | | +--rw ce* [ce-id] | | | | +--rw rule-id uint8 | |||
| | | +--rw ce-id uint8 | | | | +--rw rule-type enumeration | |||
| | | +--rw ipv4-addr inet:ipv4-address | | | | +--rw prefix4-len uint8 | |||
| | | +--rw bind-prefix6-len uint8 | | | | +--rw ipv4-prefix inet:ipv4-prefix | |||
| | | +--rw bind-ipv6-prefix inet:ipv6-prefix | | | | +--rw prefix6-len uint8 | |||
| | | +--rw port-parameter | | | | +--rw ipv6-prefix inet:ipv6-prefix | |||
| | | +--rw offset uint8 | | | | +--rw port-parameter | |||
| | | +--rw psid-len uint8 | | | | +--rw offset uint8 | |||
| | | +--rw psid uint16 | | | | +--rw psid-len uint8 | |||
| | +--rw operator-option-ipv6-address! | | | | +--rw psid uint16 | |||
{operator-op-ipv6-address}? | | | +--rw s46-br-option! {s46-br-op}? | |||
| | | +--rw br* [br-id] | ||||
| | | +--rw operator-ipv6-addr* [operator-ipv6-addr-id] | | | | +--rw br-id uint8 | |||
| | | +--rw operator-ipv6-addr-id uint8 | | | | +--rw br-ipv6-addr inet:ipv6-address | |||
| | | +--rw operator-ipv6-addr inet:ipv6-address | | | +--rw s46-dmr-option! {s46-dmr-op}? | |||
| | +--rw operator-option-single-flag! | | | | +--rw dmr* [dmr-id] | |||
{operator-op-single-flag}? | | | | +--rw dmr-id uint8 | |||
| | | +--rw flag* [flag-id] | | | | +--rw dmr-prefix-len uint8 | |||
| | | +--rw flag-id uint8 | | | | +--rw dmr-ipv6-prefix inet:ipv6-prefix | |||
| | | +--rw flag-value boolean | | | +--rw s46-v4-v6-binding-option! {s46-v4-v6-binding-op}? | |||
| | +--rw operator-option-ipv6-prefix! | | | | +--rw ce* [ce-id] | |||
{operator-op-ipv6-prefix}? | | | | +--rw ce-id uint8 | |||
| | | +--rw operator-ipv6-prefix* [operator-ipv6-prefix-id] | | | | +--rw ipv4-addr inet:ipv4-address | |||
| | | +--rw operator-ipv6-prefix-id uint8 | | | | +--rw bind-prefix6-len uint8 | |||
| | | +--rw operator-ipv6-prefix6-len uint8 | | | | +--rw bind-ipv6-prefix inet:ipv6-prefix | |||
| | | +--rw operator-ipv6-prefix inet:ipv6-prefix | | | | +--rw port-parameter | |||
| | +--rw operator-option-int32! {operator-op-int32}? | | | | +--rw offset uint8 | |||
| | | +--rw int32val* [int32val-id] | | | | +--rw psid-len uint8 | |||
| | | +--rw int32val-id uint8 | | | | +--rw psid uint16 | |||
| | | +--rw int32val uint32 | | | +--rw operator-option-ipv6-address! {operator-op-ipv6-address}? | |||
| | +--rw operator-option-int16! {operator-op-int16}? | | | | +--rw operator-ipv6-addr* [operator-ipv6-addr-id] | |||
| | | +--rw int16val* [int16val-id] | | | | +--rw operator-ipv6-addr-id uint8 | |||
| | | +--rw int16val-id uint8 | | | | +--rw operator-ipv6-addr inet:ipv6-address | |||
| | | +--rw int16val uint16 | | | +--rw operator-option-single-flag! {operator-op-single-flag}? | |||
| | +--rw operator-option-int8! {operator-op-int8}? | | | | +--rw flag* [flag-id] | |||
| | | +--rw int8val* [int8val-id] | | | | +--rw flag-id uint8 | |||
| | | +--rw int8val-id uint8 | | | | +--rw flag-value boolean | |||
| | | +--rw int8val uint8 | | | +--rw operator-option-ipv6-prefix! {operator-op-ipv6-prefix}? | |||
| | +--rw operator-option-uri! {operator-op-uri}? | | | | +--rw operator-ipv6-prefix* [operator-ipv6-prefix-id] | |||
| | | +--rw uri* [uri-id] | | | | +--rw operator-ipv6-prefix-id uint8 | |||
| | | +--rw uri-id uint8 | | | | +--rw operator-ipv6-prefix6-len uint8 | |||
| | | +--rw uri string | | | | +--rw operator-ipv6-prefix inet:ipv6-prefix | |||
| | +--rw operator-option-textstring! {operator-op-textstring}? | | | +--rw operator-option-int32! {operator-op-int32}? | |||
| | | +--rw textstring* [textstring-id] | | | | +--rw int32val* [int32val-id] | |||
| | | +--rw textstring-id uint8 | | | | +--rw int32val-id uint8 | |||
| | | +--rw textstring string | | | | +--rw int32val uint32 | |||
| | +--rw operator-option-var-data! {operator-op-var-data}? | | | +--rw operator-option-int16! {operator-op-int16}? | |||
| | | +--rw int32val* [var-data-id] | | | | +--rw int16val* [int16val-id] | |||
| | | +--rw var-data-id uint8 | | | | +--rw int16val-id uint8 | |||
| | | +--rw var-data binary | | | | +--rw int16val uint16 | |||
| | +--rw operator-option-dns-wire! {operator-op-dns-wire}? | | | +--rw operator-option-int8! {operator-op-int8}? | |||
| | +--rw operator-option-dns-wire* | | | | +--rw int8val* [int8val-id] | |||
[operator-option-dns-wire-id] | | | | +--rw int8val-id uint8 | |||
| | +--rw operator-option-dns-wire-id uint8 | | | | +--rw int8val uint8 | |||
| | +--rw operator-option-dns-wire binary | | | +--rw operator-option-uri! {operator-op-uri}? | |||
| +--rw network-ranges | | | | +--rw uri* [uri-id] | |||
| | +--rw option-set-id? | | | | +--rw uri-id uint8 | |||
-> /server/server-config/option-sets/option-set/option-set-id | | | | +--rw uri string | |||
| | +--rw network-range* [network-range-id] | | | +--rw operator-option-textstring! {operator-op-textstring}? | |||
| | +--rw network-range-id uint32 | | | | +--rw textstring* [textstring-id] | |||
| | +--rw network-description string | | | | +--rw textstring-id uint8 | |||
| | +--rw network-prefix inet:ipv6-prefix | | | | +--rw textstring string | |||
| | +--rw option-set-id? | | | +--rw operator-option-var-data! {operator-op-var-data}? | |||
-> /server/server-config/option-sets/option-set/option-set-id | | | | +--rw int32val* [var-data-id] | |||
| | +--rw address-pools | | | | +--rw var-data-id uint8 | |||
| | | +--rw address-pool* [pool-id] | | | | +--rw var-data binary | |||
| | | +--rw pool-id uint32 | | | +--rw operator-option-dns-wire! {operator-op-dns-wire}? | |||
| | | +--rw pool-prefix inet:ipv6-prefix | | | +--rw operator-option-dns-wire* [operator-option-dns-wire-id] | |||
| | | +--rw start-address inet:ipv6-address-no-zone | | | +--rw operator-option-dns-wire-id uint8 | |||
| | | +--rw end-address inet:ipv6-address-no-zone | | | +--rw operator-option-dns-wire binary | |||
| | | +--rw client-class? string | | +--rw network-ranges | |||
| | | +--rw valid-lifetime yang:timeticks | | | +--rw option-set-id? -> /server/server-config/option-sets/option-set/option-set-id | |||
| | | +--rw renew-time yang:timeticks | | | +--rw network-range* [network-range-id] | |||
| | | +--rw rebind-time yang:timeticks | | | +--rw network-range-id uint32 | |||
| | | +--rw preferred-lifetime yang:timeticks | | | +--rw network-description string | |||
| | | +--rw rapid-commit boolean | | | +--rw network-prefix inet:ipv6-prefix | |||
| | | +--rw max-address-count threshold | | | +--rw option-set-id? -> /server/server-config/option-sets/option-set/option-set-id | |||
| | | +--rw option-set-id | | | +--rw address-pools | |||
-> /server/server-config/option-sets/option-set/option-set-id | | | | +--rw address-pool* [pool-id] | |||
| | +--rw pd-pools | | | | +--rw pool-id uint32 | |||
| | | +--rw pd-pool* [pool-id] | | | | +--rw pool-prefix inet:ipv6-prefix | |||
| | | +--rw pool-id uint32 | | | | +--rw start-address inet:ipv6-address-no-zone | |||
| | | +--rw prefix inet:ipv6-prefix | | | | +--rw end-address inet:ipv6-address-no-zone | |||
| | | +--rw prefix-length uint8 | | | | +--rw valid-lifetime yang:timeticks | |||
| | | +--rw client-class? string | | | | +--rw renew-time yang:timeticks | |||
| | | +--rw valid-lifetime yang:timeticks | | | | +--rw rebind-time yang:timeticks | |||
| | | +--rw renew-time yang:timeticks | | | | +--rw preferred-lifetime yang:timeticks | |||
| | | +--rw rebind-time yang:timeticks | | | | +--rw rapid-commit boolean | |||
| | | +--rw preferred-lifetime yang:timeticks | | | | +--rw client-class? string | |||
| | | +--rw rapid-commit boolean | | | | +--rw max-address-count threshold | |||
| | | +--rw max-pd-space-utlization threshold | | | | +--rw option-set-id -> /server/server-config/option-sets/option-set/option-set-id | |||
| | | +--rw option-set-id | | | +--rw pd-pools | |||
-> /server/server-config/option-sets/option-set/option-set-id | | | | +--rw pd-pool* [pool-id] | |||
| | +--rw host-reservations | | | | +--rw pool-id uint32 | |||
| | +--rw host-reservation* [cli-id] | | | | +--rw prefix inet:ipv6-prefix | |||
| | +--rw cli-id uint32 | | | | +--rw prefix-length uint8 | |||
| | +--rw (client-identifier)? | | | | +--rw valid-lifetime yang:timeticks | |||
| | | +--:(duid) | | | | +--rw renew-time yang:timeticks | |||
| | | | +--rw type-code? uint16 | | | | +--rw rebind-time yang:timeticks | |||
| | | | +--rw (duid-type)? | | | | +--rw preferred-lifetime yang:timeticks | |||
| | | | +--:(duid-llt) | | | | +--rw rapid-commit boolean | |||
| | | | | +--rw duid-llt-hardware-type? uint16 | | | | +--rw client-class? string | |||
| | | | | +--rw duid-llt-time? | | | | +--rw max-pd-space-utilization threshold | |||
yang:timeticks | | | | +--rw option-set-id -> /server/server-config/option-sets/option-set/option-set-id | |||
| | | | | +--rw duid-llt-link-layer-addr? | | | +--rw host-reservations | |||
yang:mac-address | | | +--rw host-reservation* [cli-id] | |||
| | | | +--:(duid-en) | | | +--rw cli-id uint32 | |||
| | | | | +--rw duid-en-enterprise-number? uint32 | | | +--rw (client-identifier)? | |||
| | | | | +--rw duid-en-identifier? string | | | | +--:(duid) | |||
| | | | +--:(duid-ll) | | | | | +--rw type-code? uint16 | |||
| | | | | +--rw duid-ll-hardware-type? uint16 | | | | | +--rw (duid-type)? | |||
| | | | | +--rw duid-ll-link-layer-addr? | | | | | +--:(duid-llt) | |||
yang:mac-address | | | | | | +--rw duid-llt-hardware-type? uint16 | |||
| | | | +--:(duid-uuid) | | | | | | +--rw duid-llt-time? yang:timeticks | |||
| | | | | +--rw uuid? yang:uuid | | | | | | +--rw duid-llt-link-layer-addr? yang:mac-address | |||
| | | | +--:(duid-unknown) | | | | | +--:(duid-en) | |||
| | | | +--rw data? binary | | | | | | +--rw duid-en-enterprise-number? uint32 | |||
| | | +--:(hw-address) | | | | | | +--rw duid-en-identifier? string | |||
| | | +--rw hardware-address? yang:mac-address | | | | | +--:(duid-ll) | |||
| | +--rw reserv-addr* inet:ipv6-address | | | | | | +--rw duid-ll-hardware-type? uint16 | |||
| | +--rw prefix-reservation* [reserv-prefix-id] | | | | | | +--rw duid-ll-link-layer-addr? yang:mac-address | |||
| | | +--rw reserv-prefix-id uint32 | | | | | +--:(duid-uuid) | |||
| | | +--rw reserv-prefix inet:ipv6-prefix | | | | | | +--rw uuid? yang:uuid | |||
| | | +--rw reserv-prefix-len uint8 | | | | | +--:(duid-unknown) | |||
| | +--rw hostname? string | | | | | +--rw data? binary | |||
| | +--rw option-set-id? | | | | +--:(hw-address) | |||
-> /server/server-config/option-sets/option-set/option-set-id | | | | +--rw hardware-address? yang:mac-address | |||
| +--rw relay-opaque-paras | | | +--rw reserv-addr* inet:ipv6-address | |||
| | +--rw relays* [relay-name] | | | +--rw prefix-reservation* [reserv-prefix-id] | |||
| | +--rw relay-name string | | | | +--rw reserv-prefix-id uint32 | |||
| | +--rw interface-info* [if-name] | | | | +--rw reserv-prefix inet:ipv6-prefix | |||
| | | +--rw if-name string | | | | +--rw reserv-prefix-len uint8 | |||
| | | +--rw interface-id string | | | +--rw hostname? string | |||
| | +--rw subscribers* [subscriber] | | | +--rw option-set-id? -> /server/server-config/option-sets/option-set/option-set-id | |||
| | | +--rw subscriber uint32 | | +--rw relay-opaque-paras | |||
| | | +--rw subscriber-id string | | | +--rw relays* [relay-name] | |||
| | +--rw remote-host* [ent-num] | | | +--rw relay-name string | |||
| | +--rw ent-num uint32 | | | +--rw interface-info* [if-name] | |||
| | +--rw remote-id string | | | | +--rw if-name string | |||
| +--rw rsoo-enabled-options | | | | +--rw interface-id string | |||
| +--rw rsoo-enabled-option* [option-code] | | | +--rw subscribers* [subscriber] | |||
| +--rw option-code uint16 | | | | +--rw subscriber uint32 | |||
| +--rw description string | | | | +--rw subscriber-id string | |||
+--ro server-state | | | +--rw remote-host* [ent-num] | |||
+--ro network-ranges | | | +--rw ent-num uint32 | |||
| +--ro network-range* [network-range-id] | | | +--rw remote-id string | |||
| +--ro network-range-id uint32 | | +--rw rsoo-enabled-options | |||
| +--ro address-pools | | +--rw rsoo-enabled-option* [option-code] | |||
| | +--ro address-pool* [pool-id] | | +--rw option-code uint16 | |||
| | | +--ro pool-id uint32 | | +--rw description string | |||
| | | +--ro total-address-count uint64 | +--ro server-state | |||
| | | +--ro allocated-address-conut uint64 | +--ro network-ranges | |||
| | +--ro binding-info* [cli-id] | | +--ro network-range* [network-range-id] | |||
| | +--ro cli-id uint32 | | +--ro network-range-id uint32 | |||
| | +--ro duid | | +--ro address-pools | |||
| | | +--ro type-code? uint16 | | | +--ro address-pool* [pool-id] | |||
| | | +--ro (duid-type)? | | | | +--ro pool-id uint32 | |||
| | | +--:(duid-llt) | | | | +--ro total-address-count uint64 | |||
| | | | +--ro duid-llt-hardware-type? uint16 | | | | +--ro allocated-address-conut uint64 | |||
| | | | +--ro duid-llt-time? yang:timeticks | | | +--ro binding-info* [cli-id] | |||
| | | | +--ro duid-llt-link-layer-addr? | | | +--ro cli-id uint32 | |||
yang:mac-address | | | +--ro duid | |||
| | | +--:(duid-en) | | | | +--ro type-code? uint16 | |||
| | | | +--ro duid-en-enterprise-number? uint32 | | | | +--ro (duid-type)? | |||
| | | | +--ro duid-en-identifier? string | | | | +--:(duid-llt) | |||
| | | +--:(duid-ll) | | | | | +--ro duid-llt-hardware-type? uint16 | |||
| | | | +--ro duid-ll-hardware-type? uint16 | | | | | +--ro duid-llt-time? yang:timeticks | |||
| | | | +--ro duid-ll-link-layer-addr? | | | | | +--ro duid-llt-link-layer-addr? yang:mac-address | |||
yang:mac-address | | | | +--:(duid-en) | |||
| | | +--:(duid-uuid) | | | | | +--ro duid-en-enterprise-number? uint32 | |||
| | | | +--ro uuid? yang:uuid | | | | | +--ro duid-en-identifier? string | |||
| | | +--:(duid-unknown) | | | | +--:(duid-ll) | |||
| | | +--ro data? binary | | | | | +--ro duid-ll-hardware-type? uint16 | |||
| | +--ro cli-ia* [iaid] | | | | | +--ro duid-ll-link-layer-addr? yang:mac-address | |||
| | +--ro ia-type string | | | | +--:(duid-uuid) | |||
| | +--ro iaid uint32 | | | | | +--ro uuid? yang:uuid | |||
| | +--ro cli-addr* inet:ipv6-address | | | | +--:(duid-unknown) | |||
| | +--ro pool-id uint32 | | | | +--ro data? binary | |||
| +--ro pd-pools | | | +--ro cli-ia* [iaid] | |||
| | +--ro prefix-pool* [pool-id] | | | +--ro ia-type string | |||
| | | +--ro pool-id uint32 | | | +--ro iaid uint32 | |||
| | | +--ro pd-space-utilization threshold | | | +--ro cli-addr* inet:ipv6-address | |||
| | +--ro binding-info* [cli-id] | | | +--ro pool-id uint32 | |||
| | +--ro cli-id uint32 | | +--ro pd-pools | |||
| | +--ro duid | | | +--ro prefix-pool* [pool-id] | |||
| | | +--ro type-code? uint16 | | | | +--ro pool-id uint32 | |||
| | | +--ro (duid-type)? | | | | +--ro pd-space-utilization threshold | |||
| | | +--:(duid-llt) | | | +--ro binding-info* [cli-id] | |||
| | | | +--ro duid-llt-hardware-type? uint16 | | | +--ro cli-id uint32 | |||
| | | | +--ro duid-llt-time? yang:timeticks | | | +--ro duid | |||
| | | | +--ro duid-llt-link-layer-addr? | | | | +--ro type-code? uint16 | |||
yang:mac-address | | | | +--ro (duid-type)? | |||
| | | +--:(duid-en) | | | | +--:(duid-llt) | |||
| | | | +--ro duid-en-enterprise-number? uint32 | | | | | +--ro duid-llt-hardware-type? uint16 | |||
| | | | +--ro duid-en-identifier? string | | | | | +--ro duid-llt-time? yang:timeticks | |||
| | | +--:(duid-ll) | | | | | +--ro duid-llt-link-layer-addr? yang:mac-address | |||
| | | | +--ro duid-ll-hardware-type? uint16 | | | | +--:(duid-en) | |||
| | | | +--ro duid-ll-link-layer-addr? | | | | | +--ro duid-en-enterprise-number? uint32 | |||
yang:mac-address | | | | | +--ro duid-en-identifier? string | |||
| | | +--:(duid-uuid) | | | | +--:(duid-ll) | |||
| | | | +--ro uuid? yang:uuid | | | | | +--ro duid-ll-hardware-type? uint16 | |||
| | | +--:(duid-unknown) | | | | | +--ro duid-ll-link-layer-addr? yang:mac-address | |||
| | | +--ro data? binary | | | | +--:(duid-uuid) | |||
| | +--ro cli-iapd* [iaid] | | | | | +--ro uuid? yang:uuid | |||
| | +--ro iaid uint32 | | | | +--:(duid-unknown) | |||
| | +--ro cli-prefix* inet:ipv6-prefix | | | | +--ro data? binary | |||
| | +--ro cli-prefix-len* uint8 | | | +--ro cli-iapd* [iaid] | |||
| | +--ro pool-id uint32 | | | +--ro iaid uint32 | |||
| +--ro host-reservations | | | +--ro cli-prefix* inet:ipv6-prefix | |||
| +--ro binding-info* [cli-id] | | | +--ro cli-prefix-len* uint8 | |||
| +--ro cli-id uint32 | | | +--ro pool-id uint32 | |||
| +--ro duid | | +--ro host-reservations | |||
| | +--ro type-code? uint16 | | +--ro binding-info* [cli-id] | |||
| | +--ro (duid-type)? | | +--ro cli-id uint32 | |||
| | +--:(duid-llt) | | +--ro duid | |||
| | | +--ro duid-llt-hardware-type? uint16 | | | +--ro type-code? uint16 | |||
| | | +--ro duid-llt-time? yang:timeticks | | | +--ro (duid-type)? | |||
| | | +--ro duid-llt-link-layer-addr? | | | +--:(duid-llt) | |||
yang:mac-address | | | | +--ro duid-llt-hardware-type? uint16 | |||
| | +--:(duid-en) | | | | +--ro duid-llt-time? yang:timeticks | |||
| | | +--ro duid-en-enterprise-number? uint32 | | | | +--ro duid-llt-link-layer-addr? yang:mac-address | |||
| | | +--ro duid-en-identifier? string | | | +--:(duid-en) | |||
| | +--:(duid-ll) | | | | +--ro duid-en-enterprise-number? uint32 | |||
| | | +--ro duid-ll-hardware-type? uint16 | | | | +--ro duid-en-identifier? string | |||
| | | +--ro duid-ll-link-layer-addr? | | | +--:(duid-ll) | |||
yang:mac-address | | | | +--ro duid-ll-hardware-type? uint16 | |||
| | +--:(duid-uuid) | | | | +--ro duid-ll-link-layer-addr? yang:mac-address | |||
| | | +--ro uuid? yang:uuid | | | +--:(duid-uuid) | |||
| | +--:(duid-unknown) | | | | +--ro uuid? yang:uuid | |||
| | +--ro data? binary | | | +--:(duid-unknown) | |||
| +--ro cli-ia* [iaid] | | | +--ro data? binary | |||
| | +--ro ia-type string | | +--ro cli-ia* [iaid] | |||
| | +--ro iaid uint32 | | | +--ro ia-type string | |||
| | +--ro cli-addr* inet:ipv6-address | | | +--ro iaid uint32 | |||
| +--ro cli-iapd* [iaid] | | | +--ro cli-addr* inet:ipv6-address | |||
| +--ro iaid uint32 | | +--ro cli-iapd* [iaid] | |||
| +--ro cli-prefix* inet:ipv6-prefix | | +--ro iaid uint32 | |||
| +--ro cli-prefix-len* uint8 | | +--ro cli-prefix* inet:ipv6-prefix | |||
+--ro packet-stats | | +--ro cli-prefix-len* uint8 | |||
+--ro solicit-count uint32 | +--ro packet-stats | |||
+--ro request-count uint32 | +--ro solicit-count uint32 | |||
+--ro renew-count uint32 | +--ro request-count uint32 | |||
+--ro rebind-count uint32 | +--ro renew-count uint32 | |||
+--ro decline-count uint32 | +--ro rebind-count uint32 | |||
+--ro release-count uint32 | +--ro decline-count uint32 | |||
+--ro info-req-count uint32 | +--ro release-count uint32 | |||
+--ro advertise-count uint32 | +--ro info-req-count uint32 | |||
+--ro confirm-count uint32 | +--ro advertise-count uint32 | |||
+--ro reply-count uint32 | +--ro confirm-count uint32 | |||
+--ro reconfigure-count uint32 | +--ro reply-count uint32 | |||
+--ro relay-forward-count uint32 | +--ro reconfigure-count uint32 | |||
+--ro relay-reply-count uint32 | +--ro relay-forward-count uint32 | |||
+--ro relay-reply-count uint32 | ||||
notifications: | notifications: | |||
+---n notifications | +---n notifications | |||
+--ro dhcpv6-server-event | +--ro dhcpv6-server-event | |||
+--ro address-pool-running-out | +--ro address-pool-running-out | |||
| +--ro total-address-count uint64 | | +--ro total-address-count uint64 | |||
| +--ro max-address-count uint64 | | +--ro max-address-count uint64 | |||
| +--ro allocated-address-conut uint64 | | +--ro allocated-address-conut uint64 | |||
| +--ro duid | | +--ro duid | |||
| | +--ro type-code? uint16 | | | +--ro type-code? uint16 | |||
| | +--ro (duid-type)? | | | +--ro (duid-type)? | |||
| | +--:(duid-llt) | | | +--:(duid-llt) | |||
| | | +--ro duid-llt-hardware-type? uint16 | | | | +--ro duid-llt-hardware-type? uint16 | |||
| | | +--ro duid-llt-time? yang:timeticks | | | | +--ro duid-llt-time? yang:timeticks | |||
| | | +--ro duid-llt-link-layer-addr? yang:mac-address | | | | +--ro duid-llt-link-layer-addr? yang:mac-address | |||
| | +--:(duid-en) | | | +--:(duid-en) | |||
| | | +--ro duid-en-enterprise-number? uint32 | | | | +--ro duid-en-enterprise-number? uint32 | |||
| | | +--ro duid-en-identifier? string | | | | +--ro duid-en-identifier? string | |||
| | +--:(duid-ll) | | | +--:(duid-ll) | |||
| | | +--ro duid-ll-hardware-type? uint16 | | | | +--ro duid-ll-hardware-type? uint16 | |||
skipping to change at page 12, line 35 ¶ | skipping to change at page 12, line 37 ¶ | |||
| | +--:(duid-uuid) | | | +--:(duid-uuid) | |||
| | | +--ro uuid? yang:uuid | | | | +--ro uuid? yang:uuid | |||
| | +--:(duid-unknown) | | | +--:(duid-unknown) | |||
| | +--ro data? binary | | | +--ro data? binary | |||
| +--ro serv-name? string | | +--ro serv-name? string | |||
| +--ro pool-name string | | +--ro pool-name string | |||
+--ro pd-pool-running-out | +--ro pd-pool-running-out | |||
| +--ro max-pd-space-utilization threshold | | +--ro max-pd-space-utilization threshold | |||
| +--ro pd-space-utilization threshold | | +--ro pd-space-utilization threshold | |||
| +--ro duid | | +--ro duid | |||
| | +--ro type-code? uint16 | | | +--ro type-code? uint16 | |||
| | +--ro (duid-type)? | | | +--ro (duid-type)? | |||
| | +--:(duid-llt) | | | +--:(duid-llt) | |||
| | | +--ro duid-llt-hardware-type? uint16 | | | | +--ro duid-llt-hardware-type? uint16 | |||
| | | +--ro duid-llt-time? yang:timeticks | | | | +--ro duid-llt-time? yang:timeticks | |||
| | | +--ro duid-llt-link-layer-addr? yang:mac-address | | | | +--ro duid-llt-link-layer-addr? yang:mac-address | |||
| | +--:(duid-en) | | | +--:(duid-en) | |||
| | | +--ro duid-en-enterprise-number? uint32 | | | | +--ro duid-en-enterprise-number? uint32 | |||
| | | +--ro duid-en-identifier? string | | | | +--ro duid-en-identifier? string | |||
| | +--:(duid-ll) | | | +--:(duid-ll) | |||
| | | +--ro duid-ll-hardware-type? uint16 | | | | +--ro duid-ll-hardware-type? uint16 | |||
| | | +--ro duid-ll-link-layer-addr? yang:mac-address | | | | +--ro duid-ll-link-layer-addr? yang:mac-address | |||
| | +--:(duid-uuid) | | | +--:(duid-uuid) | |||
| | | +--ro uuid? yang:uuid | | | | +--ro uuid? yang:uuid | |||
| | +--:(duid-unknown) | | | +--:(duid-unknown) | |||
| | +--ro data? binary | | | +--ro data? binary | |||
| +--ro serv-name? string | | +--ro serv-name? string | |||
| +--ro pool-name string | | +--ro pool-name string | |||
+--ro invalid-client-detected | +--ro invalid-client-detected | |||
+--ro duid | +--ro duid | |||
| +--ro type-code? uint16 | | +--ro type-code? uint16 | |||
| +--ro (duid-type)? | | +--ro (duid-type)? | |||
| +--:(duid-llt) | | +--:(duid-llt) | |||
| | +--ro duid-llt-hardware-type? uint16 | | | +--ro duid-llt-hardware-type? uint16 | |||
| | +--ro duid-llt-time? yang:timeticks | | | +--ro duid-llt-time? yang:timeticks | |||
| | +--ro duid-llt-link-layer-addr? yang:mac-address | | | +--ro duid-llt-link-layer-addr? yang:mac-address | |||
| +--:(duid-en) | | +--:(duid-en) | |||
| | +--ro duid-en-enterprise-number? uint32 | | | +--ro duid-en-enterprise-number? uint32 | |||
| | +--ro duid-en-identifier? string | | | +--ro duid-en-identifier? string | |||
| +--:(duid-ll) | | +--:(duid-ll) | |||
| | +--ro duid-ll-hardware-type? uint16 | | | +--ro duid-ll-hardware-type? uint16 | |||
skipping to change at page 13, line 43 ¶ | skipping to change at page 13, line 46 ¶ | |||
functions that can be provided by the server is also included. | functions that can be provided by the server is also included. | |||
o duid: Each server and client has only one DUID (DHCP Unique | o duid: Each server and client has only one DUID (DHCP Unique | |||
Identifier). The DUID here identifies a unique DHCPv6 server for | Identifier). The DUID here identifies a unique DHCPv6 server for | |||
clients. DUID consists of a two-octet type field and an arbitrary | clients. DUID consists of a two-octet type field and an arbitrary | |||
length (no more than 128 bytes) content field. Currently there | length (no more than 128 bytes) content field. Currently there | |||
are four defined types of DUIDs in [RFC3315] and [RFC6355] - DUID- | are four defined types of DUIDs in [RFC3315] and [RFC6355] - DUID- | |||
LLT, DUID-EN, DUID-LL and DUID-UUID. DUID-Unknown represents | LLT, DUID-EN, DUID-LL and DUID-UUID. DUID-Unknown represents | |||
those unconventional DUIDs. | those unconventional DUIDs. | |||
o lease-storage: The server can store lease data in different | ||||
repositories, whether in a CSV file for smaller deployments or in | ||||
a database for larger deployments. | ||||
o operator-option-ipv6-address, operator-option-single-flag, | o operator-option-ipv6-address, operator-option-single-flag, | |||
operator-option-ipv6-prefix, operator-option-int32, operator- | operator-option-ipv6-prefix, operator-option-int32, operator- | |||
option-int16, operator-option-int8, operator-option-uri, operator- | option-int16, operator-option-int8, operator-option-uri, operator- | |||
option-textstring, operator-option-var-data, operator-option-dns- | option-textstring, operator-option-var-data, operator-option-dns- | |||
wire: are generic option formats described in [RFC7227]. | wire: are generic option formats described in [RFC7227]. | |||
o interfaces-config: A leaf list to denote which one or more | o interfaces-config: A leaf list to denote which one or more | |||
interfaces the server should listen on. The default value is to | interfaces the server should listen on. The default value is to | |||
listen on all the interfaces. This node is also used to set a | listen on all the interfaces. This node is also used to set a | |||
unicast address for the server to listen with a specific | unicast address for the server to listen with a specific | |||
skipping to change at page 27, line 26 ¶ | skipping to change at page 27, line 37 ¶ | |||
includes an unsuccessful Status Code option. | includes an unsuccessful Status Code option. | |||
3. DHCPv6 YANG Model | 3. DHCPv6 YANG Model | |||
3.1. DHCPv6 Server YANG Model | 3.1. DHCPv6 Server YANG Model | |||
This module imports typedefs from [RFC6991], [RFC7223]. | This module imports typedefs from [RFC6991], [RFC7223]. | |||
<CODE BEGINS> file "ietf-dhcpv6-server.yang" | <CODE BEGINS> file "ietf-dhcpv6-server.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 "dhcpv6-server"; | prefix "dhcpv6-server"; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | ||||
import ietf-yang-types { | ||||
prefix yang; | ||||
} | } | |||
import ietf-dhcpv6-options { | import ietf-yang-types { | |||
prefix dhcpv6-options; | prefix yang; | |||
} | ||||
import ietf-dhcpv6-options { | ||||
prefix dhcpv6-options; | ||||
} | } | |||
import ietf-dhcpv6-types { | import ietf-dhcpv6-types { | |||
prefix dhcpv6-types; | prefix dhcpv6-types; | |||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix if; | prefix if; | |||
} | } | |||
organization "DHC WG"; | organization "DHC WG"; | |||
contact | contact | |||
"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"; | |||
description "This model defines a YANG data model that can be | description "This model defines a YANG data model that can be | |||
used to configure and manage a DHCPv6 server."; | used to configure and manage a DHCPv6 server."; | |||
revision 2018-03-04 { | revision 2018-09-04 { | |||
description "Resolved most issues on the DHC official | description ""; | |||
github"; | ||||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
revision 2017-12-22 { | revision 2018-03-04 { | |||
description "Resolve most issues on Ian's github."; | description "Resolved most issues on the DHC official | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | github"; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | ||||
} | } | |||
revision 2017-11-24 { | revision 2017-12-22 { | |||
description "First version of the separated server specific | description "Resolve most issues on Ian's github."; | |||
YANG model."; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | } | |||
} | ||||
/* | revision 2017-11-24 { | |||
* Typedef | description "First version of the separated server specific | |||
*/ | YANG model."; | |||
typedef threshold { | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
type union { | ||||
type uint16 { | ||||
range 0..100; | ||||
} | ||||
type enumeration { | ||||
enum "disabled" { | ||||
description "No threshold"; | ||||
} | } | |||
} | ||||
} | ||||
description "Threshold value in percent"; | ||||
} | ||||
/* | /* | |||
* Data Nodes | * Typedef | |||
*/ | */ | |||
container server { | typedef threshold { | |||
presence "Enables the server"; | type union { | |||
description "DHCPv6 server portion"; | type uint16 { | |||
range 0..100; | ||||
} | ||||
type enumeration { | ||||
enum "disabled" { | ||||
description "No threshold"; | ||||
} | ||||
} | ||||
} | ||||
description "Threshold value in percent"; | ||||
} | ||||
/* | ||||
* Data Nodes | ||||
*/ | ||||
container server { | ||||
presence "Enables the server"; | ||||
description "DHCPv6 server portion"; | ||||
/* | /* | |||
* Configuration data | * Configuration data | |||
*/ | */ | |||
container server-config { | container server-config { | |||
description "This container contains the configuration data | description "This container contains the configuration data | |||
of a server."; | of a server."; | |||
container serv-attributes { | container serv-attributes { | |||
description | description | |||
"This container contains basic attributes of a DHCPv6 server | "This container contains basic attributes of a DHCPv6 server | |||
such as IPv6 address, server name and so on. Some optional | such as IPv6 address, server name and so on. Some optional | |||
functions that can be provided by the server is also included."; | functions that can be provided by the server is also included."; | |||
container duid { | container duid { | |||
description "Sets the DUID of server"; | description "Sets the DUID of server"; | |||
uses dhcpv6-types:duid; | uses dhcpv6-types:duid; | |||
} | } | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description "server's name"; | description "server's name"; | |||
} | } | |||
leaf description { | leaf description { | |||
type string; | type string; | |||
description "description of the server."; | description "description of the server."; | |||
} | } | |||
leaf-list ipv6-address { | leaf-list ipv6-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description "server's IPv6 address."; | description "server's IPv6 address."; | |||
} | } | |||
leaf-list interfaces-config { | leaf-list interfaces-config { | |||
// Note - this should probably be references to | // Note - this should probably be references to | |||
// entries in the ietf-interfaces model | // entries in the ietf-interfaces model | |||
type if:interface-ref; | type if:interface-ref; | |||
description "A leaf list to denote which one or more interfaces | description "A leaf list to denote which one or more interfaces | |||
the server should listen on. The default value is to listen | the server should listen on. The default value is to listen | |||
on all the interfaces. This node is also used to set a unicast | on all the interfaces. This node is also used to set a unicast | |||
address for the server to listen with a specific interface. | address for the server to listen with a specific interface. | |||
For example, if people want the server to listen on a unicast | ||||
address with a specific interface, he can use the format like | For example, if people want the server to listen on a unicast | |||
'eth1/2001:db8::1'."; | address with a specific interface, he can use the format like | |||
'eth1/2001:db8::1'."; | ||||
} | ||||
container lease-storage { | ||||
description "Indicates how the server stores the lease"; | ||||
choice storage-type { | ||||
description "the type of lease storage"; | ||||
// leaf persist { | ||||
// type boolean; | ||||
// mandatory true; | ||||
// description "controls whether the new leases and updates to existing leases are | ||||
// written to the file"; | ||||
// } | ||||
case memfile { | ||||
description "the server stores lease information in a CSV file"; | ||||
leaf memfile-name { | ||||
type string; | ||||
description "specifies an absolute location of the lease file in which new leases | ||||
and lease updates will be recorded"; | ||||
} | ||||
leaf memfile-lfc-interval { | ||||
type uint64; | ||||
description "specifies the interval in seconds, at which the server will perform a | ||||
lease file cleanup (LFC)"; | ||||
} | ||||
} | ||||
case mysql { | ||||
leaf mysql-name { | ||||
type string; | ||||
description "type of the database"; | ||||
} | ||||
leaf mysql-host { | ||||
type string; | ||||
description "If the database is located | ||||
on a different system to the DHCPv6 server, the database host name must also be specified."; | ||||
} | ||||
leaf mysql-password { | ||||
type string; | ||||
description "the credentials of the account under which the server will access the database"; | ||||
} | ||||
leaf mysql-port { | ||||
type uint8; | ||||
description "If the database is located on a different system, the port number may be specified"; | ||||
} | ||||
leaf mysql-lfc-interval { | ||||
type uint64; | ||||
description "specifies the interval in seconds, at which the server will perform a | ||||
lease file cleanup (LFC)"; | ||||
} | ||||
leaf mysql-connect-timeout { | ||||
type uint64; | ||||
description "If the database is located on a different system, a longer interval needs to be specified"; | ||||
} | ||||
} | ||||
case postgresql { | ||||
leaf postgresql-name { | ||||
type string; | ||||
description "type of the database"; | ||||
} | ||||
leaf postgresql-host { | ||||
type string; | ||||
description "If the database is located | ||||
on a different system to the DHCPv6 server, the database host name must also be specified."; | ||||
} | ||||
leaf postgresql-password { | ||||
type string; | ||||
description "the credentials of the account under which the server will access the database"; | ||||
} | ||||
leaf postgresql-port { | ||||
type uint8; | ||||
description "If the database is located on a different system, the port number may be specified"; | ||||
} | ||||
leaf postgresql-lfc-interval { | ||||
type uint64; | ||||
description "specifies the interval in seconds, at which the server will perform a | ||||
lease file cleanup (LFC)"; | ||||
} | ||||
leaf postgresql-connect-timeout { | ||||
type uint64; | ||||
description "If the database is located on a different system, a longer interval needs to be specified"; | ||||
} | ||||
} | ||||
case cassandra { | ||||
leaf cassandra-name { | ||||
type string; | ||||
description "type of the database"; | ||||
} | ||||
leaf cassandra-contact-points { | ||||
type string; | ||||
description "Cassandra takes a list of comma separated IP addresses to contact the cluster"; | ||||
} | ||||
leaf cassandra-password { | ||||
type string; | ||||
description "the credentials of the account under which the server will access the database"; | ||||
} | ||||
leaf cassandra-lfc-interval { | ||||
type uint64; | ||||
description "specifies the interval in seconds, at which the server will perform a | ||||
lease file cleanup (LFC)"; | ||||
} | ||||
leaf cassandra-connect-timeout { | ||||
type uint64; | ||||
description "If the database is located on a different system, a longer interval needs to be specified"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
uses dhcpv6-types:vendor-infor; | ||||
} | } | |||
uses dhcpv6-types:vendor-infor; | ||||
} | ||||
container option-sets { | container option-sets { | |||
description "DHCPv6 employs various options to carry additional | description "DHCPv6 employs various options to carry additional | |||
information and parameters in DHCP messages. This container defines | information and parameters in DHCP messages. This container defines | |||
all the possible options that need to be configured at the server | all the possible options that need to be configured at the server | |||
side. "; | side. "; | |||
list option-set { | list option-set { | |||
key option-set-id; | key option-set-id; | |||
description "A server may allow different option sets to be | description "A server may allow different option sets to be | |||
configured for different conditions (i.e. different networks, | configured for different conditions (i.e. different networks, | |||
clients and etc). This 'option-set' list enables various sets of | clients and etc). This 'option-set' list enables various sets of | |||
options being defined and configured in a single server. Different | options being defined and configured in a single server. Different | |||
sets are distinguished by the key called 'option-set-id'. All the | sets are distinguished by the key called 'option-set-id'. All the | |||
possible options discussed above are defined in the list and each | possible options discussed above are defined in the list and each | |||
option is corresponding to a container. Since all the options in | option is corresponding to a container. Since all the options in | |||
the list are optional, each container in this list has a 'presence' | the list are optional, each container in this list has a 'presence' | |||
statement to indicate whether this option (container) will be | statement to indicate whether this option (container) will be | |||
included in the current option set or not. In addition, each container | included in the current option set or not. In addition, each container | |||
also has a 'if-feature' statement to indicate whether the server | also has a 'if-feature' statement to indicate whether the server | |||
supports this option (container)."; | supports this option (container)."; | |||
leaf option-set-id { | leaf option-set-id { | |||
type uint32; | type uint32; | |||
description "option set id"; | description "option set id"; | |||
} | } | |||
uses dhcpv6-options:server-option-definitions; | uses dhcpv6-options:server-option-definitions; | |||
uses dhcpv6-options:custom-option-definitions; | uses dhcpv6-options:custom-option-definitions; | |||
} | } | |||
} | } | |||
container network-ranges { | ||||
container network-ranges { | ||||
description "This model supports a hierarchy | description "This model supports a hierarchy | |||
to achieve dynamic configuration. That is to say we could configure the | to achieve dynamic configuration. That is to say we could configure the | |||
server at different levels through this model. The top level is a global | server at different levels through this model. The top level is a global | |||
level which is defined as the container 'network-ranges'. The following | level which is defined as the container 'network-ranges'. The following | |||
levels are defined as sub-containers under it. The 'network-ranges' | levels are defined as sub-containers under it. The 'network-ranges' | |||
contains the parameters (e.g. option-sets) that would be allocated to | contains the parameters (e.g. option-sets) that would be allocated to | |||
all the clients served by this server."; | all the clients served by this server."; | |||
leaf option-set-id { | leaf option-set-id { | |||
type leafref { | type leafref { | |||
path "/server/server-config/option-sets/option-set/option-set-id"; | path "/server/server-config/option-sets/option-set/option-set-id"; | |||
} | } | |||
description | description | |||
"The ID field of relevant global option-set to be provisioned to | "The ID field of relevant global option-set to be provisioned to | |||
clients."; | clients."; | |||
} | } | |||
list network-range { | list network-range { | |||
key network-range-id; | key network-range-id; | |||
description | description | |||
"Under the 'network-ranges' container, a 'network-range' list | "Under the 'network-ranges' container, a 'network-range' list | |||
is defined to configure the server at a network level which is also | is defined to configure the server at a network level which is also | |||
considered as the second level. Different network are identified by the | considered as the second level. Different network are identified by the | |||
key 'network-range-id'. This is because a server may have different | key 'network-range-id'. This is because a server may have different | |||
configuration parameters (e.g. option sets) for different networks."; | configuration parameters (e.g. option sets) for different networks."; | |||
leaf network-range-id { | leaf network-range-id { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "equivalent to subnet id"; | description "equivalent to subnet id"; | |||
} | } | |||
leaf network-description { | leaf network-description { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "description of the subnet"; | description "description of the subnet"; | |||
} | } | |||
leaf network-prefix { | leaf network-prefix { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
mandatory true; | mandatory true; | |||
description "subnet prefix"; | description "subnet prefix"; | |||
} | } | |||
leaf option-set-id { | leaf option-set-id { | |||
type leafref { | type leafref { | |||
path "/server/server-config/option-sets/option-set/option-set-id"; | path "/server/server-config/option-sets/option-set/option-set-id"; | |||
} | } | |||
description "The ID field of relevant option-set to be provisioned to | description "The ID field of relevant option-set to be provisioned to | |||
clients of this network-range."; | clients of this network-range."; | |||
} | } | |||
container address-pools { | ||||
container address-pools { | ||||
description | description | |||
"A container that describes the DHCPv6 server's | "A container that describes the DHCPv6 server's | |||
address pools."; | address pools."; | |||
list address-pool { | list address-pool { | |||
key pool-id; | key pool-id; | |||
description "A DHCPv6 server can be configured with | description "A DHCPv6 server can be configured with | |||
several address pools. This list defines such address pools | several address pools. This list defines such address pools | |||
which are distinguished by the key called 'pool-id'."; | which are distinguished by the key called 'pool-id'."; | |||
leaf pool-id { | leaf pool-id { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "pool id"; | description "pool id"; | |||
} | } | |||
leaf pool-prefix { | leaf pool-prefix { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
mandatory true; | mandatory true; | |||
description "pool prefix"; | description "pool prefix"; | |||
} | } | |||
leaf start-address { | leaf start-address { | |||
type inet:ipv6-address-no-zone; | type inet:ipv6-address-no-zone; | |||
mandatory true; | mandatory true; | |||
description "start address"; | description "start address"; | |||
} | } | |||
leaf end-address { | leaf end-address { | |||
type inet:ipv6-address-no-zone; | type inet:ipv6-address-no-zone; | |||
mandatory true; | mandatory true; | |||
description "end address"; | description "end address"; | |||
} | } | |||
leaf valid-lifetime { | leaf valid-lifetime { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "valid liftime for IA"; | description "valid liftime for IA"; | |||
} | } | |||
leaf renew-time { | leaf renew-time { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "renew time"; | description "renew time"; | |||
} | } | |||
leaf rebind-time { | leaf rebind-time { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "rebind time"; | description "rebind time"; | |||
} | } | |||
leaf preferred-lifetime { | leaf preferred-lifetime { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "preferred lifetime for IA"; | description "preferred lifetime for IA"; | |||
} | } | |||
leaf rapid-commit { | leaf rapid-commit { | |||
type boolean; | type boolean; | |||
mandatory true; | mandatory true; | |||
description "A boolean value specifies whether the pool | description "A boolean value specifies whether the pool | |||
supports client-server exchanges involving two messages."; | supports client-server exchanges involving two messages."; | |||
} | } | |||
leaf client-class { | leaf client-class { | |||
type string; | type string; | |||
description | description | |||
"If this leaf is specified, this pool will only serve | "If this leaf is specified, this pool will only serve | |||
the clients belonging to this class."; | the clients belonging to this class."; | |||
} | } | |||
leaf max-address-count { | leaf max-address-count { | |||
type threshold; | type threshold; | |||
mandatory true; | mandatory true; | |||
description "maximum count of addresses that can | description "maximum count of addresses that can | |||
be allocated in this pool. This value may be | be allocated in this pool. This value may be | |||
less than count of total addresses."; | less than count of total addresses."; | |||
} | } | |||
leaf option-set-id { | leaf option-set-id { | |||
type leafref { | type leafref { | |||
path "/server/server-config/option-sets/option-set/option-set-id"; | path "/server/server-config/option-sets/option-set/option-set-id"; | |||
} | } | |||
mandatory true; | mandatory true; | |||
description "The ID field of relevant option-set to be | description "The ID field of relevant option-set to be | |||
provisioned to clients of this address-pool."; | provisioned to clients of this address-pool."; | |||
} | } | |||
} | } | |||
} | } | |||
container pd-pools { | ||||
container pd-pools { | ||||
description "If a server supports prefix delegation function, this | description "If a server supports prefix delegation function, this | |||
container will be used to define the delegating router's prefix | container will be used to define the delegating router's prefix | |||
pools."; | pools."; | |||
list pd-pool { | list pd-pool { | |||
key pool-id; | key pool-id; | |||
description "Similar to server's address pools, a delegating | description "Similar to server's address pools, a delegating | |||
router can also be configured with multiple prefix pools | router can also be configured with multiple prefix pools | |||
specified by a list called 'prefix-pool'."; | specified by a list called 'prefix-pool'."; | |||
leaf pool-id { | leaf pool-id { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "pool id"; | description "pool id"; | |||
} | } | |||
leaf prefix { | leaf prefix { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
mandatory true; | mandatory true; | |||
description "ipv6 prefix"; | description "ipv6 prefix"; | |||
} | ||||
leaf prefix-length { | } | |||
type uint8; | leaf prefix-length { | |||
mandatory true; | type uint8; | |||
description "prefix length"; | mandatory true; | |||
} | description "prefix length"; | |||
leaf valid-lifetime { | } | |||
type yang:timeticks; | leaf valid-lifetime { | |||
type yang:timeticks; | ||||
mandatory true; | mandatory true; | |||
description "valid lifetime for IA"; | description "valid lifetime for IA"; | |||
} | } | |||
leaf renew-time { | leaf renew-time { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "renew time"; | description "renew time"; | |||
} | } | |||
leaf rebind-time { | leaf rebind-time { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "rebind time"; | description "rebind time"; | |||
} | } | |||
leaf preferred-lifetime { | leaf preferred-lifetime { | |||
type yang:timeticks; | type yang:timeticks; | |||
mandatory true; | mandatory true; | |||
description "preferred lifetime for IA"; | description "preferred lifetime for IA"; | |||
} | } | |||
leaf rapid-commit { | leaf rapid-commit { | |||
type boolean; | type boolean; | |||
mandatory true; | mandatory true; | |||
description "A boolean value specifies whether the server | description "A boolean value specifies whether the server | |||
support client-server exchanges involving two messages defined."; | support client-server exchanges involving two messages defined."; | |||
} | } | |||
leaf client-class { | leaf client-class { | |||
type string; | type string; | |||
description "client class"; | description "client class"; | |||
} | } | |||
leaf max-pd-space-utlization { | leaf max-pd-space-utilization { | |||
type threshold; | type threshold; | |||
mandatory true; | mandatory true; | |||
description "Maximum utilization of pd space in this pool"; | description "Maximum utilization of pd space in this pool"; | |||
} | } | |||
leaf option-set-id { | leaf option-set-id { | |||
type leafref { | type leafref { | |||
path "/server/server-config/option-sets/option-set/option-set-id"; | path "/server/server-config/option-sets/option-set/option-set-id"; | |||
} | ||||
mandatory true; | ||||
description "The ID field of relevant option-set to be | ||||
provisioned to clients of this prefix-pool."; | ||||
} | ||||
} | } | |||
mandatory true; | } | |||
description "The ID field of relevant option-set to be | ||||
provisioned to clients of this prefix-pool."; | ||||
} | ||||
} | ||||
} | ||||
container host-reservations { | container host-reservations { | |||
description | description | |||
"This container allows the server to make reservations at host level."; | "This container allows the server to make reservations at host level."; | |||
list host-reservation { | list host-reservation { | |||
key cli-id; | key cli-id; | |||
description "This list allows the server to reserve addresses, | description "This list allows the server to reserve addresses, | |||
prefixes, hostname and options for different clients."; | prefixes, hostname and options for different clients."; | |||
leaf cli-id { | leaf cli-id { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "client id"; | description "client id"; | |||
} | } | |||
choice client-identifier { | choice client-identifier { | |||
description "When making reservations, the server needs to choose a | description "When making reservations, the server needs to choose a | |||
identifier to identify the server. Currently 'DUID' and 'hardware | identifier to identify the client. Currently 'DUID' and 'hardware | |||
address' are supported."; | address' are supported."; | |||
case duid { | case duid { | |||
description "DUID"; | description "DUID"; | |||
uses dhcpv6-types:duid; | uses dhcpv6-types:duid; | |||
} | } | |||
case hw-address { | case hw-address { | |||
description "hardware address"; | description "hardware address"; | |||
leaf hardware-address { | leaf hardware-address { | |||
type yang:mac-address; | type yang:mac-address; | |||
description "MAC address of client"; | description "MAC address of client"; | |||
skipping to change at page 35, line 17 ¶ | skipping to change at page 37, line 48 ¶ | |||
leaf-list reserv-addr { | leaf-list reserv-addr { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description "reserved addr"; | description "reserved addr"; | |||
} | } | |||
list prefix-reservation { | list prefix-reservation { | |||
key reserv-prefix-id; | key reserv-prefix-id; | |||
description "reserved prefix reservation"; | description "reserved prefix reservation"; | |||
leaf reserv-prefix-id { | leaf reserv-prefix-id { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "reserved prefix id"; | description "reserved prefix id"; | |||
} | } | |||
leaf reserv-prefix { | leaf reserv-prefix { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
mandatory true; | mandatory true; | |||
description "reserved prefix"; | description "reserved prefix"; | |||
} | } | |||
leaf reserv-prefix-len { | leaf reserv-prefix-len { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "reserved prefix length"; | description "reserved prefix length"; | |||
} | } | |||
} | } | |||
leaf hostname { | leaf hostname { | |||
type string; | type string; | |||
description "reserved hostname"; | description "reserved hostname"; | |||
} | } | |||
leaf option-set-id { | leaf option-set-id { | |||
type leafref { | type leafref { | |||
path "/server/server-config/option-sets/option-set/option-set-id"; | path "/server/server-config/option-sets/option-set/option-set-id"; | |||
} | } | |||
description "The ID field of relevant option-set to be provisioned | description "The ID field of relevant option-set to be provisioned | |||
in the host reservation."; | in the host reservation."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
container relay-opaque-paras { | container relay-opaque-paras { | |||
description "This container contains some opaque values in Relay Agent | description "This container contains some opaque values in Relay Agent | |||
options that need to be configured on the server side only for value | options that need to be configured on the server side only for value | |||
match. Such Relay Agent options include Interface-Id option, | match. Such Relay Agent options include Interface-Id option, | |||
Remote-Id option and Subscriber-Id option."; | Remote-Id option and Subscriber-Id option."; | |||
list relays { | list relays { | |||
key relay-name; | key relay-name; | |||
description "relay agents"; | description "relay agents"; | |||
leaf relay-name { | leaf relay-name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "relay agent name"; | description "relay agent name"; | |||
} | ||||
list interface-info { | ||||
key if-name; | ||||
description "interface info"; | ||||
leaf if-name { | ||||
type string; | ||||
mandatory true; | ||||
description "interface name"; | ||||
} | ||||
leaf interface-id { | ||||
type string; | ||||
mandatory true; | ||||
description "interface id"; | ||||
} | ||||
} | ||||
list subscribers { | ||||
key subscriber; | ||||
description "subscribers"; | ||||
leaf subscriber { | ||||
type uint32; | ||||
mandatory true; | ||||
description "subscriber"; | ||||
} | ||||
leaf subscriber-id { | ||||
type string; | ||||
mandatory true; | ||||
description "subscriber id"; | ||||
} | ||||
} | ||||
list remote-host { | ||||
key ent-num; | ||||
description "remote host"; | ||||
leaf ent-num { | ||||
type uint32; | ||||
mandatory true; | ||||
description "enterprise number"; | ||||
} | ||||
leaf remote-id { | ||||
type string; | ||||
mandatory true; | ||||
description "remote id"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
container rsoo-enabled-options { | ||||
description "rsoo enabled options"; | ||||
list rsoo-enabled-option { | ||||
key option-code; | ||||
description "rsoo enabled option"; | ||||
leaf option-code { | ||||
type uint16; | ||||
mandatory true; | ||||
description "option code"; | ||||
} | ||||
leaf description { | ||||
type string; | ||||
mandatory true; | ||||
description "description of the option"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
/* | ||||
* State data | ||||
*/ | ||||
container server-state { | ||||
config "false"; | ||||
description "states of server"; | ||||
container network-ranges { | ||||
description "This model supports a hierarchy to achieve dynamic configuration. | ||||
That is to say we could configure the server at different levels through | ||||
this model. The top level is a global level which is defined as the container | ||||
'network-ranges'. The following levels are defined as sub-containers under it. | ||||
The 'network-ranges' contains the parameters (e.g. option-sets) that would be | ||||
allocated to all the clients served by this server."; | ||||
list network-range { | ||||
key network-range-id; | ||||
description "The ID field of relevant option-set to be provisioned | ||||
to clients of this network-range."; | ||||
leaf network-range-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "equivalent to subnet id"; | ||||
} | } | |||
container address-pools { | list interface-info { | |||
description "A container that describes the DHCPv6 server's address pools"; | key if-name; | |||
list address-pool { | description "interface info"; | |||
key pool-id; | leaf if-name { | |||
description "A DHCPv6 server can be configured with | type string; | |||
several address pools. This list defines such address pools | mandatory true; | |||
which are distinguished by the key called 'pool-id'."; | description "interface name"; | |||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | } | |||
leaf total-address-count { | leaf interface-id { | |||
type uint64; | type string; | |||
mandatory true; | mandatory true; | |||
description "count of total addresses in the pool"; | description "interface id"; | |||
} | } | |||
leaf allocated-address-conut { | ||||
type uint64; | ||||
mandatory true; | ||||
description "count of allocated addresses in the pool"; | ||||
} | } | |||
} | list subscribers { | |||
list binding-info { | key subscriber; | |||
key cli-id; | description "subscribers"; | |||
description "A list that records a binding information for each DHCPv6 | leaf subscriber { | |||
client that has already been allocated IPv6 addresses."; | type uint32; | |||
leaf cli-id { | mandatory true; | |||
type uint32; | description "subscriber"; | |||
mandatory true; | } | |||
description "client id"; | leaf subscriber-id { | |||
type string; | ||||
mandatory true; | ||||
description "subscriber id"; | ||||
} | } | |||
container duid { | ||||
description "Read the DUID"; | ||||
uses dhcpv6-types:duid; | ||||
} | } | |||
list cli-ia { | list remote-host { | |||
key iaid; | key ent-num; | |||
description "client IA"; | description "remote host"; | |||
leaf ia-type { | leaf ent-num { | |||
type string; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "IA type"; | description "enterprise number"; | |||
} | ||||
leaf iaid { | ||||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | ||||
leaf-list cli-addr { | ||||
type inet:ipv6-address; | ||||
description "client addr"; | ||||
} | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | ||||
} | } | |||
} | leaf remote-id { | |||
} | type string; | |||
container pd-pools { | mandatory true; | |||
description "If a server supports prefix delegation function, | description "remote id"; | |||
this container will be used to define the delegating | ||||
router's prefix pools."; | ||||
list prefix-pool { | ||||
key pool-id; | ||||
description "Similar to server's address pools, a delegating | ||||
router can also be configured with multiple prefix pools | ||||
specified by a list called 'prefix-pool'."; | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | } | |||
leaf pd-space-utilization { | ||||
type threshold; | ||||
mandatory true; | ||||
description "current PD space utilization"; | ||||
} | } | |||
} | } | |||
list binding-info { | ||||
key cli-id; | ||||
description "A list records a binding information for each DHCPv6 | ||||
client that has already been alloated IPv6 prefixes."; | ||||
leaf cli-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "client id"; | ||||
} | } | |||
container duid { | ||||
description "Reads the DUID"; | ||||
uses dhcpv6-types:duid; | ||||
container rsoo-enabled-options { | ||||
description "rsoo enabled options"; | ||||
list rsoo-enabled-option { | ||||
key option-code; | ||||
description "rsoo enabled option"; | ||||
leaf option-code { | ||||
type uint16; | ||||
mandatory true; | ||||
description "option code"; | ||||
} | } | |||
list cli-iapd { | leaf description { | |||
key iaid; | type string; | |||
description "client IAPD"; | mandatory true; | |||
leaf iaid { | description "description of the option"; | |||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | ||||
leaf-list cli-prefix { | ||||
type inet:ipv6-prefix; | ||||
description "client ipv6 prefix"; | ||||
} | ||||
leaf-list cli-prefix-len { | ||||
type uint8; | ||||
description "client prefix length"; | ||||
} | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | ||||
} | } | |||
} | } | |||
} | } | |||
container host-reservations { | ||||
description "This container provides host reservations in the host level."; | ||||
list binding-info { | ||||
key cli-id; | ||||
description | ||||
"A list records a binding information for each DHCPv6 | ||||
client that has already been alloated IPv6 addresses or prefixes | ||||
by host reservations."; | ||||
leaf cli-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "client id"; | ||||
} | ||||
container duid { | ||||
description "Reads the DUID"; | ||||
uses dhcpv6-types:duid; | ||||
} | ||||
list cli-ia { | ||||
key iaid; | ||||
description "client IA"; | ||||
leaf ia-type { | ||||
type string; | ||||
mandatory true; | ||||
description "IA type, IA_NA or IA_TA"; | ||||
} | } | |||
leaf iaid { | ||||
type uint32; | /* | |||
mandatory true; | * State data | |||
description "IAID"; | */ | |||
container server-state { | ||||
config "false"; | ||||
description "states of server"; | ||||
container network-ranges { | ||||
description "This model supports a hierarchy to achieve dynamic configuration. | ||||
That is to say we could configure the server at different levels through | ||||
this model. The top level is a global level which is defined as the container | ||||
'network-ranges'. The following levels are defined as sub-containers under it. | ||||
The 'network-ranges' contains the parameters (e.g. option-sets) that would be | ||||
allocated to all the clients served by this server."; | ||||
list network-range { | ||||
key network-range-id; | ||||
description "The ID field of relevant option-set to be provisioned | ||||
to clients of this network-range."; | ||||
leaf network-range-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "equivalent to subnet id"; | ||||
} | } | |||
leaf-list cli-addr { | container address-pools { | |||
type inet:ipv6-address; | description "A container that describes the DHCPv6 server's address pools"; | |||
description "client addr"; | list address-pool { | |||
key pool-id; | ||||
description "A DHCPv6 server can be configured with | ||||
several address pools. This list defines such address pools | ||||
which are distinguished by the key called 'pool-id'."; | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | ||||
leaf total-address-count { | ||||
type uint64; | ||||
mandatory true; | ||||
description "count of total addresses in the pool"; | ||||
} | ||||
leaf allocated-address-conut { | ||||
type uint64; | ||||
mandatory true; | ||||
description "count of allocated addresses in the pool"; | ||||
} | ||||
} | ||||
list binding-info { | ||||
key cli-id; | ||||
description "A list that records a binding information for each DHCPv6 | ||||
client that has already been allocated IPv6 addresses."; | ||||
leaf cli-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "client id"; | ||||
} | } | |||
} | container duid { | |||
description "Read the DUID"; | ||||
list cli-iapd { | uses dhcpv6-types:duid; | |||
key iaid; | ||||
description "client IAPD"; | ||||
leaf iaid { | ||||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | } | |||
leaf-list cli-prefix { | list cli-ia { | |||
type inet:ipv6-prefix; | key iaid; | |||
description "client ipv6 prefix"; | description "client IA"; | |||
leaf ia-type { | ||||
type string; | ||||
mandatory true; | ||||
description "IA type"; | ||||
} | ||||
leaf iaid { | ||||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | ||||
leaf-list cli-addr { | ||||
type inet:ipv6-address; | ||||
description "client addr"; | ||||
} | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
container pd-pools { | ||||
description "If a server supports prefix delegation function, | ||||
this container will be used to define the delegating | ||||
router's prefix pools."; | ||||
list prefix-pool { | ||||
key pool-id; | ||||
description "Similar to server's address pools, a delegating | ||||
router can also be configured with multiple prefix pools | ||||
specified by a list called 'prefix-pool'."; | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | } | |||
leaf-list cli-prefix-len { | leaf pd-space-utilization { | |||
type uint8; | type threshold; | |||
description "client prefix length"; | mandatory true; | |||
description "current PD space utilization"; | ||||
} | } | |||
} | } | |||
} | list binding-info { | |||
} | key cli-id; | |||
description "A list records a binding information for each DHCPv6 | ||||
client that has already been alloated IPv6 prefixes."; | ||||
leaf cli-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "client id"; | ||||
} | ||||
container duid { | ||||
description "Reads the DUID"; | ||||
uses dhcpv6-types:duid; | ||||
} | ||||
list cli-iapd { | ||||
key iaid; | ||||
description "client IAPD"; | ||||
leaf iaid { | ||||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | ||||
leaf-list cli-prefix { | ||||
type inet:ipv6-prefix; | ||||
description "client ipv6 prefix"; | ||||
} | ||||
leaf-list cli-prefix-len { | ||||
type uint8; | ||||
description "client prefix length"; | ||||
} | ||||
leaf pool-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "pool id"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | container host-reservations { | |||
} | description "This container provides host reservations in the host level."; | |||
list binding-info { | ||||
key cli-id; | ||||
description | ||||
"A list records a binding information for each DHCPv6 | ||||
client that has already been alloated IPv6 addresses or prefixes | ||||
by host reservations."; | ||||
leaf cli-id { | ||||
type uint32; | ||||
mandatory true; | ||||
description "client id"; | ||||
} | ||||
container duid { | ||||
description "Reads the DUID"; | ||||
uses dhcpv6-types:duid; | ||||
} | ||||
list cli-ia { | ||||
key iaid; | ||||
description "client IA"; | ||||
leaf ia-type { | ||||
type string; | ||||
mandatory true; | ||||
description "IA type, IA_NA or IA_TA"; | ||||
} | ||||
leaf iaid { | ||||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | ||||
leaf-list cli-addr { | ||||
type inet:ipv6-address; | ||||
description "client addr"; | ||||
} | ||||
} | ||||
list cli-iapd { | ||||
key iaid; | ||||
description "client IAPD"; | ||||
leaf iaid { | ||||
type uint32; | ||||
mandatory true; | ||||
description "IAID"; | ||||
} | ||||
leaf-list cli-prefix { | ||||
type inet:ipv6-prefix; | ||||
description "client ipv6 prefix"; | ||||
} | ||||
leaf-list cli-prefix-len { | ||||
type uint8; | ||||
description "client prefix length"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
container packet-stats { | container packet-stats { | |||
description "A container presents the packet statistics related to | description "A container presents the packet statistics related to | |||
the DHCPv6 server."; | the DHCPv6 server."; | |||
leaf solicit-count { | leaf solicit-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "solicit counter"; | description "solicit counter"; | |||
} | } | |||
leaf request-count { | leaf request-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "request counter"; | description "request counter"; | |||
} | } | |||
leaf renew-count { | leaf renew-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "renew counter"; | description "renew counter"; | |||
} | } | |||
leaf rebind-count { | leaf rebind-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "rebind counter"; | description "rebind counter"; | |||
} | } | |||
leaf decline-count { | leaf decline-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "decline count"; | description "decline count"; | |||
} | } | |||
leaf release-count { | leaf release-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "release counter"; | description "release counter"; | |||
} | } | |||
leaf info-req-count { | leaf info-req-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "information request counter"; | description "information request counter"; | |||
} | } | |||
leaf advertise-count { | leaf advertise-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "advertise counter"; | description "advertise counter"; | |||
} | } | |||
leaf confirm-count { | leaf confirm-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "confirm counter"; | description "confirm counter"; | |||
} | } | |||
leaf reply-count { | leaf reply-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "reply counter"; | description "reply counter"; | |||
} | } | |||
leaf reconfigure-count { | leaf reconfigure-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "reconfigure counter"; | description "reconfigure counter"; | |||
} | } | |||
leaf relay-forward-count { | leaf relay-forward-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "relay forward counter"; | description "relay forward counter"; | |||
} | } | |||
leaf relay-reply-count { | leaf relay-reply-count { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "relay reply counter"; | description "relay reply counter"; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
/* | /* | |||
* Notifications | * Notifications | |||
*/ | */ | |||
notification notifications { | notification notifications { | |||
description "dhcpv6 server notification module"; | description "dhcpv6 server notification module"; | |||
container dhcpv6-server-event { | container dhcpv6-server-event { | |||
description "dhcpv6 server event"; | description "dhcpv6 server event"; | |||
container address-pool-running-out { | container address-pool-running-out { | |||
description "raised when the address pool is going to | description "raised when the address pool is going to | |||
run out. A threshold for utilization ratio of the pool has | run out. A threshold for utilization ratio of the pool has | |||
been defined in the server feature so that it will notify the | been defined in the server feature so that it will notify the | |||
administrator when the utilization ratio reaches the | administrator when the utilization ratio reaches the | |||
threshold, and such threshold is a settable parameter"; | threshold, and such threshold is a settable parameter"; | |||
leaf total-address-count { | leaf total-address-count { | |||
type uint64; | type uint64; | |||
mandatory true; | mandatory true; | |||
description "count of total addresses in the pool"; | description "count of total addresses in the pool"; | |||
} | } | |||
leaf max-address-count { | leaf max-address-count { | |||
type uint64; | type uint64; | |||
mandatory true; | mandatory true; | |||
description "maximum count of addresses that can be allocated | description "maximum count of addresses that can be allocated | |||
in the pool. This value may be less than count of total | in the pool. This value may be less than count of total | |||
addresses"; | addresses"; | |||
} | } | |||
leaf allocated-address-conut { | leaf allocated-address-conut { | |||
type uint64; | type uint64; | |||
mandatory true; | mandatory true; | |||
description "count of allocated addresses in the pool"; | description "count of allocated addresses in the pool"; | |||
} | ||||
container duid { | ||||
description "server duid"; | ||||
uses dhcpv6-types:duid; | ||||
} | } | |||
container duid { | ||||
description "server duid"; | ||||
uses dhcpv6-types:duid; | ||||
} | ||||
leaf serv-name { | leaf serv-name { | |||
type string; | type string; | |||
description "server name"; | description "server name"; | |||
} | } | |||
leaf pool-name { | leaf pool-name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "pool name"; | description "pool name"; | |||
} | } | |||
} | ||||
container pd-pool-running-out { | ||||
description "raised when the address/prefix pool is going to | ||||
run out. A threshold for utilization ratio of the pool has | ||||
been defined in the server feature so that it will notify the | ||||
administrator when the utilization ratio reaches the | ||||
threshold, and such threshold is a settable parameter"; | ||||
leaf max-pd-space-utilization { | ||||
type threshold; | ||||
mandatory true; | ||||
description "maximum pd space utilization"; | ||||
} | ||||
leaf pd-space-utilization { | ||||
type threshold; | ||||
mandatory true; | ||||
description "current pd space utilization"; | ||||
} | } | |||
container pd-pool-running-out { | ||||
description "raised when the address/prefix pool is going to | ||||
run out. A threshold for utilization ratio of the pool has | ||||
been defined in the server feature so that it will notify the | ||||
administrator when the utilization ratio reaches the | ||||
threshold, and such threshold is a settable parameter"; | ||||
leaf max-pd-space-utilization { | ||||
type threshold; | ||||
mandatory true; | ||||
description "maximum pd space utilization"; | ||||
} | ||||
leaf pd-space-utilization { | ||||
type threshold; | ||||
mandatory true; | ||||
description "current pd space utilization"; | ||||
} | ||||
container duid { | container duid { | |||
description "Sets the DUID"; | description "Sets the DUID"; | |||
uses dhcpv6-types:duid; | uses dhcpv6-types:duid; | |||
} | } | |||
leaf serv-name { | leaf serv-name { | |||
type string; | type string; | |||
description "server name"; | description "server name"; | |||
} | } | |||
leaf pool-name { | leaf pool-name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "pool name"; | description "pool name"; | |||
} | } | |||
} | } | |||
container invalid-client-detected { | container invalid-client-detected { | |||
description "raised when the server has found a client which | description "raised when the server has found a client which | |||
can be regarded as a potential attacker. Some description | can be regarded as a potential attacker. Some description | |||
could also be included."; | could also be included."; | |||
container duid { | container duid { | |||
description "Sets the DUID"; | description "Sets the DUID"; | |||
uses dhcpv6-types:duid; | uses dhcpv6-types:duid; | |||
} | } | |||
leaf description { | leaf description { | |||
type string; | type string; | |||
description "description of the event"; | description "description of the event"; | |||
} | ||||
} | ||||
} | ||||
} | } | |||
} | ||||
} | ||||
} | ||||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
3.2. DHCPv6 Relay YANG Model | 3.2. DHCPv6 Relay YANG Model | |||
This module imports typedefs from [RFC6991], [RFC7223]. | This module imports typedefs from [RFC6991], [RFC7223]. | |||
<CODE BEGINS> file "ietf-dhcpv6-relay.yang" | <CODE BEGINS> file "ietf-dhcpv6-relay.yang" | |||
module ietf-dhcpv6-relay { | module ietf-dhcpv6-relay { | |||
yang-version 1.1; | yang-version 1.1; | |||
skipping to change at page 45, line 51 ¶ | skipping to change at page 48, line 33 ¶ | |||
"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"; | |||
description | description | |||
"This model defines a YANG data model that can be | "This model defines a YANG data model that can be | |||
used to configure and manage a DHCPv6 relay."; | used to configure and manage a DHCPv6 relay."; | |||
revision 2018-09-04 { | ||||
description ""; | ||||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | ||||
} | ||||
revision 2018-03-04 { | revision 2018-03-04 { | |||
description "Resolved most issues on the DHC official | description "Resolved most issues on the DHC official | |||
github"; | github"; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
revision 2017-12-22 { | revision 2017-12-22 { | |||
description | description | |||
"Resolve most issues on Ian's github."; | "Resolve most issues on Ian's github."; | |||
reference | reference | |||
skipping to change at page 55, line 44 ¶ | skipping to change at page 58, line 31 ¶ | |||
"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 model defines a YANG data model that can be | description "This model defines a YANG data model that can be | |||
used to configure and manage a DHCPv6 client."; | used to configure and manage a DHCPv6 client."; | |||
revision 2018-09-04 { | ||||
description ""; | ||||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | ||||
} | ||||
revision 2018-03-04 { | revision 2018-03-04 { | |||
description "Resolved most issues on the DHC official | description "Resolved most issues on the DHC official | |||
github"; | github"; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
revision 2017-12-22 { | revision 2017-12-22 { | |||
description "Resolve most issues on Ian's github."; | description "Resolve most issues on Ian's github."; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
revision 2017-11-24 { | revision 2017-11-24 { | |||
description "First version of the separated client specific | description "First version of the separated client specific | |||
YANG model."; | YANG model."; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
/* | /* | |||
* Data Nodes | * Data Nodes | |||
*/ | */ | |||
container client { | container client { | |||
presence "Enables the client"; | presence "Enables the client"; | |||
description "dhcpv6 client portion"; | description "dhcpv6 client portion"; | |||
container client-config { | container client-config { | |||
description "configuration tree of client"; | description "configuration tree of client"; | |||
skipping to change at page 63, line 8 ¶ | skipping to change at page 65, line 49 ¶ | |||
"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 model defines a YANG data model that can be | description "This model defines a YANG data model that can be | |||
used to configure DHCPv6 options."; | used to configure DHCPv6 options."; | |||
revision 2018-09-04 { | ||||
description ""; | ||||
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 | |||
github"; | github"; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
revision 2017-12-22 { | revision 2017-12-22 { | |||
description "Resolve most issues on Ian's github."; | description "Resolve most issues on Ian's github."; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
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"; | |||
} | } | |||
/* | /* | |||
* Features | * Features | |||
*/ | */ | |||
// features for server options | // features for server options | |||
feature server-unicast-op { | feature server-unicast-op { | |||
description "Support for Server Unicast option"; | description "Support for Server Unicast option"; | |||
} | } | |||
feature sip-server-domain-name-list-op { | feature sip-server-domain-name-list-op { | |||
description "Support for SIP Server Domain Name List option"; | description "Support for SIP Server Domain Name List option"; | |||
} | } | |||
feature sip-server-address-list-op { | feature sip-server-address-list-op { | |||
description "Support for SIP Server Address List option"; | description "Support for SIP Server Address List option"; | |||
} | } | |||
feature dns-servers-op { | feature dns-servers-op { | |||
description "Support for DNS Servers Option"; | description "Support for DNS Servers Option"; | |||
} | } | |||
feature domain-searchlist-op { | feature domain-searchlist-op { | |||
description "Support for Domain Search List Option"; | description "Support for Domain Search List Option"; | |||
} | } | |||
feature nis-config-op { | feature nis-config-op { | |||
description "Support for Network Information Service (NIS) | description "Support for Network Information Service (NIS) | |||
Servers option"; | Servers option"; | |||
} | } | |||
feature nis-plus-config-op { | feature nis-plus-config-op { | |||
description "Support for Network Information Service V2 (NIS+) | description "Support for Network Information Service V2 (NIS+) | |||
Servers option"; | Servers option"; | |||
} | } | |||
feature nis-domain-name-op { | feature nis-domain-name-op { | |||
description "Support for Network Information Service (NIS) | description "Support for Network Information Service (NIS) | |||
Domain Name option"; | Domain Name option"; | |||
} | ||||
feature nis-plus-domain-name-op { | ||||
description "Support for Network Information Service V2 (NIS+) | ||||
Server option"; | ||||
} | ||||
feature sntp-server-op { | ||||
description "Support for Simple Network Protocol Configuration | ||||
(SNTP) Servers option"; | ||||
} | ||||
feature info-refresh-time-op { | ||||
description "Support for Information Refresh Time option"; | ||||
} | ||||
feature client-fqdn-op { | ||||
description "Support for Client FQDN option"; | ||||
} | ||||
feature posix-timezone-op { | ||||
description "Support for New POIX Timezone option"; | ||||
} | ||||
feature tzdb-timezone-op { | ||||
description "Support for New TZDB Timezone option"; | ||||
} | ||||
feature ntp-server-op { | ||||
description "Support for Network Time Protocol (NTP) | ||||
Server option"; | ||||
} | ||||
feature boot-file-url-op { | ||||
description "Support for Boot File URL option"; | ||||
} | ||||
feature boot-file-param-op { | ||||
description "Support for Boot File Parameters option"; | ||||
} | ||||
feature aftr-name-op { | ||||
description "Support for Address Family Transition | ||||
Router (AFTR) option"; | ||||
} | ||||
feature kbr-default-name-op { | ||||
description "Support for Kerberos Default Name | ||||
Option"; | ||||
} | ||||
feature kbr-kdc-op { | ||||
description "Support for Kerberos KDC option"; | ||||
} | ||||
feature sol-max-rt-op { | ||||
description "Support for SOL_MAX_RT option"; | ||||
} | ||||
feature inf-max-rt-op { | ||||
description "Support for INF_MAX_RT option"; | ||||
} | ||||
feature addr-selection-op { | ||||
description "Support for Address Selection opiton"; | ||||
} | ||||
feature pcp-server-op { | ||||
description "Support for Port Control Protocol (PCP) | ||||
option"; | ||||
} | ||||
feature s46-rule-op { | ||||
description "Support for S46 Rule option"; | ||||
} | ||||
feature s46-br-op { | ||||
description "Support for S46 Border Relay (BR) option"; | ||||
} | ||||
feature s46-dmr-op { | ||||
description "Support for S46 Default Mapping Rule | ||||
(DMR) option"; | ||||
} | ||||
feature s46-v4-v6-binding-op { | ||||
description "Support for S46 IPv4/IPv6 Address | ||||
Bind option"; | ||||
} | ||||
// features for relay-supplied options | } | |||
feature erp-local-domain-name-op { | feature nis-plus-domain-name-op { | |||
description "Support for ERP Local Domain Name option"; | description "Support for Network Information Service V2 (NIS+) | |||
} | Server option"; | |||
} | ||||
feature sntp-server-op { | ||||
description "Support for Simple Network Protocol Configuration | ||||
(SNTP) Servers option"; | ||||
} | ||||
feature info-refresh-time-op { | ||||
description "Support for Information Refresh Time option"; | ||||
} | ||||
feature client-fqdn-op { | ||||
description "Support for Client FQDN option"; | ||||
} | ||||
feature posix-timezone-op { | ||||
description "Support for New POIX Timezone option"; | ||||
} | ||||
feature tzdb-timezone-op { | ||||
description "Support for New TZDB Timezone option"; | ||||
} | ||||
feature ntp-server-op { | ||||
description "Support for Network Time Protocol (NTP) | ||||
Server option"; | ||||
} | ||||
feature boot-file-url-op { | ||||
description "Support for Boot File URL option"; | ||||
} | ||||
feature boot-file-param-op { | ||||
description "Support for Boot File Parameters option"; | ||||
} | ||||
feature aftr-name-op { | ||||
description "Support for Address Family Transition | ||||
Router (AFTR) option"; | ||||
} | ||||
feature kbr-default-name-op { | ||||
description "Support for Kerberos Default Name | ||||
Option"; | ||||
} | ||||
feature kbr-kdc-op { | ||||
description "Support for Kerberos KDC option"; | ||||
} | ||||
feature sol-max-rt-op { | ||||
description "Support for SOL_MAX_RT option"; | ||||
} | ||||
feature inf-max-rt-op { | ||||
description "Support for INF_MAX_RT option"; | ||||
} | ||||
feature addr-selection-op { | ||||
description "Support for Address Selection opiton"; | ||||
} | ||||
feature pcp-server-op { | ||||
description "Support for Port Control Protocol (PCP) | ||||
option"; | ||||
} | ||||
feature s46-rule-op { | ||||
description "Support for S46 Rule option"; | ||||
} | ||||
feature s46-br-op { | ||||
description "Support for S46 Border Relay (BR) option"; | ||||
} | ||||
feature s46-dmr-op { | ||||
description "Support for S46 Default Mapping Rule | ||||
(DMR) option"; | ||||
} | ||||
feature s46-v4-v6-binding-op { | ||||
description "Support for S46 IPv4/IPv6 Address | ||||
Bind option"; | ||||
} | ||||
// features for client options | // features for relay-supplied options | |||
feature option-request-op { | feature erp-local-domain-name-op { | |||
description "Support for Option Request option"; | description "Support for ERP Local Domain Name option"; | |||
} | } | |||
feature rapid-commit-op { | ||||
description "Support for Rapid Commit option"; | // features for client options | |||
} | feature option-request-op { | |||
feature user-class-op { | description "Support for Option Request option"; | |||
description "Support for User Class option"; | } | |||
} | feature rapid-commit-op { | |||
feature vendor-class-op { | description "Support for Rapid Commit option"; | |||
description "Support for Vendor Class option"; | } | |||
} | feature user-class-op { | |||
feature client-arch-type-op { | description "Support for User Class option"; | |||
description "Support for Client System Architecture | } | |||
Type option"; | feature vendor-class-op { | |||
} | description "Support for Vendor Class option"; | |||
feature client-network-interface-identifier-op { | } | |||
description "Support for Client Network Interface | feature client-arch-type-op { | |||
Identifier option"; | description "Support for Client System Architecture | |||
} | Type option"; | |||
feature kbr-principal-name-op { | } | |||
description "Support for Kerberos Principal | feature client-network-interface-identifier-op { | |||
Name option"; | description "Support for Client Network Interface | |||
} | Identifier option"; | |||
feature kbr-realm-name-op { | } | |||
description "Support Kerberos Realm Name option"; | feature kbr-principal-name-op { | |||
} | description "Support for Kerberos Principal | |||
feature client-link-layer-addr-op { | Name option"; | |||
description "Support for Client Link-Layer Address | } | |||
Option"; | feature kbr-realm-name-op { | |||
} | description "Support Kerberos Realm Name option"; | |||
} | ||||
feature client-link-layer-addr-op { | ||||
description "Support for Client Link-Layer Address | ||||
Option"; | ||||
} | ||||
// features for custom options | ||||
feature operator-op-ipv6-address { | ||||
description "Support for Option with IPv6 Addresses"; | ||||
} | ||||
feature operator-op-single-flag { | ||||
description "Support for Option with Single Flag"; | ||||
} | ||||
feature operator-op-ipv6-prefix { | ||||
description "Support for Option with IPv6 Prefix"; | ||||
} | ||||
feature operator-op-int32 { | ||||
description "Support for Opion with 32-bit | ||||
Integer Value"; | ||||
} | ||||
feature operator-op-int16 { | ||||
description "Support for Opion with 16-bit Integer Value"; | ||||
} | ||||
feature operator-op-int8 { | ||||
description "Support for Opion with 8-bit Integer Value"; | ||||
} | ||||
feature operator-op-uri { | ||||
description "Support for Opion with URI"; | ||||
} | ||||
feature operator-op-textstring { | ||||
description "Support for Opion with Text String"; | ||||
} | ||||
feature operator-op-var-data { | ||||
description "Support for Opion with Variable-Length Data"; | ||||
} | ||||
feature operator-op-dns-wire { | ||||
description "Support for Opion with DNS Wire | ||||
Format Domain Name List"; | ||||
} | ||||
// features for custom options | ||||
feature operator-op-ipv6-address { | ||||
description "Support for Option with IPv6 Addresses"; | ||||
} | ||||
feature operator-op-single-flag { | ||||
description "Support for Option with Single Flag"; | ||||
} | ||||
feature operator-op-ipv6-prefix { | ||||
description "Support for Option with IPv6 Prefix"; | ||||
} | ||||
feature operator-op-int32 { | ||||
description "Support for Opion with 32-bit | ||||
Integer Value"; | ||||
} | ||||
feature operator-op-int16 { | ||||
description "Support for Opion with 16-bit Integer Value"; | ||||
} | ||||
feature operator-op-int8 { | ||||
description "Support for Opion with 8-bit Integer Value"; | ||||
} | ||||
feature operator-op-uri { | ||||
description "Support for Opion with URI"; | ||||
} | ||||
feature operator-op-textstring { | ||||
description "Support for Opion with Text String"; | ||||
} | ||||
feature operator-op-var-data { | ||||
description "Support for Opion with Variable-Length Data"; | ||||
} | ||||
feature operator-op-dns-wire { | ||||
description "Support for Opion with DNS Wire | ||||
Format Domain Name List"; | ||||
} | ||||
/* | /* | |||
* Groupings | * Groupings | |||
*/ | */ | |||
grouping server-option-definitions { | grouping server-option-definitions { | |||
description "Contains definitions for options configured on the | description "Contains definitions for options configured on the | |||
DHCPv6 server which will be supplied to clients."; | DHCPv6 server which will be supplied to clients."; | |||
container server-unicast-option { | container server-unicast-option { | |||
if-feature server-unicast-op; | if-feature server-unicast-op; | |||
skipping to change at page 72, line 45 ¶ | skipping to change at page 75, line 43 ¶ | |||
DHCPv6"; | DHCPv6"; | |||
list ntp-server { | list ntp-server { | |||
key ntp-serv-id; | key ntp-serv-id; | |||
description "ntp server info"; | description "ntp server info"; | |||
leaf ntp-serv-id { | leaf ntp-serv-id { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "NTP server id"; | description "NTP server id"; | |||
} | } | |||
choice ntp-time-source-suboption { | choice ntp-time-source-suboption { | |||
description "Select a NTP time source suboption."; | description "Select a NTP time source suboption."; | |||
case server-address { | case server-address { | |||
leaf-list ntp-serv-addr-suboption { | leaf-list ntp-serv-addr-suboption { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description "NTP server addr"; | description "NTP server addr"; | |||
} | } | |||
} | } | |||
case server-multicast-address { | case server-multicast-address { | |||
leaf-list ntp-serv-mul-addr-suboption { | leaf-list ntp-serv-mul-addr-suboption { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description "NTP server multicast addr"; | description "NTP server multicast addr"; | |||
} | } | |||
} | } | |||
case server-fqdn { | case server-fqdn { | |||
leaf-list ntp-serv-fqdn-suboption { | leaf-list ntp-serv-fqdn-suboption { | |||
type string; | type string; | |||
description "NTP server fqdn"; | description "NTP server fqdn"; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
container boot-file-url-option { | container boot-file-url-option { | |||
if-feature boot-file-url-op; | if-feature boot-file-url-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPT_BOOTFILE_URL (59) Boot File URL option"; | description "OPT_BOOTFILE_URL (59) Boot File URL Option"; | |||
reference "RFC5970: DHCPv6 Options for Network Boot"; | reference "RFC5970: DHCPv6 Options for Network Boot"; | |||
list boot-file { | list boot-file { | |||
key boot-file-id; | key boot-file-id; | |||
description "boot file info"; | description "boot file info"; | |||
leaf boot-file-id { | leaf boot-file-id { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "boot file id"; | description "boot file id"; | |||
} | } | |||
leaf-list suitable-arch-type { | leaf-list suitable-arch-type { | |||
type uint16; | type uint16; | |||
description "architecture type"; | description "architecture type"; | |||
} | } | |||
leaf-list suitable-net-if { | leaf-list suitable-net-if { | |||
type uint32; | type uint32; | |||
description "network interface"; | description "network interface"; | |||
} | } | |||
leaf boot-file-url { | leaf boot-file-url { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "url for boot file"; | description "url for boot file"; | |||
} | ||||
} | ||||
} | } | |||
} | ||||
} | ||||
container boot-file-param-option { | container boot-file-param-option { | |||
if-feature boot-file-param-op; | if-feature boot-file-param-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPT_BOOTFiLE_PARAM (60) Boot File Parameters Option"; | description "OPT_BOOTFiLE_PARAM (60) Boot File Parameters Option"; | |||
reference "RFC5970: DHCPv6 Options for Network Boot"; | reference "RFC5970: DHCPv6 Options for Network Boot"; | |||
list boot-file-paras { | list boot-file-paras { | |||
key para-id; | key para-id; | |||
description "boot file parameters"; | description "boot file parameters"; | |||
leaf para-id { | leaf para-id { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "parameter id"; | description "parameter id"; | |||
} | } | |||
leaf parameter { | leaf parameter { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "parameter value"; | description "parameter value"; | |||
} | } | |||
} | } | |||
} | } | |||
container aftr-name-option { | container aftr-name-option { | |||
if-feature aftr-name-op; | if-feature aftr-name-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_AFTR_NAME (64) AFTR-Name DHCPv6 Option"; | description "OPTION_AFTR_NAME (64) AFTR-Name DHCPv6 Option"; | |||
reference "RFC6334: Dynamic Host Configuration Protocol for IPv6 | reference "RFC6334: Dynamic Host Configuration Protocol for IPv6 | |||
(DHCPv6) Option for Dual-Stack Lite"; | (DHCPv6) Option for Dual-Stack Lite"; | |||
leaf tunnel-endpoint-name { | leaf tunnel-endpoint-name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "aftr name"; | description "aftr name"; | |||
} | } | |||
} | } | |||
container kbr-default-name-option { | container kbr-default-name-option { | |||
if-feature kbr-default-name-op; | if-feature kbr-default-name-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_KRB_DEFAULT_REALM_NAME (77) Kerberos Default Realm Name Option"; | description "OPTION_KRB_DEFAULT_REALM_NAME (77) Kerberos Default Realm Name Option"; | |||
reference "RFC6784: Kerberos Options for DHCPv6"; | reference "RFC6784: Kerberos Options for DHCPv6"; | |||
leaf default-realm-name { | leaf default-realm-name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "default realm name"; | description "default realm name"; | |||
} | } | |||
} | } | |||
container kbr-kdc-option { | container kbr-kdc-option { | |||
if-feature kbr-kdc-op; | if-feature kbr-kdc-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_KRB_KDC (78) Kerberos KDB Option"; | description "OPTION_KRB_KDC (78) Kerberos KDB Option"; | |||
reference "RFC6784: Kerberos Options for DHCPv6"; | reference "RFC6784: Kerberos Options for DHCPv6"; | |||
list kdc-info { | list kdc-info { | |||
key kdc-id; | key kdc-id; | |||
description "kdc info"; | description "kdc info"; | |||
leaf kdc-id { | leaf kdc-id { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "kdc id"; | description "kdc id"; | |||
} | } | |||
leaf priority { | leaf priority { | |||
type uint16; | type uint16; | |||
skipping to change at page 80, line 29 ¶ | skipping to change at page 83, line 27 ¶ | |||
mandatory true; | mandatory true; | |||
description "ce ipv4 addr"; | description "ce ipv4 addr"; | |||
} | } | |||
leaf bind-prefix6-len { | leaf bind-prefix6-len { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "bind ipv6 prefix | description "bind ipv6 prefix | |||
length"; | length"; | |||
} | } | |||
leaf bind-ipv6-prefix { | leaf bind-ipv6-prefix { | |||
type inet:ipv6-prefix; | type inet:ipv6-address; | |||
mandatory true; | mandatory true; | |||
description "bind ipv6 prefix"; | description "bind ipv6 prefix"; | |||
} | } | |||
uses dhcpv6-types:portset-para; | uses dhcpv6-types:portset-para; | |||
} | } | |||
} | } | |||
} | } | |||
//if - NB - The list of options needs to be updated. | //if - NB - The list of options needs to be updated. | |||
skipping to change at page 83, line 25 ¶ | skipping to change at page 86, line 23 ¶ | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_VENDOR_CLASS (16) Vendor Class Option"; | description "OPTION_VENDOR_CLASS (16) Vendor Class Option"; | |||
reference "RFC3315: Dynamic Host Configuration Protocol | reference "RFC3315: Dynamic Host Configuration Protocol | |||
for IPv6 (DHCPv6)"; | for IPv6 (DHCPv6)"; | |||
leaf enterprise-number { | leaf enterprise-number { | |||
type uint32; | type uint32; | |||
mandatory true; | mandatory true; | |||
description "enterprise number"; | description "enterprise number"; | |||
} | } | |||
list vendor-class { | list vendor-class { | |||
key vendor-class-id; | key vendor-class-id; | |||
description "vendor class"; | description "vendor class"; | |||
leaf vendor-class-id { | leaf vendor-class-id { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "vendor class id"; | description "vendor class id"; | |||
} | } | |||
leaf vendor-class-data { | leaf vendor-class-data { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "The vendor-class-data is composed of a series of | description "The vendor-class-data is composed of a series of | |||
separate items, each of which describes some characteristic | separate items, each of which describes some characteristic | |||
skipping to change at page 84, line 49 ¶ | skipping to change at page 87, line 48 ¶ | |||
mandatory true; | mandatory true; | |||
description "most preferred flag"; | description "most preferred flag"; | |||
} | } | |||
} | } | |||
} | } | |||
container client-network-interface-identifier-option { | container client-network-interface-identifier-option { | |||
if-feature client-network-interface-identifier-op; | if-feature client-network-interface-identifier-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_NII (62) Client Network Interface | description "OPTION_NII (62) Client Network Interface | |||
Identifier Option"; | Identifier Option"; | |||
reference "RFC5970: DHCPv6 Options for Network Boot"; | reference "RFC5970: DHCPv6 Options for Network Boot"; | |||
leaf type { | leaf type { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "type"; | description "type"; | |||
} | } | |||
leaf major { | leaf major { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "major"; | description "major"; | |||
skipping to change at page 85, line 27 ¶ | skipping to change at page 88, line 25 ¶ | |||
} | } | |||
} | } | |||
container kbr-principal-name-option { | container kbr-principal-name-option { | |||
if-feature kbr-principal-name-op; | if-feature kbr-principal-name-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_KRB_PRINCIPAL_NAME (75) Kerberos | description "OPTION_KRB_PRINCIPAL_NAME (75) Kerberos | |||
Principal Name Option"; | Principal Name Option"; | |||
reference "RFC6784: Kerberos Options for DHCPv6"; | reference "RFC6784: Kerberos Options for DHCPv6"; | |||
list principle-name { | list principle-name { | |||
key principle-name-id; | key principle-name-id; | |||
description "principle name"; | description "principle name"; | |||
leaf principle-name-id { | leaf principle-name-id { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description "principle name id"; | description "principle name id"; | |||
} | } | |||
leaf name-type { | leaf name-type { | |||
type int32; | type int32; | |||
mandatory true; | mandatory true; | |||
description "This field specifies the type of name that follows."; | description "This field specifies the type of name that follows."; | |||
} | } | |||
leaf name-string { | leaf name-string { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "This field encodes a sequence of components that form | description "This field encodes a sequence of components that form | |||
a name, each component encoded as a KerberoString"; | a name, each component encoded as a KerberoString"; | |||
} | } | |||
} | } | |||
} | } | |||
container kbr-realm-name-option { | container kbr-realm-name-option { | |||
if-feature kbr-realm-name-op; | if-feature kbr-realm-name-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_KRB_REALM_NAME (76) Kerberos Realm Name Option"; | description "OPTION_KRB_REALM_NAME (76) Kerberos Realm Name Option"; | |||
reference "RFC6784: Kerberos Options for DHCPv6"; | reference "RFC6784: Kerberos Options for DHCPv6"; | |||
leaf realm-name { | leaf realm-name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "realm name"; | description "realm name"; | |||
} | } | |||
} | } | |||
container client-link-layer-addr-option { | container client-link-layer-addr-option { | |||
if-feature client-link-layer-addr-op; | if-feature client-link-layer-addr-op; | |||
presence "Enable this option"; | presence "Enable this option"; | |||
description "OPTION_CLIENT_LINKLAYER_ADDR (79) DHCPv6 Client | description "OPTION_CLIENT_LINKLAYER_ADDR (79) DHCPv6 Client | |||
Link-Layer Address Option"; | Link-Layer Address Option"; | |||
reference "RFC6939: Client Link-Layer Address Option in | reference "RFC6939: Client Link-Layer Address Option in | |||
DHCPv6"; | DHCPv6"; | |||
leaf link-layer-type { | leaf link-layer-type { | |||
skipping to change at page 91, line 52 ¶ | skipping to change at page 94, line 51 ¶ | |||
contact | contact | |||
"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"; | |||
description "This model defines a YANG data model that can be | description "This model defines a YANG data model that can be | |||
used to define some commonly used DHCPv6 types"; | used to define some commonly used DHCPv6 types"; | |||
revision 2018-09-04 { | ||||
description ""; | ||||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | ||||
} | ||||
revision 2018-01-30 { | revision 2018-01-30 { | |||
description "Initial revision"; | description "Initial revision"; | |||
reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | reference "I-D: draft-ietf-dhc-dhcpv6-yang"; | |||
} | } | |||
/* | /* | |||
* Grouping | * Grouping | |||
*/ | */ | |||
grouping vendor-infor { | grouping vendor-infor { | |||
description "Vendor information."; | description "Vendor information."; | |||
End of changes. 153 change blocks. | ||||
1264 lines changed or deleted | 1409 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |