draft-ietf-rtgwg-yang-rip-08.txt   draft-ietf-rtgwg-yang-rip-09.txt 
Network Working Group X. Liu Network Working Group X. Liu
Internet-Draft Jabil Internet-Draft Jabil
Intended status: Standards Track P. Sarda Intended status: Standards Track P. Sarda
Expires: July 14, 2018 Ericsson Expires: August 4, 2018 Ericsson
V. Choudhary V. Choudhary
Individual Individual
January 10, 2018 January 31, 2018
A YANG Data Model for Routing Information Protocol (RIP) A YANG Data Model for Routing Information Protocol (RIP)
draft-ietf-rtgwg-yang-rip-08 draft-ietf-rtgwg-yang-rip-09
Abstract Abstract
This document describes a data model for the management of the This document describes a data model for the management of the
Routing Information Protocol (RIP). Both RIP version 2 and RIPng are Routing Information Protocol (RIP). Both RIP version 2 and RIPng are
covered. The data model includes definitions for configuration, covered. The data model includes definitions for configuration,
operational state, and Remote Procedure Calls (RPCs). operational state, and Remote Procedure Calls (RPCs).
The YANG model in this document conforms to the Network Management The YANG model in this document conforms to the Network Management
Datastore Architecture (NMDA). Datastore Architecture (NMDA).
skipping to change at page 1, line 39 skipping to change at page 1, line 39
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 July 14, 2018. This Internet-Draft will expire on August 4, 2018.
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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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 10, line 29 skipping to change at page 10, line 29
+--ro responses-rcvd? yang:counter32 +--ro responses-rcvd? yang:counter32
+--ro responses-sent? yang:counter32 +--ro responses-sent? yang:counter32
rpcs: rpcs:
+---x clear-rip-route +---x clear-rip-route
+---w input +---w input
+---w rip-instance? leafref +---w rip-instance? leafref
4. YANG Module 4. YANG Module
<CODE BEGINS> file "ietf-rip@2018-01-09.yang" <CODE BEGINS> file "ietf-rip@2018-01-17.yang"
module ietf-rip { module ietf-rip {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rip"; namespace "urn:ietf:params:xml:ns:yang:ietf-rip";
prefix rip; prefix rip;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
skipping to change at page 12, line 7 skipping to change at page 12, line 7
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2018-01-09 { revision 2018-01-17 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Routing Information Protocol "RFC XXXX: A YANG Data Model for Routing Information Protocol
(RIP). (RIP).
RFC 2453: RIP Version 2. RFC 2453: RIP Version 2.
RFC 2080: RIPng for IPv6. RFC 2080: RIPng for IPv6.
RFC 1724: RIP Version 2 MIB Extension."; RFC 1724: RIP Version 2 MIB Extension.";
} }
skipping to change at page 19, line 9 skipping to change at page 19, line 9
leaf metric { leaf metric {
type uint8 { type uint8 {
range 0..16; range 0..16;
} }
description description
"Metric used for the redistributed route. If a metric is "Metric used for the redistributed route. If a metric is
not specified, the metric configured with the not specified, the metric configured with the
default-metric attribute in RIP router configuration is default-metric attribute in RIP router configuration is
used. If the default-metric attribute has not been used. If the default-metric attribute has not been
configured, the default metric for redistributed routes configured, the default metric for redistributed routes
is 0."; is 1.";
} }
leaf route-policy { leaf route-policy {
type route-policy-ref; type route-policy-ref;
description description
"Applies the conditions of the specified route policy to "Applies the conditions of the specified route policy to
routes that are redistributed into the RIP routing routes that are redistributed into the RIP routing
instance."; instance.";
} }
} // redistribute-route-policy-attributes } // redistribute-route-policy-attributes
skipping to change at page 20, line 41 skipping to change at page 20, line 41
grouping global-attributes { grouping global-attributes {
description description
"Global configuration and state attributes."; "Global configuration and state attributes.";
uses originate-default-route-container; uses originate-default-route-container;
leaf default-metric { leaf default-metric {
type uint8 { type uint8 {
range 0..16; range 0..16;
} }
default 0; default 1;
description description
"Set the default metric."; "Set the default metric.";
} }
leaf distance { leaf distance {
type uint8 { type uint8 {
range 1..255; range 1..255;
} }
default 120; default 120;
description description
skipping to change at page 27, line 17 skipping to change at page 27, line 17
} }
container summary-address { container summary-address {
description description
"Summarizes information about RIPv2 or RIPng routes "Summarizes information about RIPv2 or RIPng routes
sent over the specified interface in RIPv2 or RIPng sent over the specified interface in RIPv2 or RIPng
update packets."; update packets.";
leaf address { leaf address {
type inet:ip-prefix; type inet:ip-prefix;
description description
"IPv4 address, in the form A.B.C.D, and the prefix "Specifies the IP address and the prefix length that
length, separated by the slash (/) character; identify the routes to be summarized. The IP address
or IPv6 address, in the form A:B:C:D:E:F:G:H, and can be specified in either IPv4 or IPv6 format, as
the prefix length, separated by the slash (/) specified in RFC6991.";
character.";
} }
leaf metric { leaf metric {
type uint8 { type uint8 {
range 0..16; range 0..16;
} }
description description
"Metric used for the route. If this attribute is not "Metric used for the route. If this attribute is not
used, the value set through the default-metric used, the value set through the default-metric
attribute in RIPv2 or RIPng router configuration is attribute in RIPv2 or RIPng router configuration is
used for the route. "; used for the route. ";
skipping to change at page 37, line 12 skipping to change at page 37, line 7
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177, Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017, <https://www.rfc- DOI 10.17487/RFC8177, June 2017, <https://www.rfc-
editor.org/info/rfc8177>. editor.org/info/rfc8177>.
[I-D.ietf-netmod-rfc7223bis] [I-D.ietf-netmod-rfc7223bis]
Bjorklund, M., "A YANG Data Model for Interface Bjorklund, M., "A YANG Data Model for Interface
Management", draft-ietf-netmod-rfc7223bis-02 (work in Management", draft-ietf-netmod-rfc7223bis-03 (work in
progress), January 2018. progress), January 2018.
[I-D.ietf-netmod-rfc7277bis] [I-D.ietf-netmod-rfc7277bis]
Bjorklund, M., "A YANG Data Model for IP Management", Bjorklund, M., "A YANG Data Model for IP Management",
draft-ietf-netmod-rfc7277bis-02 (work in progress), draft-ietf-netmod-rfc7277bis-03 (work in progress),
January 2018. January 2018.
[I-D.ietf-netmod-rfc8022bis] [I-D.ietf-netmod-rfc8022bis]
Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
Routing Management (NDMA Version)", draft-ietf-netmod- Routing Management (NMDA Version)", draft-ietf-netmod-
rfc8022bis-08 (work in progress), January 2018. rfc8022bis-11 (work in progress), January 2018.
[I-D.ietf-bfd-yang] [I-D.ietf-bfd-yang]
Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and
G. Mirsky, "YANG Data Model for Bidirectional Forwarding G. Mirsky, "YANG Data Model for Bidirectional Forwarding
Detection (BFD)", draft-ietf-bfd-yang-07 (work in Detection (BFD)", draft-ietf-bfd-yang-09 (work in
progress), October 2017. progress), January 2018.
[I-D.ietf-isis-yang-isis-cfg] [I-D.ietf-isis-yang-isis-cfg]
Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L.
Lhotka, "YANG Data Model for IS-IS protocol", draft-ietf- Lhotka, "YANG Data Model for IS-IS protocol", draft-ietf-
isis-yang-isis-cfg-19 (work in progress), November 2017. isis-yang-isis-cfg-19 (work in progress), November 2017.
[I-D.ietf-ospf-yang] [I-D.ietf-ospf-yang]
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
"Yang Data Model for OSPF Protocol", draft-ietf-ospf- "Yang Data Model for OSPF Protocol", draft-ietf-ospf-
yang-09 (work in progress), October 2017. yang-09 (work in progress), October 2017.
[I-D.ietf-netmod-revised-datastores] [I-D.ietf-netmod-revised-datastores]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore and R. Wilton, "Network Management Datastore
Architecture", draft-ietf-netmod-revised-datastores-09 Architecture", draft-ietf-netmod-revised-datastores-10
(work in progress), December 2017. (work in progress), January 2018.
7.2. Informative References 7.2. Informative References
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG",
RFC 7951, DOI 10.17487/RFC7951, August 2016, RFC 7951, DOI 10.17487/RFC7951, August 2016,
<https://www.rfc-editor.org/info/rfc7951>. <https://www.rfc-editor.org/info/rfc7951>.
[I-D.ietf-netconf-subscribed-notifications] [I-D.ietf-netconf-subscribed-notifications]
Voit, E., Clemm, A., Prieto, A., Nilsen-Nygaard, E., and Voit, E., Clemm, A., Prieto, A., Nilsen-Nygaard, E., and
A. Tripathy, "Custom Subscription to Event Streams", A. Tripathy, "Custom Subscription to Event Streams",
skipping to change at page 38, line 19 skipping to change at page 38, line 13
progress), December 2017. progress), December 2017.
[I-D.ietf-netconf-yang-push] [I-D.ietf-netconf-yang-push]
Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen-
Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore
Subscription", draft-ietf-netconf-yang-push-12 (work in Subscription", draft-ietf-netconf-yang-push-12 (work in
progress), December 2017. progress), December 2017.
[I-D.ietf-netmod-rfc6087bis] [I-D.ietf-netmod-rfc6087bis]
Bierman, A., "Guidelines for Authors and Reviewers of YANG Bierman, A., "Guidelines for Authors and Reviewers of YANG
Data Model Documents", draft-ietf-netmod-rfc6087bis-15 Data Model Documents", draft-ietf-netmod-rfc6087bis-16
(work in progress), December 2017. (work in progress), January 2018.
[I-D.ietf-netmod-yang-tree-diagrams] [I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-04 (work in progress), ietf-netmod-yang-tree-diagrams-05 (work in progress),
December 2017. January 2018.
Appendix A. Data Tree Example Appendix A. Data Tree Example
This section contains an example of an instance data tree in the JSON This section contains an example of an instance data tree in the JSON
encoding [RFC7951], containing both configuration and state data. encoding [RFC7951], containing both configuration and state data.
+---------------------+ +---------------------+
| | | |
| Router 203.0.113.1 | | Router 203.0.113.1 |
| | | |
+----------+----------+ +----------+----------+
|eth1 |eth1
|192.0.2.1/24 |2001:db8:0:1::1/64
| |
| |
|192.0.2.2/24 |2001:db8:0:1::2/64
+----------+----------+ +----------+----------+
| | | | | |
| Another Router +---------| 198.51.100.0/24 | Another Router +---------| 2001:db8:0:2::/64
| | | | | |
+---------------------+ +---------------------+
The configuration instance data tree for Router 203.0.113.1 in the The configuration instance data tree for Router 203.0.113.1 in the
above figure could be as follows: above figure could be as follows:
{ {
"ietf-interfaces:interfaces": { "ietf-interfaces:interfaces": {
"interface": [ "interface": [
{ {
"name": "eth1", "name": "eth1",
"description": "An interface with RIPv2 enabled.", "description": "An interface with RIPng enabled.",
"type": "iana-if-type:ethernetCsmacd", "type": "iana-if-type:ethernetCsmacd",
"ietf-ip:ipv4": { "ietf-ip:ipv6": {
"address": [ "address": [
{ {
"ip": "192.0.2.1", "ip": "2001:db8:0:1::1",
"prefix-length": 24 "prefix-length": 64
} }
], ],
"forwarding": true "forwarding": true
} }
} }
] ]
}, },
"ietf-routing:routing": { "ietf-routing:routing": {
"router-id": "203.0.113.1", "router-id": "203.0.113.1",
"control-plane-protocols": { "control-plane-protocols": {
"control-plane-protocol": [ "control-plane-protocol": [
{ {
"type": "ietf-rip:ripv2", "type": "ietf-rip:ripng",
"name": "ripv2-1", "name": "ripng-1",
"description": "RIPv2 instance ripv2-1.", "description": "RIPng instance ripng-1.",
"ietf-rip:rip": { "ietf-rip:rip": {
"redistribute": { "redistribute": {
"connected": { "connected": {
} }
} }
"interfaces": { "interfaces": {
"interface": [ "interface": [
{ {
"interface": "eth1", "interface": "eth1",
"split-horizon": "poison-reverse" "split-horizon": "poison-reverse"
skipping to change at page 41, line 12 skipping to change at page 41, line 12
} }
} }
The cooresponding operational state data for Router 203.0.113.1 could The cooresponding operational state data for Router 203.0.113.1 could
be as follows: be as follows:
{ {
"ietf-interfaces:interfaces": { "ietf-interfaces:interfaces": {
"interface": [ "interface": [
{ {
"name": "eth1", "name": "eth1",
"description": "An interface with RIPv2 enabled.", "description": "An interface with RIPng enabled.",
"type": "iana-if-type:ethernetCsmacd", "type": "iana-if-type:ethernetCsmacd",
"phys-address": "00:0C:42:E5:B1:E9", "phys-address": "00:00:5e:00:53:01",
"oper-status": "up", "oper-status": "up",
"statistics": { "statistics": {
"discontinuity-time": "2016-10-24T17:11:27+02:00" "discontinuity-time": "2016-10-24T17:11:27+02:00"
}, },
"ietf-ip:ipv4": { "ietf-ip:ipv6": {
"forwarding": true, "forwarding": true,
"mtu": 1500, "mtu": 1500,
"address": [ "address": [
{ {
"ip": "192.0.2.1", "ip": "2001:db8:0:1::1",
"prefix-length": 24 "prefix-length": 64,
"origin": "static",
"status": "preferred"
},
{
"ip": "fe80::200:5eff:fe00:5301",
"prefix-length": 64,
"origin": "link-layer",
"status": "preferred"
}
],
"neighbor": [
{
"ip": "2001:db8:0:1::2",
"link-layer-address": "00:00:5e:00:53:02",
"origin": "dynamic",
"is-router": [null],
"state": "reachable"
},
{
"ip": "fe80::200:5eff:fe00:5302",
"link-layer-address": "00:00:5e:00:53:02",
"origin": "dynamic",
"is-router": [null],
"state": "reachable"
} }
] ]
} }
} }
] ]
}, },
"ietf-routing:routing": { "ietf-routing:routing": {
"router-id": "203.0.113.1", "router-id": "203.0.113.1",
"interfaces": { "interfaces": {
"interface": [ "interface": [
"eth1" "eth1"
] ]
skipping to change at page 41, line 42 skipping to change at page 42, line 19
"ietf-routing:routing": { "ietf-routing:routing": {
"router-id": "203.0.113.1", "router-id": "203.0.113.1",
"interfaces": { "interfaces": {
"interface": [ "interface": [
"eth1" "eth1"
] ]
}, },
"control-plane-protocols": { "control-plane-protocols": {
"control-plane-protocol": [ "control-plane-protocol": [
{ {
"type": "ietf-rip:rip", "type": "ietf-rip:ripng",
"name": "ripv2-1" "name": "ripng-1",
"description": "RIPng instance ripng-1.",
"ietf-rip:rip": { "ietf-rip:rip": {
"default-metric": 1, "default-metric": 1,
"next-triggered-update": 5 "next-triggered-update": 5
"interfaces": { "interfaces": {
"interface": [ "interface": [
{ {
"interface": "eth1", "interface": "eth1",
"oper-status": "up", "oper-status": "up",
"cost": 1, "cost": 1,
"split-horizon": "poison-reverse", "split-horizon": "poison-reverse",
"valid-address": true "valid-address": true
} }
] ]
}, },
"ipv4" { "ipv6" {
"neighbors": { "neighbors": {
"neighbor": [ "neighbor": [
{ {
"address": "192.0.2.2" "address": "fe80::200:5eff:fe00:5302",
"last-update": "2017-01-02T10:34:55+02:00"
} }
] ]
} }
"routes": { "routes": {
"route": [ "route": [
{ {
"ipv4-prefix": "192.0.2.1/24", "ipv6-prefix": "2001:db8:0:1::/64",
"interface": "eth1", "interface": "eth1",
"redistributed": true, "redistributed": true,
"route-type": "connected", "route-type": "connected",
"metric": 0, "metric": 1,
"expire-time": 22 "expire-time": 22
}, },
{ {
"ipv4-prefix": "198.51.100.0/24", "ipv6-prefix": "2001:db8:0:2::/64",
"next-hop": "192.0.2.2", "next-hop": "fe80::200:5eff:fe00:5302",
"interface": "eth1", "interface": "eth1",
"redistributed": false, "redistributed": false,
"route-type": "rip", "route-type": "rip",
"metric": 1, "metric": 2,
"expire-time": 82 "expire-time": 82
} }
] ]
} }
}, },
"statistics": { "statistics": {
"discontinuity-time": "2016-10-24T17:11:27+02:00", "discontinuity-time": "2016-10-24T17:11:27+02:00",
"requests-rcvd": 523, "requests-rcvd": 523,
"requests-sent": 262, "requests-sent": 262,
"responses-rcvd": 261, "responses-rcvd": 261,
 End of changes. 35 change blocks. 
49 lines changed or deleted 75 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/