draft-ietf-i2rs-rib-data-model-12.txt   draft-ietf-i2rs-rib-data-model-13.txt 
Network Working Group L. Wang Network Working Group L. Wang
Internet-Draft Individual Internet-Draft Individual
Intended status: Standards Track M. Chen Intended status: Standards Track M. Chen
Expires: October 23, 2018 Huawei Expires: November 8, 2018 Huawei
A. Dass A. Dass
Ericsson Ericsson
H. Ananthakrishnan H. Ananthakrishnan
Packet Design Packet Design
S. Kini S. Kini
Individual Individual
N. Bahadur N. Bahadur
Bracket Computing Bracket Computing
April 21, 2018 May 7, 2018
A YANG Data Model for Routing Information Base (RIB) A YANG Data Model for Routing Information Base (RIB)
draft-ietf-i2rs-rib-data-model-12 draft-ietf-i2rs-rib-data-model-13
Abstract Abstract
This document defines a YANG data model for the Routing Information This document defines a YANG data model for the Routing Information
Base (RIB) that aligns with the I2RS RIB information model. Base (RIB) that aligns with the I2RS RIB information model.
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 46 skipping to change at page 1, line 46
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 October 23, 2018. This Internet-Draft will expire on November 8, 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
(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 3, line 41 skipping to change at page 3, line 41
module: ietf-i2rs-rib module: ietf-i2rs-rib
+--rw routing-instance +--rw routing-instance
+--rw name string +--rw name string
+--rw interface-list* [name] +--rw interface-list* [name]
| +--rw name if:interface-ref | +--rw name if:interface-ref
+--rw router-id? yang:dotted-quad +--rw router-id? yang:dotted-quad
+--rw lookup-limit? uint8 +--rw lookup-limit? uint8
+--rw rib-list* [name] +--rw rib-list* [name]
+--rw name string +--rw name string
+--rw address-family rib-family-definition +--rw address-family address-family-definition
+--rw ip-rpf-check? boolean +--rw ip-rpf-check? boolean
+--rw route-list* [route-index] +--rw route-list* [route-index]
| +--rw route-index uint64 | +--rw route-index uint64
| +--rw match | +--rw match
| | +--rw (route-type)? | | +--rw (route-type)?
| | +--:(ipv4) | | +--:(ipv4)
| | | ... | | | ...
| | +--:(ipv6) | | +--:(ipv6)
| | | ... | | | ...
| | +--:(mpls-route) | | +--:(mpls-route)
skipping to change at page 4, line 34 skipping to change at page 4, line 34
| | ... | | ...
| +--rw route-attributes | +--rw route-attributes
| | ... | | ...
| +--rw route-vendor-attributes | +--rw route-vendor-attributes
+--rw nexthop-list* [nexthop-member-id] +--rw nexthop-list* [nexthop-member-id]
+--rw nexthop-member-id uint32 +--rw nexthop-member-id uint32
rpcs: rpcs:
+---x rib-add +---x rib-add
| +---w input | +---w input
| | +---w name string | | +---w name string
| | +---w address-family rib-family-definition | | +---w address-family address-family-definition
| | +---w ip-rpf-check? boolean | | +---w ip-rpf-check? boolean
| +--ro output | +--ro output
| +--ro result uint32 | +--ro result uint32
| +--ro reason? string | +--ro reason? string
+---x rib-delete +---x rib-delete
| +---w input | +---w input
| | +---w name string | | +---w name string
| +--ro output | +--ro output
| +--ro result uint32 | +--ro result uint32
| +--ro reason? string | +--ro reason? string
skipping to change at page 7, line 6 skipping to change at page 7, line 6
| | | ... | | | ...
| | +--:(nexthop-replicates) {nexthop-replicates}? | | +--:(nexthop-replicates) {nexthop-replicates}?
| | | ... | | | ...
| | +--:(nexthop-protection) {nexthop-protection}? | | +--:(nexthop-protection) {nexthop-protection}?
| | | ... | | | ...
| | +--:(nexthop-load-balance) {nexthop-load-balance}? | | +--:(nexthop-load-balance) {nexthop-load-balance}?
| | ... | | ...
| +--ro nexthop-state nexthop-state-definition | +--ro nexthop-state nexthop-state-definition
+---n route-change +---n route-change
+--ro rib-name string +--ro rib-name string
+--ro address-family rib-family-definition +--ro address-family address-family-definition
+--ro route-index uint64 +--ro route-index uint64
+--ro match +--ro match
| +--ro (route-type)? | +--ro (route-type)?
| +--:(ipv4) | +--:(ipv4)
| | ... | | ...
| +--:(ipv6) | +--:(ipv6)
| | ... | | ...
| +--:(mpls-route) | +--:(mpls-route)
| | ... | | ...
| +--:(mac-route) | +--:(mac-route)
skipping to change at page 8, line 20 skipping to change at page 8, line 20
below: below:
+--rw routing-instance +--rw routing-instance
+--rw name string +--rw name string
+--rw interface-list* [name] +--rw interface-list* [name]
| +--rw name if:interface-ref | +--rw name if:interface-ref
+--rw router-id? yang:dotted-quad +--rw router-id? yang:dotted-quad
+--rw lookup-limit? uint8 +--rw lookup-limit? uint8
+--rw rib-list* [name] +--rw rib-list* [name]
+--rw name string +--rw name string
+--rw address-family rib-family-definition +--rw address-family address-family-definition
+--rw ip-rpf-check? boolean +--rw ip-rpf-check? boolean
+--rw route-list* [route-index] +--rw route-list* [route-index]
... (refer to Section 2.3) ... (refer to Section 2.3)
Figure 2: Routing Instance Structure Figure 2: Routing Instance Structure
2.3. Route 2.3. Route
A route is essentially a match condition and an action following that A route is essentially a match condition and an action following that
match. The match condition specifies the kind of route (e.g., IPv4, match. The match condition specifies the kind of route (e.g., IPv4,
skipping to change at page 12, line 8 skipping to change at page 12, line 8
| | +--rw egress-interface-ipv4-address | | +--rw egress-interface-ipv4-address
| | +--rw outgoing-interface if:interface-ref | | +--rw outgoing-interface if:interface-ref
| | +--rw ipv4-address inet:ipv4-address | | +--rw ipv4-address inet:ipv4-address
| +--:(egress-interface-ipv6-nexthop) | +--:(egress-interface-ipv6-nexthop)
| | +--rw egress-interface-ipv6-address | | +--rw egress-interface-ipv6-address
| | +--rw outgoing-interface if:interface-ref | | +--rw outgoing-interface if:interface-ref
| | +--rw ipv6-address inet:ipv6-address | | +--rw ipv6-address inet:ipv6-address
| +--:(egress-interface-mac-nexthop) | +--:(egress-interface-mac-nexthop)
| | +--rw egress-interface-mac-address | | +--rw egress-interface-mac-address
| | +--rw outgoing-interface if:interface-ref | | +--rw outgoing-interface if:interface-ref
| | +--rw ieee-mac-address uint32 | | +--rw ieee-mac-address yang:mac-address
| +--:(tunnel-encap-nexthop) {nexthop-tunnel}? | +--:(tunnel-encap-nexthop) {nexthop-tunnel}?
| | +--rw tunnel-encap | | +--rw tunnel-encap
| | +--rw (tunnel-type)? | | +--rw (tunnel-type)?
| | +--:(ipv4) {ipv4-tunnel}? | | +--:(ipv4) {ipv4-tunnel}?
| | | +--rw ipv4-header | | | +--rw ipv4-header
| | | +--rw src-ipv4-address inet:ipv4-address | | | +--rw src-ipv4-address inet:ipv4-address
| | | +--rw dest-ipv4-address inet:ipv4-address | | | +--rw dest-ipv4-address inet:ipv4-address
| | | +--rw protocol uint8 | | | +--rw protocol uint8
| | | +--rw ttl? uint8 | | | +--rw ttl? uint8
| | | +--rw dscp? uint8 | | | +--rw dscp? uint8
| | +--:(ipv6) {ipv6-tunnel}? | | +--:(ipv6) {ipv6-tunnel}?
| | | +--rw ipv6-header | | | +--rw ipv6-header
| | | +--rw src-ipv6-address inet:ipv6-address | | | +--rw src-ipv6-address inet:ipv6-address
| | | +--rw dest-ipv6-address inet:ipv6-address | | | +--rw dest-ipv6-address inet:ipv6-address
| | | +--rw next-header uint8 | | | +--rw next-header uint8
| | | +--rw traffic-class? uint8 | | | +--rw traffic-class? uint8
| | | +--rw flow-label? uint16 | | | +--rw flow-label? inet:ipv6-flow-label
| | | +--rw hop-limit? uint8 | | | +--rw hop-limit? uint8
| | +--:(mpls) {mpls-tunnel}? | | +--:(mpls) {mpls-tunnel}?
| | | +--rw mpls-header | | | +--rw mpls-header
| | | +--rw label-operations* [label-oper-id] | | | +--rw label-operations* [label-oper-id]
| | | +--rw label-oper-id uint32 | | | +--rw label-oper-id uint32
| | | +--rw (label-actions)? | | | +--rw (label-actions)?
| | | +--:(label-push) | | | +--:(label-push)
| | | | +--rw label-push | | | | +--rw label-push
| | | | +--rw label uint32 | | | | +--rw label uint32
| | | | +--rw s-bit? boolean | | | | +--rw s-bit? boolean
| | | | +--rw tc-value? uint8 | | | | +--rw tc-value? uint8
| | | | +--rw ttl-value? uint8 | | | | +--rw ttl-value? uint8
| | | +--:(label-swap) | | | +--:(label-swap)
| | | +--rw label-swap | | | +--rw label-swap
| | | +--rw out-label uint32 | | | +--rw out-label uint32
| | | +--rw ttl-action? ttl-action-definition | | | +--rw ttl-action? ttl-action-
definition
| | +--:(gre) {gre-tunnel}? | | +--:(gre) {gre-tunnel}?
| | | +--rw gre-header | | | +--rw gre-header
| | | +--rw (dest-address-type)? | | | +--rw (dest-address-type)?
| | | | +--:(ipv4) | | | | +--:(ipv4)
| | | | | +--rw ipv4-dest inet:ipv4-address | | | | | +--rw ipv4-dest inet:ipv4-address
| | | | +--:(ipv6) | | | | +--:(ipv6)
| | | | +--rw ipv6-dest inet:ipv6-address | | | | +--rw ipv6-dest inet:ipv6-address
| | | +--rw protocol-type uint16 | | | +--rw protocol-type uint16
| | | +--rw key? uint64 | | | +--rw key? uint64
| | +--:(nvgre) {nvgre-tunnel}? | | +--:(nvgre) {nvgre-tunnel}?
skipping to change at page 13, line 17 skipping to change at page 13, line 18
| | | | | +--rw src-ipv4-address inet:ipv4-address | | | | | +--rw src-ipv4-address inet:ipv4-address
| | | | | +--rw dest-ipv4-address inet:ipv4-address | | | | | +--rw dest-ipv4-address inet:ipv4-address
| | | | | +--rw protocol uint8 | | | | | +--rw protocol uint8
| | | | | +--rw ttl? uint8 | | | | | +--rw ttl? uint8
| | | | | +--rw dscp? uint8 | | | | | +--rw dscp? uint8
| | | | +--:(ipv6) | | | | +--:(ipv6)
| | | | +--rw src-ipv6-address inet:ipv6-address | | | | +--rw src-ipv6-address inet:ipv6-address
| | | | +--rw dest-ipv6-address inet:ipv6-address | | | | +--rw dest-ipv6-address inet:ipv6-address
| | | | +--rw next-header uint8 | | | | +--rw next-header uint8
| | | | +--rw traffic-class? uint8 | | | | +--rw traffic-class? uint8
| | | | +--rw flow-label? uint16 | | | | +--rw flow-label? inet:ipv6-flow-label
| | | | +--rw hop-limit? uint8 | | | | +--rw hop-limit? uint8
| | | +--rw virtual-subnet-id uint32 | | | +--rw virtual-subnet-id uint32
| | | +--rw flow-id? uint16 | | | +--rw flow-id? uint16
| | +--:(vxlan) {vxlan-tunnel}? | | +--:(vxlan) {vxlan-tunnel}?
| | +--rw vxlan-header | | +--rw vxlan-header
| | +--rw (vxlan-type)? | | +--rw (vxlan-type)?
| | | +--:(ipv4) | | | +--:(ipv4)
| | | | +--rw src-ipv4-address inet:ipv4-address | | | | +--rw src-ipv4-address inet:ipv4-address
| | | | +--rw dest-ipv4-address inet:ipv4-address | | | | +--rw dest-ipv4-address inet:ipv4-address
| | | | +--rw protocol uint8 | | | | +--rw protocol uint8
| | | | +--rw ttl? uint8 | | | | +--rw ttl? uint8
| | | | +--rw dscp? uint8 | | | | +--rw dscp? uint8
| | | +--:(ipv6) | | | +--:(ipv6)
| | | +--rw src-ipv6-address inet:ipv6-address | | | +--rw src-ipv6-address inet:ipv6-address
| | | +--rw dest-ipv6-address inet:ipv6-address | | | +--rw dest-ipv6-address inet:ipv6-address
| | | +--rw next-header uint8 | | | +--rw next-header uint8
| | | +--rw traffic-class? uint8 | | | +--rw traffic-class? uint8
| | | +--rw flow-label? uint16 | | | +--rw flow-label? inet:ipv6-flow-label
| | | +--rw hop-limit? uint8 | | | +--rw hop-limit? uint8
| | +--rw vxlan-identifier uint32 | | +--rw vxlan-identifier uint32
| +--:(tunnel-decapsulation-nexthop) {nexthop-tunnel}? | +--:(tunnel-decapsulation-nexthop) {nexthop-tunnel}?
| | +--rw tunnel-decapsulation | | +--rw tunnel-decapsulation
| | +--rw (tunnel-type)? | | +--rw (tunnel-type)?
| | +--:(ipv4) {ipv4-tunnel}? | | +--:(ipv4) {ipv4-tunnel}?
| | | +--rw ipv4-decapsulation | | | +--rw ipv4-decapsulation
| | | +--rw ipv4-decapsulation tunnel-decapsulation-action-definition | | | +--rw ipv4-decapsulation tunnel-decapsulation-
action-definition
| | | +--rw ttl-action? ttl-action-definition | | | +--rw ttl-action? ttl-action-definition
| | +--:(ipv6) {ipv6-tunnel}? | | +--:(ipv6) {ipv6-tunnel}?
| | | +--rw ipv6-decapsulation | | | +--rw ipv6-decapsulation
| | | +--rw ipv6-decapsulation tunnel-decapsulation-action-definition | | | +--rw ipv6-decapsulation tunnel-decapsulation-
| | | +--rw hop-limit-action? hop-limit-action-definition action-definition
| | | +--rw hop-limit-action? hop-limit-action-
definition
| | +--:(mpls) {mpls-tunnel}? | | +--:(mpls) {mpls-tunnel}?
| | +--rw label-pop | | +--rw label-pop
| | +--rw label-pop mpls-label-action-definition | | +--rw label-pop mpls-label-action-definition
| | +--rw ttl-action? ttl-action-definition | | +--rw ttl-action? ttl-action-definition
| +--:(logical-tunnel-nexthop) {nexthop-tunnel}? | +--:(logical-tunnel-nexthop) {nexthop-tunnel}?
| | +--rw logical-tunnel | | +--rw logical-tunnel
| | +--rw tunnel-type tunnel-type-definition | | +--rw tunnel-type tunnel-type-definition
| | +--rw tunnel-name string | | +--rw tunnel-name string
| +--:(rib-name-nexthop) | +--:(rib-name-nexthop)
| | +--rw rib-name? string | | +--rw rib-name? string
skipping to change at page 16, line 20 skipping to change at page 16, line 26
* false - failed; when failed, the i2rs agent may return the * false - failed; when failed, the i2rs agent may return the
specific reason that caused the failure. specific reason that caused the failure.
The structure tree of rpcs is shown in following figure. The structure tree of rpcs is shown in following figure.
rpcs: rpcs:
+---x rib-add +---x rib-add
| +---w input | +---w input
| | +---w rib-name string | | +---w rib-name string
| | +---w address-family rib-family-definition | | +---w address-family address-family-definition
| | +---w ip-rpf-check? boolean | | +---w ip-rpf-check? boolean
| +--ro output | +--ro output
| +--ro result uint32 | +--ro result uint32
| +--ro reason? string | +--ro reason? string
+---x rib-delete +---x rib-delete
| +---w input | +---w input
| | +---w rib-name string | | +---w rib-name string
| +--ro output | +--ro output
| +--ro result uint32 | +--ro result uint32
| +--ro reason? string | +--ro reason? string
skipping to change at page 19, line 28 skipping to change at page 19, line 32
| | | ... | | | ...
| | +--:(nexthop-replicate) {nexthop-replicate}? | | +--:(nexthop-replicate) {nexthop-replicate}?
| | | ... | | | ...
| | +--:(nexthop-protection) {nexthop-protection}? | | +--:(nexthop-protection) {nexthop-protection}?
| | | ... | | | ...
| | +--:(nexthop-load-balance) {nexthop-load-balance}? | | +--:(nexthop-load-balance) {nexthop-load-balance}?
| | ... | | ...
| +--ro nexthop-state nexthop-state-definition | +--ro nexthop-state nexthop-state-definition
+---n route-change +---n route-change
+--ro rib-name string +--ro rib-name string
+--ro address-family rib-family-definition +--ro address-family address-family-definition
+--ro route-index uint64 +--ro route-index uint64
+--ro match +--ro match
| +--ro (route-type)? | +--ro (route-type)?
| +--:(ipv4) | +--:(ipv4)
| | ... | | ...
| +--:(ipv6) | +--:(ipv6)
| | ... | | ...
| +--:(mpls-route) | +--:(mpls-route)
| | ... | | ...
| +--:(mac-route) | +--:(mac-route)
skipping to change at page 20, line 7 skipping to change at page 20, line 7
| +--:(interface-route) | +--:(interface-route)
| ... | ...
+--ro route-installed-state route-installed-state-definition +--ro route-installed-state route-installed-state-definition
+--ro route-state route-state-definition +--ro route-state route-state-definition
+--ro route-change-reason route-change-reason-definition +--ro route-change-reason route-change-reason-definition
Figure 7: Notifications Structure Figure 7: Notifications Structure
3. YANG Modules 3. YANG Modules
<CODE BEGINS> file "ietf-i2rs-rib@2018-04-21.yang" <CODE BEGINS> file "ietf-i2rs-rib@2018-04-23.yang"
module ietf-i2rs-rib { module ietf-i2rs-rib {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-i2rs-rib"; namespace "urn:ietf:params:xml:ns:yang:ietf-i2rs-rib";
prefix "iir"; prefix "iir";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference "RFC 6991"; reference "RFC 6991";
} }
skipping to change at page 21, line 9 skipping to change at page 21, line 9
<mailto:sriganesh.kini@ericsson.com> <mailto:sriganesh.kini@ericsson.com>
Editor: Nitin Bahadur Editor: Nitin Bahadur
<mailto:nitin_bahadur@yahoo.com>"; <mailto:nitin_bahadur@yahoo.com>";
description description
"This module defines a YANG data model for "This module defines a YANG data model for
Routing Information Base (RIB) that aligns Routing Information Base (RIB) that aligns
with the I2RS RIB information model. with the I2RS RIB information model.
Copyright (c) <2018> IETF Trust and the persons Copyright (c) <2018> IETF Trust and the persons
identified as authors of the code. All rights reserved."; identified as authors of the code. All rights reserved.";
revision "2018-02-21" { revision "2018-04-23" {
description "initial revision"; description "initial revision";
reference "RFC XXXX: draft-ietf-i2rs-data-model-10"; reference "RFC XXXX: draft-ietf-i2rs-data-model-10";
// RFC Ed.: replace XXXX with actual RFC number and remove // RFC Ed.: replace XXXX with actual RFC number and remove
// this note // this note
} }
//Features //Features
feature nexthop-tunnel { feature nexthop-tunnel {
description description
"This feature means that a node supports "This feature means that a node supports
skipping to change at page 27, line 27 skipping to change at page 27, line 27
} }
typedef ip-route-match-type-definition { typedef ip-route-match-type-definition {
type identityref { type identityref {
base "ip-route-match-type"; base "ip-route-match-type";
} }
description description
"IP route match type definition."; "IP route match type definition.";
} }
identity rib-family { identity address-family {
description description
"Base identity from which all RIB "Base identity from which all RIB
address families are derived."; address families are derived.";
} }
identity ipv4-rib-family { identity ipv4-address-family {
base "rib-family"; base "address-family";
description description
"IPv4 RIB address family."; "IPv4 RIB address family.";
} }
identity ipv6-rib-family { identity ipv6-address-family {
base "rib-family"; base "address-family";
description description
"IPv6 RIB address family."; "IPv6 RIB address family.";
} }
identity mpls-rib-family { identity mpls-address-family {
base "rib-family"; base "address-family";
description description
"MPLS RIB address family."; "MPLS RIB address family.";
} }
identity ieee-mac-rib-family { identity ieee-mac-address-family {
base "rib-family"; base "address-family";
description description
"MAC RIB address family."; "MAC RIB address family.";
} }
typedef rib-family-definition { typedef address-family-definition {
type identityref { type identityref {
base "rib-family"; base "address-family";
} }
description description
"RIB address family definition."; "RIB address family definition.";
} }
identity route-type { identity route-type {
description description
"Base identity from which all route types "Base identity from which all route types
are derived."; are derived.";
} }
skipping to change at page 53, line 34 skipping to change at page 53, line 34
description description
"A list of RIBs that are associated with the routing "A list of RIBs that are associated with the routing
instance."; instance.";
leaf name { leaf name {
type string; type string;
mandatory true; mandatory true;
description description
"A reference to the name of each RIB."; "A reference to the name of each RIB.";
} }
leaf address-family { leaf address-family {
type rib-family-definition; type address-family-definition;
mandatory true; mandatory true;
description description
"The address family of a RIB."; "The address family of a RIB.";
} }
leaf ip-rpf-check { leaf ip-rpf-check {
type boolean; type boolean;
description description
"Each RIB can be optionally associated with a "Each RIB can be optionally associated with a
ENABLE_IP_RPF_CHECK attribute that enables Reverse ENABLE_IP_RPF_CHECK attribute that enables Reverse
path forwarding (RPF) checks on all IP routes in that path forwarding (RPF) checks on all IP routes in that
skipping to change at page 54, line 25 skipping to change at page 54, line 25
"To add a RIB to a instance"; "To add a RIB to a instance";
input { input {
leaf name { leaf name {
type string; type string;
mandatory true; mandatory true;
description description
"A reference to the name of the RIB "A reference to the name of the RIB
that is to be added."; that is to be added.";
} }
leaf address-family { leaf address-family {
type rib-family-definition; type address-family-definition;
mandatory true; mandatory true;
description description
"The address family of the RIB."; "The address family of the RIB.";
} }
leaf ip-rpf-check { leaf ip-rpf-check {
type boolean; type boolean;
description description
"Each RIB can be optionally associated with a "Each RIB can be optionally associated with a
ENABLE_IP_RPF_CHECK attribute that enables Reverse ENABLE_IP_RPF_CHECK attribute that enables Reverse
path forwarding (RPF) checks on all IP routes in that path forwarding (RPF) checks on all IP routes in that
skipping to change at page 63, line 39 skipping to change at page 63, line 39
notification route-change { notification route-change {
description description
"Route change notification."; "Route change notification.";
leaf rib-name { leaf rib-name {
type string; type string;
mandatory true; mandatory true;
description description
"A reference to the name of a RIB."; "A reference to the name of a RIB.";
} }
leaf address-family { leaf address-family {
type rib-family-definition; type address-family-definition;
mandatory true; mandatory true;
description description
"The address family of a RIB."; "The address family of a RIB.";
} }
uses route-prefix; uses route-prefix;
leaf route-installed-state { leaf route-installed-state {
type route-installed-state-definition; type route-installed-state-definition;
mandatory true; mandatory true;
description description
"Indicates whether the route got installed in the FIB."; "Indicates whether the route got installed in the FIB.";
skipping to change at page 67, line 30 skipping to change at page 67, line 30
<https://www.rfc-editor.org/info/rfc8341>. <https://www.rfc-editor.org/info/rfc8341>.
[RFC8344] Bjorklund, M., "A YANG Data Model for IP Management", [RFC8344] Bjorklund, M., "A YANG Data Model for IP Management",
RFC 8344, DOI 10.17487/RFC8344, March 2018, RFC 8344, DOI 10.17487/RFC8344, March 2018,
<https://www.rfc-editor.org/info/rfc8344>. <https://www.rfc-editor.org/info/rfc8344>.
8.2. Informative References 8.2. Informative References
[I-D.ietf-i2rs-rib-info-model] [I-D.ietf-i2rs-rib-info-model]
Bahadur, N., Kini, S., and J. Medved, "Routing Information Bahadur, N., Kini, S., and J. Medved, "Routing Information
Base Info Model", draft-ietf-i2rs-rib-info-model-15 (work Base Info Model", draft-ietf-i2rs-rib-info-model-16 (work
in progress), March 2018. in progress), May 2018.
[I-D.ietf-i2rs-usecase-reqs-summary] [I-D.ietf-i2rs-usecase-reqs-summary]
Hares, S. and M. Chen, "Summary of I2RS Use Case Hares, S. and M. Chen, "Summary of I2RS Use Case
Requirements", draft-ietf-i2rs-usecase-reqs-summary-03 Requirements", draft-ietf-i2rs-usecase-reqs-summary-03
(work in progress), November 2016. (work in progress), November 2016.
[RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P.
Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, Traina, "Generic Routing Encapsulation (GRE)", RFC 2784,
DOI 10.17487/RFC2784, March 2000, DOI 10.17487/RFC2784, March 2000,
<https://www.rfc-editor.org/info/rfc2784>. <https://www.rfc-editor.org/info/rfc2784>.
 End of changes. 30 change blocks. 
36 lines changed or deleted 40 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/