| submodule ietf-ipv6-router-advertisements { |
| yang-version "1.1"; |
| |
| belongs-to ietf-ipv6-unicast-routing { |
| prefix "v6ur"; |
| } |
| |
| import ietf-inet-types { |
| prefix "inet"; |
| } |
| |
| import ietf-interfaces { |
| prefix "if"; |
| description |
| "An 'ietf-interfaces' module version that is compatible with |
| the Network Management Datastore Architecture (NMDA) |
| is required."; |
| } |
| |
| import ietf-ip { |
| prefix "ip"; |
| description |
| "An 'ietf-ip' module version that is compatible with |
| the Network Management Datastore Architecture (NMDA) |
| is required."; |
| } |
| |
| organization |
| "IETF NETMOD (Network Modeling) Working Group"; |
| contact |
| "WG Web: <https://datatracker.ietf.org/wg/netmod/> |
| WG List: <mailto:rtgwg@ietf.org> |
| |
| Editor: Ladislav Lhotka |
| <mailto:lhotka@nic.cz> |
| Acee Lindem |
| <mailto:acee@cisco.com> |
| Yingzhen Qu |
| <mailto:yingzhen.qu@huawei.com>"; |
| |
| description |
| "This YANG module augments the 'ietf-ip' module with |
| parameters for IPv6 Router Advertisements. The model fully |
| conforms to the Network Management Datastore |
| Architecture (NMDA). |
| |
| Copyright (c) 2018 IETF Trust and the persons |
| identified as authors of the code. All rights reserved. |
| |
| Redistribution and use in source and binary forms, with or |
| without modification, is permitted pursuant to, and subject |
| to the license terms contained in, the Simplified BSD License |
| set forth in Section 4.c of the IETF Trust's Legal Provisions |
| Relating to IETF Documents |
| (https://trustee.ietf.org/license-info). |
| |
| This version of this YANG module is part of RFC 8349; see |
| the RFC itself for full legal notices."; |
| |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; |
| |
| revision 2018-03-13 { |
| description |
| "Network Management Datastore Architecture (NMDA) revision."; |
| reference |
| "RFC 8349: A YANG Data Model for Routing Management |
| (NMDA Version)"; |
| } |
| |
| revision 2016-11-04 { |
| description |
| "Initial revision."; |
| reference |
| "RFC 8022: A YANG Data Model for Routing Management"; |
| } |
| |
| augment "/if:interfaces/if:interface/ip:ipv6" { |
| description |
| "Augments interface configuration with parameters of IPv6 |
| Router Advertisements."; |
| container ipv6-router-advertisements { |
| description |
| "Support for IPv6 Router Advertisements."; |
| leaf send-advertisements { |
| type boolean; |
| default "false"; |
| description |
| "A flag indicating whether or not the router sends |
| periodic Router Advertisements and responds to |
| Router Solicitations."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvSendAdvertisements"; |
| } |
| leaf max-rtr-adv-interval { |
| type uint16 { |
| range "4..65535"; |
| } |
| units "seconds"; |
| default "600"; |
| description |
| "The maximum time allowed between sending unsolicited |
| multicast Router Advertisements from the interface."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - MaxRtrAdvInterval"; |
| } |
| leaf min-rtr-adv-interval { |
| type uint16 { |
| range "3..1350"; |
| } |
| units "seconds"; |
| must ". <= 0.75 * ../max-rtr-adv-interval" { |
| description |
| "The value MUST NOT be greater than 75% of |
| 'max-rtr-adv-interval'."; |
| } |
| description |
| "The minimum time allowed between sending unsolicited |
| multicast Router Advertisements from the interface. |
| |
| The default value to be used operationally if this |
| leaf is not configured is determined as follows: |
| |
| - if max-rtr-adv-interval >= 9 seconds, the default |
| value is 0.33 * max-rtr-adv-interval; |
| |
| - otherwise, it is 0.75 * max-rtr-adv-interval."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - MinRtrAdvInterval"; |
| } |
| leaf managed-flag { |
| type boolean; |
| default "false"; |
| description |
| "The value to be placed in the 'Managed address |
| configuration' flag field in the Router |
| Advertisement."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvManagedFlag"; |
| } |
| leaf other-config-flag { |
| type boolean; |
| default "false"; |
| description |
| "The value to be placed in the 'Other configuration' |
| flag field in the Router Advertisement."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvOtherConfigFlag"; |
| } |
| leaf link-mtu { |
| type uint32; |
| default "0"; |
| description |
| "The value to be placed in MTU options sent by the |
| router. A value of zero indicates that no MTU options |
| are sent."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvLinkMTU"; |
| } |
| leaf reachable-time { |
| type uint32 { |
| range "0..3600000"; |
| } |
| units "milliseconds"; |
| default "0"; |
| description |
| "The value to be placed in the Reachable Time field in |
| the Router Advertisement messages sent by the router. |
| A value of zero means unspecified (by this router)."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvReachableTime"; |
| } |
| leaf retrans-timer { |
| type uint32; |
| units "milliseconds"; |
| default "0"; |
| description |
| "The value to be placed in the Retrans Timer field in |
| the Router Advertisement messages sent by the router. |
| A value of zero means unspecified (by this router)."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvRetransTimer"; |
| } |
| leaf cur-hop-limit { |
| type uint8; |
| description |
| "The value to be placed in the Cur Hop Limit field in |
| the Router Advertisement messages sent by the router. |
| A value of zero means unspecified (by this router). |
| |
| If this parameter is not configured, the device SHOULD |
| use the IANA-specified value for the default IPv4 |
| Time to Live (TTL) parameter that was in effect at the |
| time of implementation."; |
| reference |
| "RFC 3232: Assigned Numbers: RFC 1700 is Replaced by |
| an On-line Database |
| RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvCurHopLimit |
| IANA: IP Parameters |
| (https://www.iana.org/assignments/ip-parameters)"; |
| } |
| leaf default-lifetime { |
| type uint16 { |
| range "0..65535"; |
| } |
| units "seconds"; |
| description |
| "The value to be placed in the Router Lifetime field of |
| Router Advertisements sent from the interface, in |
| seconds. It MUST be either zero or between |
| max-rtr-adv-interval and 9000 seconds. A value of zero |
| indicates that the router is not to be used as a |
| default router. These limits may be overridden by |
| specific documents that describe how IPv6 operates over |
| different link layers. |
| |
| If this parameter is not configured, the device SHOULD |
| use a value of 3 * max-rtr-adv-interval."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvDefaultLifetime"; |
| } |
| container prefix-list { |
| description |
| "Support for prefixes to be placed in Prefix |
| Information options in Router Advertisement messages |
| sent from the interface. |
| |
| Prefixes that are advertised by default but do not |
| have their entries in the child 'prefix' list are |
| advertised with the default values of all parameters. |
| |
| The link-local prefix SHOULD NOT be included in the |
| list of advertised prefixes."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) |
| - AdvPrefixList"; |
| list prefix { |
| key "prefix-spec"; |
| description |
| "Support for an advertised prefix entry."; |
| leaf prefix-spec { |
| type inet:ipv6-prefix; |
| description |
| "IPv6 address prefix."; |
| } |
| choice control-adv-prefixes { |
| default "advertise"; |
| description |
| "Either (1) the prefix is explicitly removed from the |
| set of advertised prefixes or (2) the parameters with |
| which the prefix is advertised are specified (default |
| case)."; |
| leaf no-advertise { |
| type empty; |
| description |
| "The prefix will not be advertised. |
| |
| This can be used for removing the prefix from |
| the default set of advertised prefixes."; |
| } |
| case advertise { |
| leaf valid-lifetime { |
| type uint32; |
| units "seconds"; |
| default "2592000"; |
| description |
| "The value to be placed in the Valid Lifetime |
| in the Prefix Information option. The |
| designated value of all 1's (0xffffffff) |
| represents infinity."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 |
| (IPv6) - AdvValidLifetime"; |
| } |
| leaf on-link-flag { |
| type boolean; |
| default "true"; |
| description |
| "The value to be placed in the on-link flag |
| ('L-bit') field in the Prefix Information |
| option."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 |
| (IPv6) - AdvOnLinkFlag"; |
| } |
| leaf preferred-lifetime { |
| type uint32; |
| units "seconds"; |
| must ". <= ../valid-lifetime" { |
| description |
| "This value MUST NOT be greater than |
| valid-lifetime."; |
| } |
| default "604800"; |
| description |
| "The value to be placed in the Preferred |
| Lifetime in the Prefix Information option. |
| The designated value of all 1's (0xffffffff) |
| represents infinity."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 |
| (IPv6) - AdvPreferredLifetime"; |
| } |
| leaf autonomous-flag { |
| type boolean; |
| default "true"; |
| description |
| "The value to be placed in the Autonomous Flag |
| field in the Prefix Information option."; |
| reference |
| "RFC 4861: Neighbor Discovery for IP version 6 |
| (IPv6) - AdvAutonomousFlag"; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| /* |
| * The subsequent data nodes are obviated and obsoleted |
| * by the Network Management Datastore Architecture |
| * as described in RFC 8342. |
| */ |
| augment "/if:interfaces-state/if:interface/ip:ipv6" { |
| status obsolete; |
| description |
| "Augments interface state data with parameters of IPv6 |
| Router Advertisements."; |
| container ipv6-router-advertisements { |
| status obsolete; |
| description |
| "Parameters of IPv6 Router Advertisements."; |
| leaf send-advertisements { |
| type boolean; |
| status obsolete; |
| description |
| "A flag indicating whether or not the router sends |
| periodic Router Advertisements and responds to |
| Router Solicitations."; |
| } |
| leaf max-rtr-adv-interval { |
| type uint16 { |
| range "4..1800"; |
| } |
| units "seconds"; |
| status obsolete; |
| description |
| "The maximum time allowed between sending unsolicited |
| multicast Router Advertisements from the interface."; |
| } |
| leaf min-rtr-adv-interval { |
| type uint16 { |
| range "3..1350"; |
| } |
| units "seconds"; |
| status obsolete; |
| description |
| "The minimum time allowed between sending unsolicited |
| multicast Router Advertisements from the interface."; |
| } |
| leaf managed-flag { |
| type boolean; |
| status obsolete; |
| description |
| "The value that is placed in the 'Managed address |
| configuration' flag field in the Router Advertisement."; |
| } |
| leaf other-config-flag { |
| type boolean; |
| status obsolete; |
| description |
| "The value that is placed in the 'Other configuration' flag |
| field in the Router Advertisement."; |
| } |
| leaf link-mtu { |
| type uint32; |
| status obsolete; |
| description |
| "The value that is placed in MTU options sent by the |
| router. A value of zero indicates that no MTU options |
| are sent."; |
| } |
| leaf reachable-time { |
| type uint32 { |
| range "0..3600000"; |
| } |
| units "milliseconds"; |
| status obsolete; |
| description |
| "The value that is placed in the Reachable Time field in |
| the Router Advertisement messages sent by the router. A |
| value of zero means unspecified (by this router)."; |
| } |
| leaf retrans-timer { |
| type uint32; |
| units "milliseconds"; |
| status obsolete; |
| description |
| "The value that is placed in the Retrans Timer field in the |
| Router Advertisement messages sent by the router. A value |
| of zero means unspecified (by this router)."; |
| } |
| leaf cur-hop-limit { |
| type uint8; |
| status obsolete; |
| description |
| "The value that is placed in the Cur Hop Limit field in the |
| Router Advertisement messages sent by the router. A value |
| of zero means unspecified (by this router)."; |
| } |
| leaf default-lifetime { |
| type uint16 { |
| range "0..9000"; |
| } |
| units "seconds"; |
| status obsolete; |
| description |
| "The value that is placed in the Router Lifetime field of |
| Router Advertisements sent from the interface, in seconds. |
| A value of zero indicates that the router is not to be |
| used as a default router."; |
| } |
| container prefix-list { |
| status obsolete; |
| description |
| "A list of prefixes that are placed in Prefix Information |
| options in Router Advertisement messages sent from the |
| interface. |
| |
| By default, these are all prefixes that the router |
| advertises via routing protocols as being on-link for the |
| interface from which the advertisement is sent."; |
| list prefix { |
| key "prefix-spec"; |
| status obsolete; |
| description |
| "Advertised prefix entry and its parameters."; |
| leaf prefix-spec { |
| type inet:ipv6-prefix; |
| status obsolete; |
| description |
| "IPv6 address prefix."; |
| } |
| leaf valid-lifetime { |
| type uint32; |
| units "seconds"; |
| status obsolete; |
| description |
| "The value that is placed in the Valid Lifetime in the |
| Prefix Information option. The designated value of |
| all 1's (0xffffffff) represents infinity. |
| |
| An implementation SHOULD keep this value constant in |
| consecutive advertisements, except when it is |
| explicitly changed in configuration."; |
| } |
| leaf on-link-flag { |
| type boolean; |
| status obsolete; |
| description |
| "The value that is placed in the on-link flag ('L-bit') |
| field in the Prefix Information option."; |
| } |
| leaf preferred-lifetime { |
| type uint32; |
| units "seconds"; |
| status obsolete; |
| description |
| "The value that is placed in the Preferred Lifetime in |
| the Prefix Information option, in seconds. The |
| designated value of all 1's (0xffffffff) represents |
| infinity. |
| |
| An implementation SHOULD keep this value constant in |
| consecutive advertisements, except when it is |
| explicitly changed in configuration."; |
| } |
| leaf autonomous-flag { |
| type boolean; |
| status obsolete; |
| description |
| "The value that is placed in the Autonomous Flag field |
| in the Prefix Information option."; |
| } |
| } |
| } |
| } |
| } |
| } |