draft-ietf-babel-source-specific-06.txt | draft-ietf-babel-source-specific-07.txt | |||
---|---|---|---|---|
Network Working Group M. Boutier | Network Working Group M. Boutier | |||
Internet-Draft J. Chroboczek | Internet-Draft J. Chroboczek | |||
Intended status: Standards Track IRIF, University of Paris-Diderot | Intended status: Standards Track IRIF, University of Paris-Diderot | |||
Expires: April 13, 2021 October 10, 2020 | Expires: May 1, 2021 October 28, 2020 | |||
Source-Specific Routing in Babel | Source-Specific Routing in Babel | |||
draft-ietf-babel-source-specific-06 | draft-ietf-babel-source-specific-07 | |||
Abstract | Abstract | |||
Source-specific routing (also known as Source-Address Dependent | Source-specific routing (also known as Source-Address Dependent | |||
Routing, SADR) is an extension to traditional next-hop routing where | Routing, SADR) is an extension to traditional next-hop routing where | |||
packets are forwarded according to both their destination and their | packets are forwarded according to both their destination and their | |||
source address. This document describes an extension for source- | source address. This document describes an extension for source- | |||
specific routing to the Babel routing protocol. | specific routing to the Babel routing protocol. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
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 April 13, 2021. | This Internet-Draft will expire on May 1, 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 5, line 45 ¶ | skipping to change at page 5, line 45 ¶ | |||
routes. | routes. | |||
5. Protocol Operation | 5. Protocol Operation | |||
This extension does not fundamentally change the operation of the | This extension does not fundamentally change the operation of the | |||
Babel protocol, and we therefore only describe differences between | Babel protocol, and we therefore only describe differences between | |||
the original protocol and the extended protocol. | the original protocol and the extended protocol. | |||
In the original protocol, three TLVs carry a destination prefix: | In the original protocol, three TLVs carry a destination prefix: | |||
Updates, Route Requests and Seqno Requests. This specification | Updates, Route Requests and Seqno Requests. This specification | |||
extends these messages to optionally carry a Source Prefix sub-TLV, | extends these messages so that they may carry a Source Prefix sub- | |||
as described in Section 7 below. The sub-TLV is marked as mandatory, | TLV, as described in Section 7 below. The sub-TLV is marked as | |||
so that an unextended implementation will silently ignore the whole | mandatory, so that an unextended implementation will silently ignore | |||
enclosing TLV. A node obeying this specification MUST NOT send a TLV | the whole enclosing TLV. A node obeying this specification MUST NOT | |||
with a zero-length source prefix: instead, it sends a TLV with no | send a TLV with a zero-length source prefix: instead, it sends a TLV | |||
Source Prefix sub-TLV. Conversely, an extended implementation MUST | with no Source Prefix sub-TLV. Conversely, an extended | |||
interpret an unextended TLV as carrying a source prefix of zero | implementation MUST interpret an unextended TLV as carrying a source | |||
length. Taken together, these properties ensure interoperability | prefix of zero length. Taken together, these properties ensure | |||
between the original and extended protocols (see Section 6 below). | interoperability between the original and extended protocols (see | |||
Section 6 below). | ||||
5.1. Protocol Messages | 5.1. Protocol Messages | |||
This extension allows three TLVs of the original Babel protocol to | This extension allows three TLVs of the original Babel protocol to | |||
carry a source prefix: Update TLVs, Route Request TLVs and Seqno | carry a source prefix: Update TLVs, Route Request TLVs and Seqno | |||
Request TLVs. | Request TLVs. | |||
In order to advertise a route with a non-zero length source prefix, a | In order to advertise a route with a non-zero length source prefix, a | |||
node sends a source-specific Update, i.e., an Update with a Source | node sends a source-specific Update, i.e., an Update with a Source | |||
Prefix sub-TLV. When a node receives a source-specific Update | Prefix sub-TLV. When a node receives a source-specific Update | |||
skipping to change at page 8, line 29 ¶ | skipping to change at page 8, line 29 ¶ | |||
This extension defines a new sub-TLV used to carry a source prefix: | This extension defines a new sub-TLV used to carry a source prefix: | |||
the Source Prefix sub-TLV. It can be used within an Update, a Route | the Source Prefix sub-TLV. It can be used within an Update, a Route | |||
Request or a Seqno Request TLV to match a source-specific entry of | Request or a Seqno Request TLV to match a source-specific entry of | |||
the Route Table, in conjunction with the destination prefix natively | the Route Table, in conjunction with the destination prefix natively | |||
carried by these TLVs. | carried by these TLVs. | |||
Since a source-specific routing entry is characterized by a single | Since a source-specific routing entry is characterized by a single | |||
destination prefix and a single source prefix, a source-specific | destination prefix and a single source prefix, a source-specific | |||
message contains exactly one Source Prefix sub-TLV. A node MUST NOT | message contains exactly one Source Prefix sub-TLV. A node MUST NOT | |||
send more that one Source Prefix sub-TLV in a TLV, and a node | send more than one Source Prefix sub-TLV in a TLV, and a node | |||
receiving more than one Source Prefix sub-TLV in a single TLV SHOULD | receiving more than one Source Prefix sub-TLV in a single TLV MUST | |||
ignore this TLV. It MAY ignore the whole packet. | ignore this TLV. It MAY ignore the whole packet. | |||
7.1. Source Prefix sub-TLV | 7.1. Source Prefix sub-TLV | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = 128 | Length | Source Plen | Source Prefix... | | Type = 128 | Length | Source Plen | Source Prefix... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | |||
skipping to change at page 10, line 41 ¶ | skipping to change at page 10, line 41 ¶ | |||
10. Acknowledgments | 10. Acknowledgments | |||
The authors are grateful to Donald Eastlake and Joel Halpern for | The authors are grateful to Donald Eastlake and Joel Halpern for | |||
their help with this document. | their help with this document. | |||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
[BABEL] Chroboczek, J., "The Babel Routing Protocol", Internet | [BABEL] Chroboczek, J. and D. Schinazi, "The Babel Routing | |||
Draft draft-ietf-babel-rfc6126bis-06, October 2018. | Protocol", Internet Draft draft-ietf-babel-rfc6126bis-20, | |||
September 2020. | ||||
[BCP84] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | [BCP84] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | |||
Networks", BCP 84, RFC 3704, March 2004. | Networks", BCP 84, RFC 3704, March 2004. | |||
[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, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997. | DOI 10.17487/RFC2119, March 1997. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
End of changes. 6 change blocks. | ||||
16 lines changed or deleted | 18 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |