| < draft-idr-bgp-route-refresh-options-00.txt | draft-idr-bgp-route-refresh-options-01.txt > | |||
|---|---|---|---|---|
| Network Working Group K. Patel | Network Working Group K. Patel | |||
| Internet-Draft A. Vyavaharkar | Internet-Draft A. Vyavaharkar | |||
| Intended status: Standards Track N. Fazlollahi | Intended status: Standards Track N. Fazlollahi | |||
| Expires: January 09, 2017 Cisco Systems | Expires: May 18, 2017 Cisco Systems | |||
| A. Przygienda | A. Przygienda | |||
| Juniper Networks | Juniper Networks | |||
| July 08, 2016 | November 14, 2016 | |||
| Extension to BGP's Route Refresh Message | Extension to BGP's Route Refresh Message | |||
| draft-idr-bgp-route-refresh-options-00.txt | draft-idr-bgp-route-refresh-options-01.txt | |||
| Abstract | Abstract | |||
| [RFC2918] defines a route refresh capability to be exchanged between | [RFC2918] defines a route refresh capability to be exchanged between | |||
| BGP speakers. BGP speakers that support this capability are | BGP speakers. BGP speakers that support this capability are | |||
| advertising that they can resend the entire BGP Adj-RIB-Out on | advertising that they can resend the entire BGP Adj-RIB-Out on | |||
| receipt of a refresh request. By supporting this capability, BGP | receipt of a refresh request. By supporting this capability, BGP | |||
| speakers are more flexible in applying any inbound routing policy | speakers are more flexible in applying any inbound routing policy | |||
| changes as they no longer have to store received routes in their | changes as they no longer have to store received routes in their | |||
| unchanged form or reset the session when an inbound routing policy | unchanged form or reset the session when an inbound routing policy | |||
| skipping to change at page 2, line 4 ¶ | skipping to change at page 2, line 4 ¶ | |||
| 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 January 09, 2017. | This Internet-Draft will expire on May 18, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 44 ¶ | skipping to change at page 2, line 44 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Use Case Examples . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Use Case Examples . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Route Refresh Options Capability . . . . . . . . . . . . . . 4 | 3. Route Refresh Options Capability . . . . . . . . . . . . . . 4 | |||
| 4. Route Refresh Sub-Types . . . . . . . . . . . . . . . . . . . 4 | 4. Route Refresh Sub-Types . . . . . . . . . . . . . . . . . . . 4 | |||
| 5. Route Refresh Option format . . . . . . . . . . . . . . . . . 5 | 5. Route Refresh Option format . . . . . . . . . . . . . . . . . 5 | |||
| 6. Route Refresh Option Length . . . . . . . . . . . . . . . . . 6 | 6. Route Refresh Option Length . . . . . . . . . . . . . . . . . 6 | |||
| 7. Route Refresh ID . . . . . . . . . . . . . . . . . . . . . . 6 | 7. Route Refresh ID . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 8. Route Refresh Option Flags . . . . . . . . . . . . . . . . . 7 | 8. Route Refresh Option Flags . . . . . . . . . . . . . . . . . 7 | |||
| 9. Route Refresh Options . . . . . . . . . . . . . . . . . . . . 7 | 9. Route Refresh Options . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 10. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 10 | 11. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 13. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 13. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 15.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 15.1. Normative References . . . . . . . . . . . . . . . . . . 12 | |||
| 15.2. Information References . . . . . . . . . . . . . . . . . 12 | 15.2. Information References . . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| [RFC2918] defines a route refresh capability to be exchanged between | [RFC2918] defines a route refresh capability to be exchanged between | |||
| BGP speakers. BGP speakers that support this capability are | BGP speakers. BGP speakers that support this capability are | |||
| advertising that they can resend the entire BGP Adj-RIB-Out on | advertising that they can resend the entire BGP Adj-RIB-Out on | |||
| receipt of a refresh request. By supporting this capability, BGP | receipt of a refresh request. By supporting this capability, BGP | |||
| speakers are more flexible in applying inbound routing policy changes | speakers are more flexible in applying inbound routing policy changes | |||
| as they no longer have to store copies of received routes in their | as they no longer have to store copies of received routes in their | |||
| skipping to change at page 7, line 11 ¶ | skipping to change at page 7, line 11 ¶ | |||
| HID under [RFC1982]. | HID under [RFC1982]. | |||
| Value of 0 SHOULD NOT be used as Refresh ID. | Value of 0 SHOULD NOT be used as Refresh ID. | |||
| The sending speaker MUST NOT reorder the BoRR messages on sending in | The sending speaker MUST NOT reorder the BoRR messages on sending in | |||
| case it received multiple requests, i.e., the BoRRs MUST follow in | case it received multiple requests, i.e., the BoRRs MUST follow in | |||
| the same sequence as the requested Route Refresh IDs. | the same sequence as the requested Route Refresh IDs. | |||
| 8. Route Refresh Option Flags | 8. Route Refresh Option Flags | |||
| This draft defines route refresh option flags to | This draft defines route refresh option flags | |||
| o specify whether the receiving BGP speaker MUST logically OR the | o C - to indicate that the receiving BGP speaker MUST clear | |||
| attached options or logically AND them. When the flag is clear, | immediately all the received Route Refresh Requests with Options, | |||
| the router on the receiving end SHOULD logically AND the options | either pending or being processed. EoRRs MUST NOT be sent. The | |||
| and only refresh routes that match all received options. If the | Refresh ID# on the request is free of restrictions and MUST be set | |||
| option flag is set, the router SHOULD select routes that match | as first number in the sequence number space per [RFC1982]. The C | |||
| using a logical OR of the options. In any case the set of routes | flag MUST NOT be set on BoRR or EoRR messages and CAN be used only | |||
| sent between the according BoRR and EoRR MUST contain at least the | with refresh requests. | |||
| logically requested set. | ||||
| o indicate that the receiving BGP speaker MUST clear immediately all | o O - to specify whether the receiving BGP speaker MUST logically OR | |||
| the received Route Refresh Requests with Options, either pending | the attached options or logically AND them. When the flag is | |||
| or being processed. EoRRs MUST NOT be sent. The Refresh ID# on | clear, the router on the receiving end SHOULD logically AND the | |||
| the request is free of restrictions and MUST be set as first | options and only refresh routes that match all received options. | |||
| number in the sequence number space per [RFC1982]. The C flag | If the option flag is set, the router SHOULD select routes that | |||
| MUST NOT be set on BoRR or EoRR messages and CAN be used only with | match using a logical OR of the options. In any case the set of | |||
| refresh requests. | routes sent between the according BoRR and EoRR MUST contain at | |||
| least the logically requested set. | ||||
| o S - to indicate a refresh is being spontaneously originated by the | ||||
| BGP speaker. The receiving BGP speaker MUST immediately clear all | ||||
| their pending Route Refresh requests with the sending peer. The | ||||
| Refresh ID# on the request MUST be set as the most distant number | ||||
| in the sequence number space as defined in [RFC1982] effectively | ||||
| ensuring that the receiving speaker can safely flush pending | ||||
| requests and restart the sequence numbering. | ||||
| The precise format is indicated below | The precise format is indicated below | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | .... |C|O| R | | | .... |C|O|S|R| | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| C Clear pending requests and reset Refresh ID# space. | C Clear pending requests and reset Refresh ID# space. | |||
| O Use logical OR of attached options | O Use logical OR of attached options | |||
| R Reserved bits | S Synchronize sequence numbers | |||
| R Reserved bit | ||||
| 9. Route Refresh Options | 9. Route Refresh Options | |||
| This draft introduces new options carried within the Route Refresh | This draft introduces new options carried within the Route Refresh | |||
| message as shown in the following figure | message as shown in the following figure | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | Value | | | Type | Length | Value | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Value (cont'd). | | | Value (cont'd). | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| The option Type is a 1 octet field that uniquely identifies | The option Type is a 1 octet field that uniquely identifies | |||
| individual options. The Length is a 2 octet field that contains the | individual options. The Length is a 2 octet field that contains the | |||
| length of the option Value field in octets. The option Value is a | length of the option Value field in octets. The option Value is a | |||
| variable length field that is interpreted according to the value of | variable length field that is interpreted according to the value of | |||
| skipping to change at page 10, line 17 ¶ | skipping to change at page 10, line 37 ¶ | |||
| The BGP speaker requesting a refresh from its peers SHOULD maintain a | The BGP speaker requesting a refresh from its peers SHOULD maintain a | |||
| locally configurable upper bound on how long it will keep matching | locally configurable upper bound on how long it will keep matching | |||
| stale routes once a BoRR has been received. Each subsequent BoRR | stale routes once a BoRR has been received. Each subsequent BoRR | |||
| SHOULD reset this period so that any remaining stale routes are only | SHOULD reset this period so that any remaining stale routes are only | |||
| flushed after the last BoRR has been received in case there are | flushed after the last BoRR has been received in case there are | |||
| multiple back-to-back refreshes being sent out and the last matching | multiple back-to-back refreshes being sent out and the last matching | |||
| EoRR is never received or arrives too late. This is an | EoRR is never received or arrives too late. This is an | |||
| implementation specific detail. | implementation specific detail. | |||
| 11. Error Handling | A BGP speaker may spontaneously originate a refresh to one or more of | |||
| its peers depending on operator intervention, or due to a policy or | ||||
| configuration change, etc. In such a case, the speaker MUST refresh | ||||
| the entire Adj-RIB-Out. The speaker MUST also send BoRR/EoRR with | ||||
| the options field with the 'S' flag set and a sequence number which | ||||
| is the most distant from the sequence numbers that are currently in | ||||
| use as per [RFC1982]. On receiving BoRR/EoRR with options and the | ||||
| 'S' flag set, the BGP speaker MUST discard any pending route | ||||
| refreshes it has originated to the remote peer and treat the incoming | ||||
| refresh as a full Adj-RIB-Out refresh. The receiving peer MUST also | ||||
| reset the refresh ID space and start using the one in the incoming | ||||
| message. | ||||
| 11. Error Handling | ||||
| The handling of malformed options MUST follow the procedures | The handling of malformed options MUST follow the procedures | |||
| mentioned in [RFC7606]. This draft obsoletes some of the error | mentioned in [RFC7606]. This draft obsoletes some of the error | |||
| handling procedures in [RFC7313] if the Route Refresh Options | handling procedures in [RFC7313] if the Route Refresh Options | |||
| Capability is sent. In addition, this draft mandates the following | Capability is sent. In addition, this draft mandates the following | |||
| behavior at the receiver of the route refresh request upon detection | behavior at the receiver of the route refresh request upon detection | |||
| of: | of: | |||
| Length errors - If the message length minus the fixed-size message | Length errors - If the message length minus the fixed-size message | |||
| header is less than 4, the procedure in [RFC7313] MUST be followed. | header is less than 4, the procedure in [RFC7313] MUST be followed. | |||
| Also, if the overall length of all the options or any individual | Also, if the overall length of all the options or any individual | |||
| End of changes. 15 change blocks. | ||||
| 29 lines changed or deleted | 50 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/ | ||||