summaryrefslogtreecommitdiffstats
path: root/routing/routing-api/src/main/yang/ietf-ipv6-unicast-routing.yang
diff options
context:
space:
mode:
Diffstat (limited to 'routing/routing-api/src/main/yang/ietf-ipv6-unicast-routing.yang')
-rw-r--r--routing/routing-api/src/main/yang/ietf-ipv6-unicast-routing.yang822
1 files changed, 0 insertions, 822 deletions
diff --git a/routing/routing-api/src/main/yang/ietf-ipv6-unicast-routing.yang b/routing/routing-api/src/main/yang/ietf-ipv6-unicast-routing.yang
deleted file mode 100644
index 93de395d6..000000000
--- a/routing/routing-api/src/main/yang/ietf-ipv6-unicast-routing.yang
+++ /dev/null
@@ -1,822 +0,0 @@
-module ietf-ipv6-unicast-routing {
-
- namespace "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing";
-
- prefix "v6ur";
-
- import ietf-routing {
- prefix "rt";
- }
-
- import ietf-inet-types {
- prefix "inet";
- }
-
- import ietf-interfaces {
- prefix "if";
- }
-
- import ietf-ip {
- prefix "ip";
- }
-
- //TODO modification needed because of yangtools bug(unable to proceed augmentation in separate model of augmentation in this model)
- import vpp-routing {
- prefix vpp-r;
- }
-
- organization
- "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
- contact
- "WG Web: <http://tools.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
-
- WG Chair: Thomas Nadeau
- <mailto:tnadeau@lucidvision.com>
-
- WG Chair: Juergen Schoenwaelder
- <mailto:j.schoenwaelder@jacobs-university.de>
-
- Editor: Ladislav Lhotka
- <mailto:lhotka@nic.cz>";
-
- description
- "This YANG module augments the 'ietf-routing' module with basic
- configuration and operational state data for IPv6 unicast
- routing.
-
- Copyright (c) 2014 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
-
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject to
- the license terms contained in, the Simplified BSD License set
- forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (http://trustee.ietf.org/license-info).
-
- This version of this YANG module is part of RFC XXXX; see the
- RFC itself for full legal notices.";
-
- revision 2014-05-25 {
- description
- "Initial revision.";
- reference
- "RFC XXXX: A YANG Data Model for Routing Management";
- }
-
- /* Identities */
-
- identity ipv6-unicast {
- base rt:ipv6;
- description
- "This identity represents the IPv6 unicast address family.";
- }
-
- /* Operational state data */
-
- augment "/rt:routing-state/rt:routing-instance/rt:interfaces/"
- + "rt:interface" {
- description
- "IPv6-specific parameters of router interfaces.";
- container ipv6-router-advertisements {
- description
- "Parameters of IPv6 Router Advertisements.";
- leaf send-advertisements {
- type boolean;
- 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";
- 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";
- description
- "The minimum time allowed between sending unsolicited
- multicast Router Advertisements from the interface.";
- }
- leaf managed-flag {
- type boolean;
- description
- "The value that is placed in the 'Managed address
- configuration' flag field in the Router Advertisement.";
- }
- leaf other-config-flag {
- type boolean;
- description
- "The value that is placed in the 'Other configuration' flag
- field in the Router Advertisement.";
- }
- leaf link-mtu {
- type uint32;
- 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";
- 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";
- 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;
- 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";
- 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 {
- 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";
- description
- "Advertised prefix entry and its parameters.";
- leaf prefix-spec {
- type inet:ipv6-prefix;
- description
- "IPv6 address prefix.";
- }
- leaf valid-lifetime {
- type uint32;
- units "seconds";
- 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.";
- }
- leaf on-link-flag {
- type boolean;
- 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";
- 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.";
- }
- leaf autonomous-flag {
- type boolean;
- description
- "The value that is placed in the Autonomous Flag field
- in the Prefix Information option.";
- }
- }
- }
- }
- }
-
- augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" {
- when "../../rt:address-family = 'v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- description
- "This leaf augments an IPv6 unicast route.";
- leaf destination-prefix {
- type inet:ipv6-prefix;
- description
- "IPv6 destination prefix.";
- }
- }
-
- augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/"
- + "rt:next-hop-options/rt:simple-next-hop" {
- when "../../rt:address-family = 'v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- description
- "This leaf augments the 'simple-next-hop' case of IPv6 unicast
- routes.";
- leaf next-hop {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- }
-
- augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/"
- + "rt:next-hop-options/rt:next-hop-list/rt:next-hop-list/"
- + "rt:next-hop" {
- when "../../../../rt:address-family = 'v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- if-feature rt:multipath-routes;
- description
- "This leaf augments the 'next-hop-list' case of IPv6 unicast
- routes.";
- leaf address {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- }
-
- /* Configuration data */
-
- augment
- "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface" {
- when "/if:interfaces/if:interface[if:name=current()/rt:name]/"
- + "ip:ipv6/ip:enabled='true'" {
- description
- "This augment is only valid for router interfaces with
- enabled IPv6.";
- }
- description
- "Configuration of IPv6-specific parameters of router
- interfaces.";
- container ipv6-router-advertisements {
- description
- "Configuration of 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..1800";
- }
- 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 value specified in IANA Assigned Numbers that was in
- effect at the time of implementation.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) -
- AdvCurHopLimit.
-
- IANA: IP Parameters,
- http://www.iana.org/assignments/ip-parameters";
- }
- leaf default-lifetime {
- type uint16 {
- range "0..9000";
- }
- 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
- "Configuration of 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
- "Configuration of an advertised prefix entry.";
- leaf prefix-spec {
- type inet:ipv6-prefix;
- description
- "IPv6 address prefix.";
- }
- choice control-adv-prefixes {
- default "advertise";
- description
- "The prefix either may be explicitly removed from the
- set of advertised prefixes, or parameters with which
- it is advertised may be 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.";
- }
- }
- }
- }
- }
- }
- }
-
- //NOTE - added same augmentation for operational state
-
- augment "/rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol/rt:static-routes" {
- description
- "This augment defines the configuration of the 'static'
- pseudo-protocol with data specific to IPv6 unicast.";
- container ipv6 {
- description
- "Configuration of a 'static' pseudo-protocol instance
- consists of a list of routes.";
- list route {
- key "id";
- ordered-by "user";
- description
- "A user-ordered list of static routes.";
- leaf id {
- type uint32 {
- //WARNING - range changed from 1..max to be mappable on vpp table ids
- range "0..max";
- }
- description
- "Unique numeric identifier of the route.
-
- This value is unrelated to system-assigned 'id'
- parameters of routes in RIBs.";
- }
- leaf description {
- type string;
- description
- "Textual description of the route.";
- }
- leaf destination-prefix {
- type inet:ipv6-prefix;
- mandatory "true";
- description
- "IPv6 destination prefix.";
- }
- choice next-hop-options {
- mandatory "true";
- description
- "Options for expressing the next-hop in static routes.";
- case special-next-hop {
- //WARNING - changed, see ietf-routing.yang
- uses rt:special-next-hop-grouping;
- }
- case simple-next-hop {
- leaf next-hop {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved
- leaf outgoing-interface {
- type leafref {
- path "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface/"
- + "rt:name";
- }
- description
- "Name of the outgoing interface.
-
- Only interfaces configured for the ancestor routing
- instance can be given.";
- }
- }
- case next-hop-list {
- if-feature rt:multipath-routes;
- container next-hop-list {
- description
- "Configuration of multiple next-hops.";
- list next-hop {
- key "id";
- description
- "An entry of a next-hop list.";
- leaf id {
- type uint32;
- description
- "Unique numeric identifier of the entry.
-
- This value is unrelated to system-assigned 'id'
- parameters of next-hops in RIBs.";
- }
- leaf address {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved
- leaf outgoing-interface {
- type leafref {
- path "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface/"
- + "rt:name";
- }
- description
- "Name of the outgoing interface.
-
- Only interfaces configured for the ancestor
- routing instance can be given.";
- }
- uses rt:next-hop-classifiers {
- refine "priority" {
- default "primary";
- }
- refine "weight" {
- default "0";
- }
- }
- }
- }
- }
- }
-
- //TODO modification needed because of yangtools bug(unable to proceed augmentation in separate model of augmentation in this model)
- container vpp-ipv6-route-state{
- uses vpp-r:vpp-routing-state-attributes;
- }
- }
- }
- }
-
- augment "/rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol/rt:static-routes" {
- description
- "This augment defines the configuration of the 'static'
- pseudo-protocol with data specific to IPv6 unicast.";
- container ipv6 {
- description
- "Configuration of a 'static' pseudo-protocol instance
- consists of a list of routes.";
- list route {
- key "id";
- ordered-by "user";
- description
- "A user-ordered list of static routes.";
- leaf id {
- type uint32 {
- //WARNING - range changed from 1..max to be mappable on vpp table ids
- range "0..max";
- }
- description
- "Unique numeric identifier of the route.
-
- This value is unrelated to system-assigned 'id'
- parameters of routes in RIBs.";
- }
- leaf description {
- type string;
- description
- "Textual description of the route.";
- }
- leaf destination-prefix {
- type inet:ipv6-prefix;
- mandatory "true";
- description
- "IPv6 destination prefix.";
- }
- choice next-hop-options {
- mandatory "true";
- description
- "Options for expressing the next-hop in static routes.";
- case special-next-hop {
- //WARNING - changed, see ietf-routing.yang
- uses rt:special-next-hop-grouping;
- }
- case simple-next-hop {
- leaf next-hop {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved
- leaf outgoing-interface {
- type leafref {
- path "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface/"
- + "rt:name";
- }
- description
- "Name of the outgoing interface.
-
- Only interfaces configured for the ancestor routing
- instance can be given.";
- }
- }
- case next-hop-list {
- if-feature rt:multipath-routes;
- container next-hop-list {
- description
- "Configuration of multiple next-hops.";
- list next-hop {
- key "id";
- description
- "An entry of a next-hop list.";
- leaf id {
- type uint32;
- description
- "Unique numeric identifier of the entry.
-
- This value is unrelated to system-assigned 'id'
- parameters of next-hops in RIBs.";
- }
- leaf address {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved
- leaf outgoing-interface {
- type leafref {
- path "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface/"
- + "rt:name";
- }
- description
- "Name of the outgoing interface.
-
- Only interfaces configured for the ancestor
- routing instance can be given.";
- }
- uses rt:next-hop-classifiers {
- refine "priority" {
- default "primary";
- }
- refine "weight" {
- default "0";
- }
- }
- }
- }
- }
- }
-
- //TODO modification needed because of yangtools bug(unable to proceed augmentation in separate model of augmentation in this model)
- container vpp-ipv6-route{
- uses vpp-r:vpp-routing-attributes;
- }
- }
- }
- }
-
- /* RPC methods */
-
- augment "/rt:active-route/rt:input/rt:destination-address" {
- when "rt:address-family='v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- description
- "This leaf augments the 'rt:destination-address' parameter of
- the 'rt:active-route' operation.";
- leaf address {
- type inet:ipv6-address;
- description
- "IPv6 destination address.";
- }
- }
-
- augment "/rt:active-route/rt:output/rt:route" {
- when "rt:address-family='v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- description
- "This leaf augments the reply to the 'rt:active-route'
- operation.";
- leaf destination-prefix {
- type inet:ipv6-prefix;
- description
- "IPv6 destination prefix.";
- }
- }
-
- augment "/rt:active-route/rt:output/rt:route/rt:next-hop-options/"
- + "rt:simple-next-hop" {
- when "rt:address-family='v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- description
- "This leaf augments the 'simple-next-hop' case in the reply to
- the 'rt:active-route' operation.";
- leaf next-hop {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- }
-
- augment "/rt:active-route/rt:output/rt:route/rt:next-hop-options/"
- + "rt:next-hop-list/rt:next-hop-list/rt:next-hop" {
- when "../../rt:address-family='v6ur:ipv6-unicast'" {
- description
- "This augment is valid only for IPv6 unicast.";
- }
- if-feature rt:multipath-routes;
- description
- "This leaf augments the 'next-hop-list' case in the reply to
- the 'rt:active-route' operation.";
- leaf address {
- type inet:ipv6-address;
- description
- "IPv6 address of the next-hop.";
- }
- }
-} \ No newline at end of file