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/ |