summaryrefslogtreecommitdiffstats
path: root/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang
diff options
context:
space:
mode:
authorMichal Cmarada <michal.cmarada@pantheon.tech>2018-05-04 16:13:09 +0200
committerMichal Cmarada <michal.cmarada@pantheon.tech>2018-05-09 14:36:21 +0200
commit8f9fe3ca424abc56d212a96af4ec5750a29e7673 (patch)
treec3472885ef0fb57452b88b4ea76f2935f81ca39f /routing/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang
parentd5883157bff11ee89b95bc1abe7f62fca3509950 (diff)
HC2VPP-253 - Bump routing models
This patch updates (for support of SRv6 and MPLS) routing models to: - hc2vpp-ietf-routing@2018-03-13.yang (RFC 8349, https://tools.ietf.org/html/rfc8349) - hc2vpp-ietf-ipv4-unicast-routing@2018-03-13.yang (RFC 8349) - hc2vpp-ietf-ipv6-unicast-routing@2018-03-13.yang (RFC 8349) - hc2vpp-ietf-ipv6-router-advertisements@2018-03-13 (RFC 8349) - hc2vpp-ietf-routing-types@2017-12-04 (RFC 8294 ,https://tools.ietf.org/html/rfc8294) Due to odl bugs these models were changed, see HC2VPP-298 for more details. Significant changes in updated models: - Routing instance was removed, we used vpp-routing-instance as single instance before, which is no longer needed. - Routing-protocol and Routing-protocols were refactored to Control-plane-protocol/s. Control-protocol now uses type and name as key - Route Key was changed from id to ipPrefix - Next-hop and Next-Hop-list were refactored See attached routing_postman_collection.json for updated data structures and examples for both IPv4 and IPv6 routes. For router advertisements see routing_advertisments_postman_collection.json Another fixes in this patch: - fixes in MPLS module due to Routing model updates - fixes doc module due to changes in Routing model Change-Id: I33704a50061aef97dfbd73a7701ff6fe5274d6f0 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
Diffstat (limited to 'routing/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang')
-rwxr-xr-xrouting/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang501
1 files changed, 501 insertions, 0 deletions
diff --git a/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang b/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang
new file mode 100755
index 000000000..9c33ffc94
--- /dev/null
+++ b/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv6-router-advertisements@2018-03-13.yang
@@ -0,0 +1,501 @@
+submodule hc2vpp-ietf-ipv6-router-advertisements {
+ yang-version "1.1";
+
+ belongs-to hc2vpp-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.";
+ }
+ }
+ }
+ }
+ }
+}