draft-ietf-i2rs-rib-info-model-11.txt | draft-ietf-i2rs-rib-info-model-12.txt | |||
---|---|---|---|---|
Network Working Group N. Bahadur, Ed. | Network Working Group N. Bahadur, Ed. | |||
Internet-Draft Bracket Computing | Internet-Draft Bracket Computing | |||
Intended status: Informational S. Kini, Ed. | Intended status: Informational S. Kini, Ed. | |||
Expires: December 18, 2017 | Expires: May 26, 2018 | |||
J. Medved | J. Medved | |||
Cisco | Cisco | |||
June 16, 2017 | November 22, 2017 | |||
Routing Information Base Info Model | Routing Information Base Info Model | |||
draft-ietf-i2rs-rib-info-model-11 | draft-ietf-i2rs-rib-info-model-12 | |||
Abstract | Abstract | |||
Routing and routing functions in enterprise and carrier networks are | Routing and routing functions in enterprise and carrier networks are | |||
typically performed by network devices (routers and switches) using a | typically performed by network devices (routers and switches) using a | |||
routing information base (RIB). Protocols and configuration push | routing information base (RIB). Protocols and configuration push | |||
data into the RIB and the RIB manager installs state into the | data into the RIB and the RIB manager installs state into the | |||
hardware; for packet forwarding. This draft specifies a information | hardware; for packet forwarding. This draft specifies a information | |||
model for the RIB to enable defining a standardized data model. Such | model for the RIB to enable defining a standardized data model. Such | |||
a data model can be used to define an interface to the RIB from an | a data model can be used to define an interface to the RIB from an | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
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 December 18, 2017. | This Internet-Draft will expire on May 26, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 2, line 22 ¶ | skipping to change at page 2, line 22 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
1.1. Conventions used in this document . . . . . . . . . . . . 6 | 1.1. Conventions used in this document . . . . . . . . . . . . 6 | |||
2. RIB data . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. RIB data . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.1. RIB definition . . . . . . . . . . . . . . . . . . . . . . 6 | 2.1. RIB definition . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2. Routing instance . . . . . . . . . . . . . . . . . . . . . 7 | 2.2. Routing instance . . . . . . . . . . . . . . . . . . . . . 7 | |||
2.3. Route . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 2.3. Route . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
2.4. Nexthop . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 2.4. Nexthop . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
2.4.1. Nexthop types . . . . . . . . . . . . . . . . . . . . 11 | 2.4.1. Nexthop types . . . . . . . . . . . . . . . . . . . . 12 | |||
2.4.2. Nexthop list attributes . . . . . . . . . . . . . . . 12 | 2.4.2. Nexthop list attributes . . . . . . . . . . . . . . . 13 | |||
2.4.3. Nexthop content . . . . . . . . . . . . . . . . . . . 12 | 2.4.3. Nexthop content . . . . . . . . . . . . . . . . . . . 13 | |||
2.4.4. Special nexthops . . . . . . . . . . . . . . . . . . . 13 | 2.4.4. Special nexthops . . . . . . . . . . . . . . . . . . . 14 | |||
3. Reading from the RIB . . . . . . . . . . . . . . . . . . . . . 14 | 3. Reading from the RIB . . . . . . . . . . . . . . . . . . . . . 14 | |||
4. Writing to the RIB . . . . . . . . . . . . . . . . . . . . . . 14 | 4. Writing to the RIB . . . . . . . . . . . . . . . . . . . . . . 15 | |||
5. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14 | 5. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
6. RIB grammar . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 6. RIB grammar . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.1. Nexthop grammar explained . . . . . . . . . . . . . . . . 18 | 6.1. Nexthop grammar explained . . . . . . . . . . . . . . . . 18 | |||
7. Using the RIB grammar . . . . . . . . . . . . . . . . . . . . 18 | 7. Using the RIB grammar . . . . . . . . . . . . . . . . . . . . 19 | |||
7.1. Using route preference . . . . . . . . . . . . . . . . . . 18 | 7.1. Using route preference . . . . . . . . . . . . . . . . . . 19 | |||
7.2. Using different nexthops types . . . . . . . . . . . . . . 18 | 7.2. Using different nexthops types . . . . . . . . . . . . . . 19 | |||
7.2.1. Tunnel nexthops . . . . . . . . . . . . . . . . . . . 18 | 7.2.1. Tunnel nexthops . . . . . . . . . . . . . . . . . . . 19 | |||
7.2.2. Replication lists . . . . . . . . . . . . . . . . . . 19 | 7.2.2. Replication lists . . . . . . . . . . . . . . . . . . 19 | |||
7.2.3. Weighted lists . . . . . . . . . . . . . . . . . . . . 19 | 7.2.3. Weighted lists . . . . . . . . . . . . . . . . . . . . 20 | |||
7.2.4. Protection . . . . . . . . . . . . . . . . . . . . . . 20 | 7.2.4. Protection . . . . . . . . . . . . . . . . . . . . . . 20 | |||
7.2.5. Nexthop chains . . . . . . . . . . . . . . . . . . . . 20 | 7.2.5. Nexthop chains . . . . . . . . . . . . . . . . . . . . 21 | |||
7.2.6. Lists of lists . . . . . . . . . . . . . . . . . . . . 21 | 7.2.6. Lists of lists . . . . . . . . . . . . . . . . . . . . 22 | |||
7.3. Performing multicast . . . . . . . . . . . . . . . . . . . 22 | 7.3. Performing multicast . . . . . . . . . . . . . . . . . . . 23 | |||
8. RIB operations at scale . . . . . . . . . . . . . . . . . . . 23 | 8. RIB operations at scale . . . . . . . . . . . . . . . . . . . 24 | |||
8.1. RIB reads . . . . . . . . . . . . . . . . . . . . . . . . 23 | 8.1. RIB reads . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
8.2. RIB writes . . . . . . . . . . . . . . . . . . . . . . . . 23 | 8.2. RIB writes . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
8.3. RIB events and notifications . . . . . . . . . . . . . . . 23 | 8.3. RIB events and notifications . . . . . . . . . . . . . . . 24 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 24 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 24 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 25 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . . 24 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 25 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
1. Introduction | 1. Introduction | |||
Routing and routing functions in enterprise and carrier networks are | Routing and routing functions in enterprise and carrier networks are | |||
traditionally performed in network devices. Traditionally routers | traditionally performed in network devices. Traditionally routers | |||
run routing protocols and the routing protocols (along with static | run routing protocols and the routing protocols (along with static | |||
config) populate the Routing information base (RIB) of the router. | config) populate the Routing information base (RIB) of the router. | |||
The RIB is managed by the RIB manager and the RIB manager provides a | The RIB is managed by the RIB manager and the RIB manager provides a | |||
north-bound interface to its clients i.e. the routing protocols to | north-bound interface to its clients i.e. the routing protocols to | |||
insert routes into the RIB. The RIB manager consults the RIB and | insert routes into the RIB. The RIB manager consults the RIB and | |||
skipping to change at page 8, line 39 ¶ | skipping to change at page 8, line 39 ¶ | |||
| | | | |||
+-------+-------+-------+--------+ | +-------+-------+-------+--------+ | |||
| | | | | | | | | | | | |||
| | | | | | | | | | | | |||
IPv4 IPv6 MPLS MAC Interface | IPv4 IPv6 MPLS MAC Interface | |||
Figure 3: Route model | Figure 3: Route model | |||
This document specifies the following match types: | This document specifies the following match types: | |||
o IPv4: Match on destination IP address in the IPv4 header | o IPv4: Match on destination and/or source IP address in the IPv4 | |||
o IPv6: Match on destination IP address in the IPv6 header | header | |||
o IPv6: Match on destination and/or source IP address in the IPv6 | ||||
header | ||||
o MPLS: Match on a MPLS label at the top of the MPLS label stack | o MPLS: Match on a MPLS label at the top of the MPLS label stack | |||
o MAC: Match on MAC destination addresses in the ethernet header | o MAC: Match on MAC destination addresses in the ethernet header | |||
o Interface: Match on incoming interface of the packet | o Interface: Match on incoming interface of the packet | |||
o IP multicast: Match on (S, G) or (*, G), where S and G are IP | o IP multicast: Match on (S, G) or (*, G), where S and G are IP | |||
addresses | addresses | |||
Each route MUST have associated with it the following mandatory route | Each route MUST have associated with it the following mandatory route | |||
attributes. | attributes. | |||
o ROUTE_PREFERENCE: This is a numerical value that allows for | o ROUTE_PREFERENCE: This is a numerical value that allows for | |||
comparing routes from different protocols. Static configuration | comparing routes from different protocols. Static configuration | |||
skipping to change at page 24, line 35 ¶ | skipping to change at page 25, line 32 ¶ | |||
2013 - Wes George, Chris Liljenstolpe, Jeff Tantsura, Susan Hares and | 2013 - Wes George, Chris Liljenstolpe, Jeff Tantsura, Susan Hares and | |||
Fabian Schneider. | Fabian Schneider. | |||
12. References | 12. References | |||
12.1. Normative References | 12.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | |||
RFC2119, March 1997, | RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
12.2. Informative References | 12.2. Informative References | |||
[I-D.hares-i2rs-use-case-vn-vc] | [I-D.hares-i2rs-use-case-vn-vc] | |||
Hares, S. and M. Chen, "Use Cases for Virtual Connections | Hares, S. and M. Chen, "Use Cases for Virtual Connections | |||
on Demand (VCoD) and Virtual Network on Demand (VNoD) | on Demand (VCoD) and Virtual Network on Demand (VNoD) | |||
using Interface to Routing System", | using Interface to Routing System", | |||
draft-hares-i2rs-use-case-vn-vc-03 (work in progress), | draft-hares-i2rs-use-case-vn-vc-03 (work in progress), | |||
July 2014. | July 2014. | |||
[I-D.white-i2rs-use-case] | [I-D.white-i2rs-use-case] | |||
White, R., Hares, S., and A. Retana, "Protocol Independent | White, R., Hares, S., and A. Retana, "Protocol Independent | |||
Use Cases for an Interface to the Routing System", | Use Cases for an Interface to the Routing System", | |||
draft-white-i2rs-use-case-06 (work in progress), | draft-white-i2rs-use-case-06 (work in progress), | |||
July 2014. | July 2014. | |||
[RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. | [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. | |||
Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", | Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", | |||
RFC 4915, DOI 10.17487/RFC4915, June 2007, | RFC 4915, DOI 10.17487/RFC4915, June 2007, | |||
<http://www.rfc-editor.org/info/rfc4915>. | <https://www.rfc-editor.org/info/rfc4915>. | |||
[RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | |||
Topology (MT) Routing in Intermediate System to | Topology (MT) Routing in Intermediate System to | |||
Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/ | Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/ | |||
RFC5120, February 2008, | RFC5120, February 2008, | |||
<http://www.rfc-editor.org/info/rfc5120>. | <https://www.rfc-editor.org/info/rfc5120>. | |||
[RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax | [RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax | |||
Used to Form Encoding Rules in Various Routing Protocol | Used to Form Encoding Rules in Various Routing Protocol | |||
Specifications", RFC 5511, DOI 10.17487/RFC5511, | Specifications", RFC 5511, DOI 10.17487/RFC5511, | |||
April 2009, <http://www.rfc-editor.org/info/rfc5511>. | April 2009, <https://www.rfc-editor.org/info/rfc5511>. | |||
[RFC7920] Atlas, A., Ed., Nadeau, T., Ed., and D. Ward, "Problem | [RFC7920] Atlas, A., Ed., Nadeau, T., Ed., and D. Ward, "Problem | |||
Statement for the Interface to the Routing System", | Statement for the Interface to the Routing System", | |||
RFC 7920, DOI 10.17487/RFC7920, June 2016, | RFC 7920, DOI 10.17487/RFC7920, June 2016, | |||
<http://www.rfc-editor.org/info/rfc7920>. | <https://www.rfc-editor.org/info/rfc7920>. | |||
Authors' Addresses | Authors' Addresses | |||
Nitin Bahadur (editor) | Nitin Bahadur (editor) | |||
Bracket Computing | Bracket Computing | |||
150 West Evelyn Ave, Suite 200 | 150 West Evelyn Ave, Suite 200 | |||
Mountain View, CA 94041 | Mountain View, CA 94041 | |||
US | US | |||
Email: nitin_bahadur@yahoo.com | Email: nitin_bahadur@yahoo.com | |||
End of changes. 16 change blocks. | ||||
37 lines changed or deleted | 39 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/ |