draft-ietf-spring-sr-yang-02.txt   draft-ietf-spring-sr-yang-03.txt 
SPRING Working Group S. Litkowski SPRING Working Group S. Litkowski
Internet-Draft Orange Business Service Internet-Draft Orange Business Service
Intended status: Standards Track Y. Qu Intended status: Standards Track Y. Qu
Expires: September 19, 2016 Cisco Systems Expires: January 8, 2017 Cisco Systems
P. Sarkar P. Sarkar
Juniper Networks Juniper Networks
J. Tantsura J. Tantsura
Ericsson Ericsson
March 18, 2016 July 07, 2016
YANG Data Model for Segment Routing YANG Data Model for Segment Routing
draft-ietf-spring-sr-yang-02 draft-ietf-spring-sr-yang-03
Abstract Abstract
This document defines a YANG data model ([RFC6020]) for segment This document defines a YANG data model ([RFC6020]) for segment
routing ([I-D.ietf-spring-segment-routing]) configuration and routing ([I-D.ietf-spring-segment-routing]) configuration and
operation. This YANG model is intended to be used on network operation. This YANG model is intended to be used on network
elements to configure or operate segment routing. This document elements to configure or operate segment routing. This document
defines also generic containers that SHOULD be reused by IGP protocol defines also generic containers that SHOULD be reused by IGP protocol
modules to support segment routing. modules to support segment routing.
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 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 September 19, 2016. This Internet-Draft will expire on January 8, 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 31 skipping to change at page 2, line 31
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 5
4. IGP Control plane configuration . . . . . . . . . . . . . . . 6 4. IGP Control plane configuration . . . . . . . . . . . . . . . 6
4.1. IGP interface configuration . . . . . . . . . . . . . . . 6 4.1. IGP interface configuration . . . . . . . . . . . . . . . 6
4.1.1. Adjacency SID properties . . . . . . . . . . . . . . 6 4.1.1. Adjacency SID properties . . . . . . . . . . . . . . 6
4.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 6 4.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 6
4.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 7 4.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 7
5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8
7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8 7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8
8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 8. Security Considerations . . . . . . . . . . . . . . . . . . . 24
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
11. Normative References . . . . . . . . . . . . . . . . . . . . 23 11. Normative References . . . . . . . . . . . . . . . . . . . . 24
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24
1. Introduction 1. Introduction
This document defines a YANG data model for segment routing This document defines a YANG data model for segment routing
configuration and operation. This document does not define the IGP configuration and operation. This document does not define the IGP
extensions to support segment routing but defines generic groupings extensions to support segment routing but defines generic groupings
that SHOULD be reused by IGP extension modules. The reason of this that SHOULD be reused by IGP extension modules. The reason of this
design choice is to not require implementations to support all IGP design choice is to not require implementations to support all IGP
extensions. For example, an implementation may support IS-IS extensions. For example, an implementation may support IS-IS
extension but not OSPF. extension but not OSPF.
skipping to change at page 3, line 43 skipping to change at page 3, line 43
module: ietf-segment-routing module: ietf-segment-routing
augment /rt:routing: augment /rt:routing:
+--rw segment-routing +--rw segment-routing
+--rw transport-type? identityref +--rw transport-type? identityref
+--rw bindings +--rw bindings
| +--rw mapping-server {mapping-server}? | +--rw mapping-server {mapping-server}?
| | +--rw policy* [name] | | +--rw policy* [name]
| | +--rw name string | | +--rw name string
| | +--rw ipv4 | | +--rw ipv4
| | | +--rw mapping-entry* [prefix] | | | +--rw mapping-entry* [prefix algorithm]
| | | +--rw prefix inet:ipv4-prefix | | | +--rw prefix inet:ipv4-prefix
| | | +--rw value-type? enumeration | | | +--rw value-type? enumeration
| | | +--rw start-sid uint32 | | | +--rw start-sid uint32
| | | +--rw range? uint32 | | | +--rw range? uint32
| | | +--rw algorithm identityref
| | +--rw ipv6 | | +--rw ipv6
| | +--rw mapping-entry* [prefix] | | +--rw mapping-entry* [prefix algorithm]
| | +--rw prefix inet:ipv6-prefix | | +--rw prefix inet:ipv6-prefix
| | +--rw value-type? enumeration | | +--rw value-type? enumeration
| | +--rw start-sid uint32 | | +--rw start-sid uint32
| | +--rw range? uint32 | | +--rw range? uint32
| | +--rw algorithm identityref
| +--rw connected-prefix-sid-map | +--rw connected-prefix-sid-map
| +--rw ipv4 | +--rw ipv4
| | +--rw ipv4-prefix-sid* [prefix] | | +--rw ipv4-prefix-sid* [prefix algorithm]
| | +--rw prefix inet:ipv4-prefix | | +--rw prefix inet:ipv4-prefix
| | +--rw value-type? enumeration | | +--rw value-type? enumeration
| | +--rw start-sid uint32 | | +--rw start-sid uint32
| | +--rw range? uint32 | | +--rw range? uint32
| | +--rw algorithm identityref
| | +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}? | | +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}?
| +--rw ipv6 | +--rw ipv6
| +--rw ipv6-prefix-sid* [prefix] | +--rw ipv6-prefix-sid* [prefix algorithm]
| +--rw prefix inet:ipv6-prefix | +--rw prefix inet:ipv6-prefix
| +--rw value-type? enumeration | +--rw value-type? enumeration
| +--rw start-sid uint32 | +--rw start-sid uint32
| +--rw range? uint32 | +--rw range? uint32
| +--rw algorithm identityref
| +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}? | +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}?
+--rw global-srgb +--rw global-srgb
+--rw srgb* [lower-bound upper-bound] +--rw srgb* [lower-bound upper-bound]
+--rw lower-bound uint32 +--rw lower-bound uint32
+--rw upper-bound uint32 +--rw upper-bound uint32
augment /rt:routing-state: augment /rt:routing-state:
+--ro segment-routing +--ro segment-routing
+--ro node-capabilities +--ro node-capabilities
| +--ro transport-planes* [transport-plane] | +--ro transport-planes* [transport-plane]
| | +--ro transport-plane identityref | | +--ro transport-plane identityref
skipping to change at page 4, line 44 skipping to change at page 4, line 48
| +--ro size? uint32 | +--ro size? uint32
| +--ro free? uint32 | +--ro free? uint32
| +--ro used? uint32 | +--ro used? uint32
+--ro global-sid-list +--ro global-sid-list
+--ro sid* [target sid source source-protocol binding-type] +--ro sid* [target sid source source-protocol binding-type]
+--ro target string +--ro target string
+--ro sid uint32 +--ro sid uint32
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro source inet:ip-address +--ro source inet:ip-address
+--ro used? boolean +--ro used? boolean
+--ro source-protocol -> /rt:routing-state/routing-protocols/ +--ro source-protocol -> /rt:routing-state/control-plane-protocols
routing-protocol/name /control-plane-protocol/name
+--ro binding-type enumeration +--ro binding-type enumeration
notifications: notifications:
+---n segment-routing-global-srgb-collision +---n segment-routing-global-srgb-collision
| +--ro srgb-collisions* | +--ro srgb-collisions*
| +--ro lower-bound? uint32 | +--ro lower-bound? uint32
| +--ro upper-bound? uint32 | +--ro upper-bound? uint32
| +--ro routing-protocol? -> /rt:routing-state/routing-protocols/ | +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols
routing-protocol/name | /control-plane-protocol/name
| +--ro originating-rtr-id? router-id | +--ro originating-rtr-id? router-id
+---n segment-routing-global-sid-collision +---n segment-routing-global-sid-collision
| +--ro received-target? string | +--ro received-target? string
| +--ro new-sid-rtr-id? router-id | +--ro new-sid-rtr-id? router-id
| +--ro original-target? string | +--ro original-target? string
| +--ro original-sid-rtr-id? router-id | +--ro original-sid-rtr-id? router-id
| +--ro index? uint32 | +--ro index? uint32
| +--ro routing-protocol? -> /rt:routing-state/routing-protocols/ | +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols
routing-protocol/name | /control-plane-protocol/name
+---n segment-routing-index-out-of-range +---n segment-routing-index-out-of-range
+--ro received-target? string +--ro received-target? string
+--ro received-index? uint32 +--ro received-index? uint32
+--ro routing-protocol? -> /rt:routing-state/routing-protocols/ +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols
routing-protocol/name /control-plane-protocol/name
3. Configuration 3. Configuration
This module augments the "/rt:routing/rt:routing-instance:" with a This module augments the "/rt:routing/rt:routing-instance:" with a
segment-routing container. This container defines all the segment-routing container. This container defines all the
configuration parameters related to segment-routing for this configuration parameters related to segment-routing for this
particular routing-instance. particular routing-instance.
The segment-routing configuration is split in global routing-instance The segment-routing configuration is split in global routing-instance
configuration and interface configuration. configuration and interface configuration.
skipping to change at page 8, line 23 skipping to change at page 8, line 32
advertised index is already associated with another target (in advertised index is already associated with another target (in
this version, the only defined targets are IPv4 and IPv6 this version, the only defined targets are IPv4 and IPv6
prefixes). prefixes).
o segment-routing-index-out-of-range: Raised when a control plane o segment-routing-index-out-of-range: Raised when a control plane
advertised index fall outside the range of SRGBs configured for advertised index fall outside the range of SRGBs configured for
the network device. the network device.
7. YANG Module 7. YANG Module
<CODE BEGINS> file "ietf-segment-routing@2016-03-18.yang" <CODE BEGINS> file "ietf-segment-routing@2016-07-07.yang"
module ietf-segment-routing { module ietf-segment-routing {
namespace "urn:ietf:params:xml:ns:" namespace "urn:ietf:params:xml:ns:"
+ "yang:ietf-segment-routing"; + "yang:ietf-segment-routing";
prefix sr; prefix sr;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-yang-types { import ietf-yang-types {
skipping to change at page 9, line 19 skipping to change at page 9, line 29
Author: Jeff Tantsura Author: Jeff Tantsura
<jeff.tantsura@ericsson.com> <jeff.tantsura@ericsson.com>
"; ";
description description
"The YANG module defines a generic configuration model for "The YANG module defines a generic configuration model for
Segment routing common across all of the vendor Segment routing common across all of the vendor
implementations."; implementations.";
revision 2016-03-18 { revision 2016-07-07 {
description "
* Add support of prefix-sid algorithm configuration
* change routing-protocols to control-plane-protocols
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2016-03-17 {
description " description "
* Add notification segment-routing-global-srgb-collision * Add notification segment-routing-global-srgb-collision
* Add router-id to segment-routing-global-sid-collision * Add router-id to segment-routing-global-sid-collision
* Remove routing-instance * Remove routing-instance
* Add typedef router-id * Add typedef router-id
"; ";
reference reference
"RFC XXXX: YANG Data Model for Segment Routing."; "RFC XXXX: YANG Data Model for Segment Routing.";
} }
revision 2015-10-17 { revision 2015-10-17 {
skipping to change at page 10, line 23 skipping to change at page 10, line 40
description description
"Base identity for segment routing transport."; "Base identity for segment routing transport.";
} }
identity segment-routing-transport-mpls { identity segment-routing-transport-mpls {
base segment-routing-transport; base segment-routing-transport;
description description
"This identity represents MPLS transport for segment "This identity represents MPLS transport for segment
routing."; routing.";
} }
identity prefix-sid-algorithm {
description
"Base identity for prefix-sid algorithm.";
}
identity prefix-sid-algorithm-shortest-path {
base prefix-sid-algorithm;
description
"The default behavior of prefix-sid algorithm.";
}
identity prefix-sid-algorithm-strict-spf {
base prefix-sid-algorithm;
description
"This algorithm mandates that the packet is forwared
according to ECMP-aware SPF algorithm.";
}
/* Features */ /* Features */
feature mapping-server { feature mapping-server {
description description
"Support of SRMS."; "Support of SRMS.";
} }
feature sid-last-hop-behavior { feature sid-last-hop-behavior {
description description
"Configurable last hop behavior."; "Configurable last hop behavior.";
skipping to change at page 13, line 28 skipping to change at page 14, line 18
be interpreted in the be interpreted in the
context of value-type."; context of value-type.";
} }
leaf range { leaf range {
type uint32; type uint32;
description description
"Describes how many SIDs could be "Describes how many SIDs could be
allocated."; allocated.";
} }
leaf algorithm {
type identityref {
base prefix-sid-algorithm;
}
description "Prefix-sid algorithm.";
}
description description
"This grouping defines cfg of prefix SID."; "This grouping defines cfg of prefix SID.";
} }
grouping ipv6-sid-cfg { grouping ipv6-sid-cfg {
leaf prefix { leaf prefix {
type inet:ipv6-prefix; type inet:ipv6-prefix;
description description
"connected prefix sid."; "connected prefix sid.";
} }
skipping to change at page 14, line 10 skipping to change at page 15, line 7
context of value-type."; context of value-type.";
} }
leaf range { leaf range {
type uint32; type uint32;
description description
"Describes how many SIDs could be "Describes how many SIDs could be
allocated."; allocated.";
} }
leaf algorithm {
type identityref {
base prefix-sid-algorithm;
}
description "Prefix-sid algorithm.";
}
description description
"This grouping defines cfg of prefix SID."; "This grouping defines cfg of prefix SID.";
} }
grouping last-hop-behavior { grouping last-hop-behavior {
leaf last-hop-behavior { leaf last-hop-behavior {
if-feature sid-last-hop-behavior; if-feature sid-last-hop-behavior;
type enumeration { type enumeration {
enum explicit-null { enum explicit-null {
description description
skipping to change at page 16, line 4 skipping to change at page 17, line 7
description description
"Grouping for IGP interface cfg."; "Grouping for IGP interface cfg.";
} }
/* Cfg */ /* Cfg */
augment "/rt:routing" { augment "/rt:routing" {
description description
"This augments routing-instance "This augments routing-instance
configuration with segment-routing."; configuration with segment-routing.";
container segment-routing { container segment-routing {
leaf transport-type { leaf transport-type {
type identityref { type identityref {
base segment-routing-transport; base segment-routing-transport;
} }
default "segment-routing-transport-mpls"; default "segment-routing-transport-mpls";
description "Dataplane to be used."; description "Dataplane to be used.";
} }
container bindings { container bindings {
container mapping-server { container mapping-server {
if-feature mapping-server; if-feature mapping-server;
list policy { list policy {
key name; key name;
leaf name { leaf name {
type string; type string;
description description
"Name of the mapping policy."; "Name of the mapping policy.";
} }
container ipv4 { container ipv4 {
list mapping-entry { list mapping-entry {
key prefix; key "prefix algorithm";
uses ipv4-sid-cfg; uses ipv4-sid-cfg;
description
"Mapping entries.";
}
description
"IPv4 mapping entries.";
}
container ipv6 {
list mapping-entry {
key "prefix algorithm";
uses ipv6-sid-cfg;
description
"Mapping entries.";
}
description
"IPv6 mapping entries.";
}
description description
"Mapping entries."; "Definition of mapping policy.";
} }
description description
"IPv4 mapping entries."; "Configuration of mapping-server
local entries.";
} }
container ipv6 { container connected-prefix-sid-map {
list mapping-entry { container ipv4 {
key prefix; list ipv4-prefix-sid {
uses ipv6-sid-cfg; key "prefix algorithm";
uses ipv4-sid-cfg;
uses last-hop-behavior;
description
"List of prefix SID
mapped to IPv4 local prefixes.";
}
description description
"Mapping entries."; "Parameters associated with IPv4 prefix SID";
}
container ipv6 {
list ipv6-prefix-sid {
key "prefix algorithm";
uses ipv6-sid-cfg;
uses last-hop-behavior;
description
"List of prefix SID
mapped to IPv6 local prefixes.";
}
description
"Parameters associated with IPv6 prefix SID";
} }
description description
"IPv6 mapping entries."; "Prefix SID configuration.";
} }
description
"Definition of mapping policy.";
}
description description
"Configuration of mapping-server "List of bindings.";
local entries.";
} }
container connected-prefix-sid-map { container global-srgb {
container ipv4 { uses srgb-cfg;
list ipv4-prefix-sid {
key prefix;
uses ipv4-sid-cfg;
uses last-hop-behavior;
description
"List of prefix SID
mapped to IPv4 local prefixes.";
}
description
"Parameters associated with IPv4 prefix SID";
}
container ipv6 {
list ipv6-prefix-sid {
key prefix;
uses ipv6-sid-cfg;
uses last-hop-behavior;
description
"List of prefix SID
mapped to IPv6 local prefixes.";
}
description
"Parameters associated with IPv6 prefix SID";
}
description description
"Prefix SID configuration."; "Global SRGB configuration.";
} }
description description
"List of bindings."; "segment routing global config.";
}
container global-srgb {
uses srgb-cfg;
description
"Global SRGB configuration.";
}
description
"segment routing global config.";
} }
} }
/* Operational states */ /* Operational states */
augment "/rt:routing-state" { augment "/rt:routing-state" {
description description
"This augments the operational states "This augments the operational states
with segment-routing."; with segment-routing.";
container segment-routing { container segment-routing {
skipping to change at page 19, line 49 skipping to change at page 21, line 4
the binding."; the binding.";
} }
leaf used { leaf used {
type boolean; type boolean;
description description
"Defines if the binding is used "Defines if the binding is used
in forwarding plane."; in forwarding plane.";
} }
leaf source-protocol { leaf source-protocol {
type leafref { type leafref {
path "/rt:routing-state/rt:routing-protocols/" path "/rt:routing-state/rt:control-plane-protocols/"
+ "rt:routing-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
description description
"Rtg protocol that owns the binding"; "Rtg protocol that owns the binding";
} }
leaf binding-type { leaf binding-type {
type enumeration { type enumeration {
enum prefix-sid { enum prefix-sid {
description description
"Binding is learned from "Binding is learned from
a prefix SID."; a prefix SID.";
skipping to change at page 20, line 48 skipping to change at page 22, line 4
list srgb-collisions { list srgb-collisions {
leaf lower-bound { leaf lower-bound {
type uint32; type uint32;
description description
"Lower value in the block."; "Lower value in the block.";
} }
leaf upper-bound { leaf upper-bound {
type uint32; type uint32;
description description
"Upper value in the block."; "Upper value in the block.";
} }
leaf routing-protocol { leaf routing-protocol {
type leafref { type leafref {
path "/rt:routing-state/rt:routing-protocols/" path "/rt:routing-state/rt:control-plane-protocols/"
+ "rt:routing-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
description description
"Routing protocol reference that received the event."; "Routing protocol reference that received the event.";
} }
leaf originating-rtr-id { leaf originating-rtr-id {
type router-id; type router-id;
description description
"Originating router id of this SRGB block."; "Originating router id of this SRGB block.";
} }
description description
skipping to change at page 21, line 49 skipping to change at page 23, line 4
} }
leaf original-sid-rtr-id { leaf original-sid-rtr-id {
type router-id; type router-id;
description description
"Original router ID that advertised the conflicting SID."; "Original router ID that advertised the conflicting SID.";
} }
leaf index { leaf index {
type uint32; type uint32;
description description
"Value of the index used by two different prefixes."; "Value of the index used by two different prefixes.";
} }
leaf routing-protocol { leaf routing-protocol {
type leafref { type leafref {
path "/rt:routing-state/rt:routing-protocols/" path "/rt:routing-state/rt:control-plane-protocols/"
+ "rt:routing-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
description description
"Routing protocol reference that received the event."; "Routing protocol reference that received the event.";
} }
description description
"This notification is sent when a new mapping is learned "This notification is sent when a new mapping is learned
, containing mapping , containing mapping
where the SID is already used. where the SID is already used.
The notification generation must be throttled with at least The notification generation must be throttled with at least
a 5 second gap. "; a 5 second gap. ";
skipping to change at page 22, line 31 skipping to change at page 23, line 35
"Target received in the controlplane "Target received in the controlplane
that caused SID collision."; that caused SID collision.";
} }
leaf received-index { leaf received-index {
type uint32; type uint32;
description description
"Value of the index received."; "Value of the index received.";
} }
leaf routing-protocol { leaf routing-protocol {
type leafref { type leafref {
path "/rt:routing-state/rt:routing-protocols/" + path "/rt:routing-state/rt:control-plane-protocols/" +
"rt:routing-protocol/rt:name"; "rt:control-plane-protocol/rt:name";
} }
description description
"Routing protocol reference that received the event."; "Routing protocol reference that received the event.";
} }
description description
"This notification is sent when a binding "This notification is sent when a binding
is received, containing a segment index is received, containing a segment index
which is out of the local configured ranges. which is out of the local configured ranges.
The notification generation must be throttled with at least The notification generation must be throttled with at least
a 5 second gap. "; a 5 second gap. ";
 End of changes. 43 change blocks. 
94 lines changed or deleted 142 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/