draft-ietf-idr-bgp-model-00.txt   draft-ietf-idr-bgp-model-01.txt 
Interdomain Routing A. Shaikh, Ed. Interdomain Routing A. Shaikh, Ed.
Internet-Draft Google Internet-Draft Google
Intended status: Standards Track R. Shakir, Ed. Intended status: Standards Track R. Shakir, Ed.
Expires: January 7, 2016 BT Expires: July 10, 2016 Jive Communications
K. Patel, Ed. K. Patel, Ed.
Cisco Cisco
S. Hares, Ed. S. Hares, Ed.
Huawei Huawei
K. D'Souza K. D'Souza
AT&T AT&T
D. Bansal D. Bansal
Microsoft Microsoft
A. Clemm A. Clemm
A. Zhdankin A. Zhdankin
Cisco Cisco
M. Jethanandani M. Jethanandani
Ciena Ciena
X. Liu X. Liu
Ericsson Ericsson
July 6, 2015 January 7, 2016
BGP Model for Service Provider Networks BGP Model for Service Provider Networks
draft-ietf-idr-bgp-model-00 draft-ietf-idr-bgp-model-01
Abstract Abstract
This document defines a YANG data model for configuring and managing This document defines a YANG data model for configuring and managing
BGP, including protocol, policy, and operational aspects based on BGP, including protocol, policy, and operational aspects based on
data center, carrier and content provider operational requirements. data center, carrier and content provider operational requirements.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 48 skipping to change at page 1, line 48
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 7, 2016. This Internet-Draft will expire on July 10, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 33 skipping to change at page 2, line 33
1.1. Goals and approach . . . . . . . . . . . . . . . . . . . 3 1.1. Goals and approach . . . . . . . . . . . . . . . . . . . 3
2. Model overview . . . . . . . . . . . . . . . . . . . . . . . 4 2. Model overview . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. BGP protocol configuration . . . . . . . . . . . . . . . 5 2.1. BGP protocol configuration . . . . . . . . . . . . . . . 5
2.2. Policy configuration overview . . . . . . . . . . . . . . 6 2.2. Policy configuration overview . . . . . . . . . . . . . . 6
2.3. Operational data overview . . . . . . . . . . . . . . . . 7 2.3. Operational data overview . . . . . . . . . . . . . . . . 7
3. Relation to other YANG data models . . . . . . . . . . . . . 8 3. Relation to other YANG data models . . . . . . . . . . . . . 8
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
6. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 9 6. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1. BGP base items . . . . . . . . . . . . . . . . . . . . . 9 6.1. BGP base items . . . . . . . . . . . . . . . . . . . . . 9
6.2. BGP base types . . . . . . . . . . . . . . . . . . . . . 30 6.2. BGP base types . . . . . . . . . . . . . . . . . . . . . 28
6.3. BGP policy items . . . . . . . . . . . . . . . . . . . . 38 6.3. BGP policy items . . . . . . . . . . . . . . . . . . . . 34
6.4. BGP multiprotocol items . . . . . . . . . . . . . . . . . 49 6.4. BGP multiprotocol items . . . . . . . . . . . . . . . . . 44
6.5. BGP operational data items . . . . . . . . . . . . . . . 64 6.5. BGP operational data items . . . . . . . . . . . . . . . 56
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 72 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.1. Normative references . . . . . . . . . . . . . . . . . . 72 7.1. Normative references . . . . . . . . . . . . . . . . . . 63
7.2. Informative references . . . . . . . . . . . . . . . . . 73 7.2. Informative references . . . . . . . . . . . . . . . . . 64
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 73 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 65
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 74 Appendix B. Change summary . . . . . . . . . . . . . . . . . . . 65
B.1. Changes between revisions -00 and -01 . . . . . . . . . . 65
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 65
1. Introduction 1. Introduction
YANG [RFC6020] is a data modeling language that was introduced to YANG [RFC6020] is a data modeling language that was introduced to
define the contents of a conceptual data store that allows networked define the contents of a conceptual data store that allows networked
devices to be managed using NETCONF [RFC6241]. YANG is proving devices to be managed using NETCONF [RFC6241]. YANG is proving
relevant beyond its initial confines, as bindings to other interfaces relevant beyond its initial confines, as bindings to other interfaces
(e.g. ReST) and encodings other than XML (e.g. JSON) are being (e.g. ReST) and encodings other than XML (e.g. JSON) are being
defined. Furthermore, YANG data models can be used as the basis of defined. Furthermore, YANG data models can be used as the basis of
implementation for a number of interfaces, such as CLIs and implementation for a number of interfaces, such as CLIs and
skipping to change at page 9, line 19 skipping to change at page 9, line 23
"YANG Module Names" registry [RFC6020]. "YANG Module Names" registry [RFC6020].
6. YANG modules 6. YANG modules
The modules comprising the BGP configuration and operational model The modules comprising the BGP configuration and operational model
are described by the YANG modules in the sections below. The base are described by the YANG modules in the sections below. The base
module imports the other modules to create the overall model. module imports the other modules to create the overall model.
6.1. BGP base items 6.1. BGP base items
<CODE BEGINS> file bgp.yang <CODE BEGINS> file "ietf-bgp.yang"
module bgp { module ietf-bgp {
yang-version "1"; yang-version "1";
// namespace namespace "urn:ietf:params:xml:ns:yang:ietf-bgp";
namespace "http://openconfig.net/yang/bgp";
prefix "bgp"; prefix "bgp";
// import some basic inet types // import some basic inet types
import ietf-inet-types { prefix inet; } import ietf-inet-types { prefix inet; }
import bgp-multiprotocol { prefix bgp-mp; } import ietf-bgp-multiprotocol { prefix bgp-mp; }
import routing-policy { prefix rpol; } import ietf-routing-policy { prefix rpol; }
import bgp-types { prefix bgp-types; } import ietf-bgp-types { prefix bgp-types; }
import bgp-operational { prefix bgp-op; } import ietf-bgp-operational { prefix bgp-op; }
// meta // meta
organization organization
"OpenConfig working group"; "OpenConfig working group";
contact contact
"OpenConfig working group "OpenConfig working group
netopenconfig@googlegroups.com"; netopenconfig@googlegroups.com";
description description
"This module describes a YANG model for BGP protocol "This module describes a YANG model for BGP protocol
configuration.It is a limited subset of all of the configuration configuration.It is a limited subset of all of the configuration
parameters available in the variety of vendor implementations, parameters available in the variety of vendor implementations,
hence it is expected that it would be augmented with vendor- hence it is expected that it would be augmented with vendor-
specific configuration data as needed. Additional modules or specific configuration data as needed. Additional modules or
submodules to handle other aspects of BGP configuration, submodules to handle other aspects of BGP configuration,
including policy, VRFs, VPNs, and additional address families including policy, VRFs, VPNs, and additional address families
are also expected. are also expected.
This model supports the following BGP configuration level This model supports the following BGP configuration level
hierarchy: hierarchy:
BGP BGP
| |
+-> [ global BGP configuration ] +-> [ global BGP configuration ]
+-> AFI / SAFI global +-> AFI / SAFI global
+-> peer group +-> peer group
+-> [ peer group config ] +-> [ peer group config ]
+-> AFI / SAFI [ per-AFI overrides ] +-> AFI / SAFI [ per-AFI overrides ]
+-> neighbor +-> neighbor
+-> [ neighbor config ] +-> [ neighbor config ]
+-> [ optional pointer to peer-group ] +-> [ optional pointer to peer-group ]
skipping to change at page 10, line 19 skipping to change at page 10, line 14
| |
+-> [ global BGP configuration ] +-> [ global BGP configuration ]
+-> AFI / SAFI global +-> AFI / SAFI global
+-> peer group +-> peer group
+-> [ peer group config ] +-> [ peer group config ]
+-> AFI / SAFI [ per-AFI overrides ] +-> AFI / SAFI [ per-AFI overrides ]
+-> neighbor +-> neighbor
+-> [ neighbor config ] +-> [ neighbor config ]
+-> [ optional pointer to peer-group ] +-> [ optional pointer to peer-group ]
+-> AFI / SAFI [ per-AFI overrides ]"; +-> AFI / SAFI [ per-AFI overrides ]";
revision "2016-01-06" {
revision "2015-05-15" {
description description
""; "Updated filename and namespace";
reference "TBD"; reference "TBD";
} }
grouping bgp-global_config { grouping bgp-global_config {
description description
"Global configuration options for the BGP router."; "Global configuration options for the BGP router.";
leaf as { leaf as {
type inet:as-number; type inet:as-number;
mandatory "true"; mandatory "true";
description description
"Local autonomous system number of the router. Uses "Local autonomous system number of the router. Uses
the 32-bit as-number type from the model in RFC 6991."; the 32-bit as-number type from the model in RFC 6991.";
} }
leaf router-id { leaf router-id {
type inet:ipv4-address; type inet:ipv4-address;
description description
skipping to change at page 28, line 10 skipping to change at page 26, line 4
// * (rjs: cleaner to have these in the base module to avoid * // * (rjs: cleaner to have these in the base module to avoid *
// needing to specify which module - e.g. augment of * // needing to specify which module - e.g. augment of *
// /bgp:bgp/bgp:neighbors/bgp:neighbor...) * // /bgp:bgp/bgp:neighbors/bgp:neighbor...) *
// ************************************************************ // ************************************************************
augment /bgp/neighbors/neighbor/state { augment /bgp/neighbors/neighbor/state {
description description
"Augmentation to add operational state related to a particular "Augmentation to add operational state related to a particular
BGP neighbor"; BGP neighbor";
uses bgp-op:bgp-neighbor_state; uses bgp-op:bgp-neighbor_state;
} }
augment /bgp/neighbors/bgp:neighbor/state { augment /bgp/neighbors/bgp:neighbor/state {
description description
"Augmentation to add operational state related to a particular "Augmentation to add operational state related to a particular
BGP neighbor"; BGP neighbor";
container messages { container messages {
description description
"Counters for BGP messages sent and received from the "Counters for BGP messages sent and received from the
neighbor"; neighbor";
container sent { container sent {
description description
"Counters relating to BGP messages sent to the neighbor"; "Counters relating to BGP messages sent to the neighbor";
uses bgp-op:bgp-neighbor-message-counters-sent_state; uses bgp-op:bgp-neighbor-message-counters-sent_state;
} }
container received { container received {
description description
"Counters for BGP messages received from the neighbor"; "Counters for BGP messages received from the neighbor";
uses bgp-op:bgp-neighbor-message-counters-received_state; uses bgp-op:bgp-neighbor-message-counters-received_state;
} }
} }
container queues { container queues {
description description
"Counters related to queued messages associated with the "Counters related to queued messages associated with the
BGP neighbor"; BGP neighbor";
uses bgp-op:bgp-neighbor-queue-counters_state; uses bgp-op:bgp-neighbor-queue-counters_state;
} }
} }
augment /bgp:bgp/bgp:neighbors/neighbor/timers/state { augment /bgp:bgp/bgp:neighbors/neighbor/timers/state {
description description
"Augmentation to add the operational state of timers associated "Augmentation to add the operational state of timers associated
with the BGP neighbor"; with the BGP neighbor";
uses bgp-op:bgp-neighbor-timers_state; uses bgp-op:bgp-neighbor-timers_state;
} }
augment /bgp/neighbors/neighbor/transport/state { augment /bgp/neighbors/neighbor/transport/state {
description description
"Augmentation to add the operational state of the transport "Augmentation to add the operational state of the transport
session associated with the BGP neighbor"; session associated with the BGP neighbor";
uses bgp-op:bgp-neighbor-transport_state; uses bgp-op:bgp-neighbor-transport_state;
} }
augment /bgp/neighbors/neighbor/error-handling/state { augment /bgp/neighbors/neighbor/error-handling/state {
description description
"Augmentation to add the operational state of the error "Augmentation to add the operational state of the error
handling associated with the BGP neighbor"; handling associated with the BGP neighbor";
uses bgp-op:bgp-neighbor-error-handling_state; uses bgp-op:bgp-neighbor-error-handling_state;
} }
augment /bgp/neighbors/neighbor/graceful-restart/state { augment /bgp/neighbors/neighbor/graceful-restart/state {
description description
"Augmentation to add the operational state of graceful-restart "Augmentation to add the operational state of graceful-restart
associated with a BGP neighbor"; associated with a BGP neighbor";
uses bgp-op:bgp-afi-safi-graceful-restart_state; uses bgp-op:bgp-afi-safi-graceful-restart_state;
} }
augment /bgp/peer-groups/peer-group/state { augment /bgp/peer-groups/peer-group/state {
description description
"Augmentation to add the operational state and counters "Augmentation to add the operational state and counters
relating to a BGP peer-group"; relating to a BGP peer-group";
uses bgp-op:bgp-peer-group_state; uses bgp-op:bgp-peer-group_state;
} }
augment /bgp/global/afi-safis/afi-safi/state { augment /bgp/global/afi-safis/afi-safi/state {
description description
"Augmentation to add operational state and counters "Augmentation to add operational state and counters
on a per-AFI-SAFI basis to the global BGP router"; on a per-AFI-SAFI basis to the global BGP router";
uses bgp-op:bgp-global-afi-safi_state; uses bgp-op:bgp-global-afi-safi_state;
} }
augment /bgp/neighbors/neighbor/afi-safis/afi-safi/state { augment /bgp/neighbors/neighbor/afi-safis/afi-safi/state {
description description
"Augmentation to add per-AFI-SAFI operational state "Augmentation to add per-AFI-SAFI operational state
and counters to the BGP neighbor"; and counters to the BGP neighbor";
uses bgp-op:bgp-neighbor-afi-safi_state; uses bgp-op:bgp-neighbor-afi-safi_state;
} }
augment "/bgp/neighbors/neighbor/afi-safis/afi-safi/" + augment "/bgp/neighbors/neighbor/afi-safis/afi-safi/" +
"graceful-restart/state" { "graceful-restart/state" {
description description
"Augmentation to add per-AFI-SAFI operational state for BGP "Augmentation to add per-AFI-SAFI operational state for BGP
graceful-restart"; graceful-restart";
uses bgp-op:bgp-neighbor-afi-safi-graceful-restart_state; uses bgp-op:bgp-neighbor-afi-safi-graceful-restart_state;
} }
// ************************************************************ // ************************************************************
// * module structure containers * // * module structure containers *
// ************************************************************ // ************************************************************
container bgp { container bgp {
presence "Container for BGP protocol hierarchy"; presence "Container for BGP protocol hierarchy";
description description
"Top-level configuration and state for the BGP router"; "Top-level configuration and state for the BGP router";
container global { container global {
description description
"Global configuration for the BGP router"; "Global configuration for the BGP router";
uses bgp-global-base; uses bgp-global-base;
uses rpol:apply-policy-group; uses rpol:apply-policy-group;
} }
container neighbors { container neighbors {
description description
"Configuration for BGP neighbors"; "Configuration for BGP neighbors";
uses bgp-neighbors; uses bgp-neighbors;
} }
container peer-groups { container peer-groups {
description description
"Configuration for BGP peer-groups"; "Configuration for BGP peer-groups";
uses bgp-peer-group; uses bgp-peer-group;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6.2. BGP base types 6.2. BGP base types
<CODE BEGINS> file bgp-types.yang <CODE BEGINS> file "ietf-bgp-types.yang"
module bgp-types { module ietf-bgp-types {
yang-version "1"; yang-version "1";
namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-types";
namespace "http://openconfig.net/yang/bgp-types";
prefix "bgp-types"; prefix "bgp-types";
import ietf-inet-types { prefix inet; } import ietf-inet-types { prefix inet; }
// meta // meta
organization organization
"OpenConfig working group"; "OpenConfig working group";
contact contact
"OpenConfig working group "OpenConfig working group
netopenconfig@googlegroups.com"; netopenconfig@googlegroups.com";
description description
"This module contains general data definitions for use in BGP "This module contains general data definitions for use in BGP
policy. It can be imported by modules that make use of BGP policy. It can be imported by modules that make use of BGP
attributes"; attributes";
revision "2016-01-06" {
revision "2015-05-15" { description
description "Initial revision"; "Updated filename and namespace";
reference "TBD"; reference "TBD";
} }
identity bgp-capability { identity bgp-capability {
description "Base identity for a BGP capability"; description "Base identity for a BGP capability";
} }
identity MPBGP { identity MPBGP {
base "bgp-capability"; base "bgp-capability";
description description
"Multi-protocol extensions to BGP"; "Multi-protocol extensions to BGP";
reference "RFC2858"; reference "RFC2858";
} }
identity ROUTE-REFRESH { identity ROUTE-REFRESH {
base "bgp-capability"; base "bgp-capability";
description description
"The BGP route-refresh functionality"; "The BGP route-refresh functionality";
reference "RFC2918"; reference "RFC2918";
} }
identity ASN32 { identity ASN32 {
base "bgp-capability"; base "bgp-capability";
description description
"4-byte (32-bit) AS number functionality"; "4-byte (32-bit) AS number functionality";
reference "RFC6793"; reference "RFC6793";
} }
identity GRACEFUL-RESTART { identity GRACEFUL-RESTART {
base "bgp-capability"; base "bgp-capability";
description description
"Graceful restart functionality"; "Graceful restart functionality";
reference "RFC4724"; reference "RFC4724";
} }
identity ADD-PATHS { identity ADD-PATHS {
base "bgp-capability"; base "bgp-capability";
description description
"BGP add-paths"; "BGP add-paths";
reference "draft-ietf-idr-add-paths"; reference "draft-ietf-idr-add-paths";
} }
identity afi-safi-type { identity afi-safi-type {
description description
"Base identity type for AFI,SAFI tuples for BGP-4"; "Base identity type for AFI,SAFI tuples for BGP-4";
reference "RFC4760 - multiprotocol extensions for BGP-4"; reference "RFC4760 - multiprotocol extensions for BGP-4";
} }
identity ipv4-unicast { identity ipv4-unicast {
base afi-safi-type; base afi-safi-type;
description description
"IPv4 unicast (AFI,SAFI = 1,1)"; "IPv4 unicast (AFI,SAFI = 1,1)";
reference "RFC4760"; reference "RFC4760";
} }
identity ipv6-unicast { identity ipv6-unicast {
base afi-safi-type; base afi-safi-type;
description description
"IPv6 unicast (AFI,SAFI = 2,1)"; "IPv6 unicast (AFI,SAFI = 2,1)";
reference "RFC4760"; reference "RFC4760";
} }
identity ipv4-labelled-unicast { identity ipv4-labelled-unicast {
base afi-safi-type; base afi-safi-type;
description description
"Labelled IPv4 unicast (AFI,SAFI = 1,4)"; "Labelled IPv4 unicast (AFI,SAFI = 1,4)";
reference "RFC3107"; reference "RFC3107";
} }
identity ipv6-labelled-unicast { identity ipv6-labelled-unicast {
base afi-safi-type; base afi-safi-type;
description description
"Labelled IPv6 unicast (AFI,SAFI = 2,4)"; "Labelled IPv6 unicast (AFI,SAFI = 2,4)";
reference "RFC3107"; reference "RFC3107";
} }
identity l3vpn-ipv4-unicast { identity l3vpn-ipv4-unicast {
base afi-safi-type; base afi-safi-type;
description description
"Unicast IPv4 MPLS L3VPN (AFI,SAFI = 1,128)"; "Unicast IPv4 MPLS L3VPN (AFI,SAFI = 1,128)";
reference "RFC4364"; reference "RFC4364";
} }
identity l3vpn-ipv6-unicast { identity l3vpn-ipv6-unicast {
base afi-safi-type; base afi-safi-type;
description description
"Unicast IPv6 MPLS L3VPN (AFI,SAFI = 2,128)"; "Unicast IPv6 MPLS L3VPN (AFI,SAFI = 2,128)";
reference "RFC4659"; reference "RFC4659";
} }
identity l3vpn-ipv4-multicast { identity l3vpn-ipv4-multicast {
base afi-safi-type; base afi-safi-type;
description description
"Multicast IPv4 MPLS L3VPN (AFI,SAFI = 1,129)"; "Multicast IPv4 MPLS L3VPN (AFI,SAFI = 1,129)";
reference "RFC6514"; reference "RFC6514";
} }
identity l3vpn-ipv6-multicast { identity l3vpn-ipv6-multicast {
base afi-safi-type; base afi-safi-type;
description description
"Multicast IPv6 MPLS L3VPN (AFI,SAFI = 2,129)"; "Multicast IPv6 MPLS L3VPN (AFI,SAFI = 2,129)";
reference "RFC6514"; reference "RFC6514";
} }
identity l2vpn-vpls { identity l2vpn-vpls {
base afi-safi-type; base afi-safi-type;
description description
"BGP-signalled VPLS (AFI,SAFI = 25,65)"; "BGP-signalled VPLS (AFI,SAFI = 25,65)";
reference "RFC4761"; reference "RFC4761";
} }
identity l2vpn-evpn { identity l2vpn-evpn {
base afi-safi-type; base afi-safi-type;
description description
"BGP MPLS Based Ethernet VPN (AFI,SAFI = 25,70)"; "BGP MPLS Based Ethernet VPN (AFI,SAFI = 25,70)";
} }
identity bgp-well-known-std-community { identity bgp-well-known-std-community {
description description
"Reserved communities within the standard community space "Reserved communities within the standard community space
defined by RFC1997. These communities must fall within the defined by RFC1997. These communities must fall within the
range 0x00000000 to 0xFFFFFFFF"; range 0x00000000 to 0xFFFFFFFF";
reference "RFC1997"; reference "RFC1997";
} }
identity NO_EXPORT { identity NO_EXPORT {
base bgp-well-known-std-community; base bgp-well-known-std-community;
description description
"Do not export NLRI received carrying this community outside "Do not export NLRI received carrying this community outside
the bounds of this autonomous system, or this confederation if the bounds of this autonomous system, or this confederation if
the local autonomous system is a confederation member AS. This the local autonomous system is a confederation member AS. This
community has a value of 0xFFFFFF01."; community has a value of 0xFFFFFF01.";
reference "RFC1997"; reference "RFC1997";
} }
identity NO_ADVERTISE { identity NO_ADVERTISE {
skipping to change at page 37, line 11 skipping to change at page 33, line 46
description "remove all private ASes in the path"; description "remove all private ASes in the path";
} }
enum REPLACE { enum REPLACE {
description "replace private ASes with local AS"; description "replace private ASes with local AS";
} }
} }
description description
"set of options for configuring how private AS path numbers "set of options for configuring how private AS path numbers
are removed from advertisements"; are removed from advertisements";
} }
typedef percentage { typedef percentage {
type uint8 { type uint8 {
range "0..100"; range "0..100";
} }
description description
"Integer indicating a percentage value"; "Integer indicating a percentage value";
}
}
typedef rr-cluster-id-type { typedef rr-cluster-id-type {
type union { type union {
type uint32; type uint32;
type inet:ipv4-address; type inet:ipv4-address;
} }
description description
"union type for route reflector cluster ids: "union type for route reflector cluster ids:
option 1: 4-byte number option 1: 4-byte number
option 2: IP address"; option 2: IP address";
} }
skipping to change at page 38, line 4 skipping to change at page 34, line 37
enum NONE { enum NONE {
description "do not send any community attribute"; description "do not send any community attribute";
} }
} }
description description
"type describing variations of community attributes: "type describing variations of community attributes:
STANDARD: standard BGP community [rfc1997] STANDARD: standard BGP community [rfc1997]
EXTENDED: extended BGP community [rfc4360] EXTENDED: extended BGP community [rfc4360]
BOTH: both standard and extended community"; BOTH: both standard and extended community";
} }
} }
<CODE ENDS> <CODE ENDS>
6.3. BGP policy items 6.3. BGP policy items
<CODE BEGINS> file bgp-policy.yang <CODE BEGINS> file "ietf-bgp-policy.yang"
module bgp-policy { module ietf-bgp-policy {
yang-version "1"; yang-version "1";
// namespace // namespace
namespace "http://openconfig.net/yang/bgp-policy"; namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-policy";
prefix "bgp-pol"; prefix "bgp-pol";
// import some basic types // import some basic types
import ietf-inet-types { prefix inet; } import ietf-inet-types { prefix inet; }
import routing-policy {prefix rpol; } import ietf-routing-policy {prefix rpol; }
import policy-types { prefix pt; } import ietf-policy-types { prefix pt; }
import bgp-types { prefix bgp-types; } import ietf-bgp-types { prefix bgp-types; }
// meta // meta
organization organization
"OpenConfig working group"; "OpenConfig working group";
contact contact
"OpenConfig working group "OpenConfig working group
netopenconfig@googlegroups.com"; netopenconfig@googlegroups.com";
description description
"This module contains data definitions for BGP routing policy. "This module contains data definitions for BGP routing policy.
It augments the base routing-policy module with BGP-specific It augments the base routing-policy module with BGP-specific
options for conditions and actions."; options for conditions and actions.";
revision "2016-01-06" {
revision "2015-05-15" {
description description
"Updated model to augment base routing-policy module"; "Updated filename and namespace";
reference "TBD"; reference "TBD";
} }
// extension statements // extension statements
// feature statements // feature statements
// identity statements // identity statements
// typedef statements // typedef statements
typedef bgp-as-path-prepend-repeat { typedef bgp-as-path-prepend-repeat {
type uint8; type uint8;
description description
"Option for the BGP as-prepend policy action. Prepends the "Option for the BGP as-prepend policy action. Prepends the
local AS number repeated n times"; local AS number repeated n times";
} }
typedef bgp-set-community-option-type { typedef bgp-set-community-option-type {
type enumeration { type enumeration {
enum ADD { enum ADD {
description description
"add the specified communities to the existing "add the specified communities to the existing
community attribute"; community attribute";
} }
enum REMOVE { enum REMOVE {
description description
"remove the specified communities from the "remove the specified communities from the
skipping to change at page 48, line 17 skipping to change at page 43, line 27
} }
leaf options { leaf options {
type bgp-set-community-option-type; type bgp-set-community-option-type;
description description
"options for modifying the extended community "options for modifying the extended community
attribute with the specified values. These options attribute with the specified values. These options
apply to both methods of setting the community apply to both methods of setting the community
attribute."; attribute.";
} }
} }
leaf set-route-origin { leaf set-route-origin {
type bgp-types:bgp-origin-attr-type; type bgp-types:bgp-origin-attr-type;
description "set the origin attribute to the specified description "set the origin attribute to the specified
value"; value";
} }
leaf set-local-pref { leaf set-local-pref {
type uint32; type uint32;
description "set the local pref attribute on the route description "set the local pref attribute on the route
update"; update";
} }
leaf set-next-hop { leaf set-next-hop {
type bgp-next-hop-type; type bgp-next-hop-type;
description "set the next-hop attribute in the route update"; description "set the next-hop attribute in the route update";
} }
leaf set-med { leaf set-med {
type bgp-set-med-type; type bgp-set-med-type;
description "set the med metric attribute in the route description "set the med metric attribute in the route
update"; update";
} }
} }
} }
// rpc statements // rpc statements
// notification statements // notification statements
} }
<CODE ENDS> <CODE ENDS>
6.4. BGP multiprotocol items 6.4. BGP multiprotocol items
<CODE BEGINS> file bgp-multiprotocol.yang <CODE BEGINS> file "ietf-bgp-multiprotocol.yang"
module bgp-multiprotocol { module ietf-bgp-multiprotocol {
yang-version "1"; yang-version "1";
// namespace // namespace
namespace "http://openconfig.net/yang/bgp-multiprotocol"; namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-multiprotocol";
prefix "bgp-mp"; prefix "bgp-mp";
// import some basic inet types // import some basic inet types
import routing-policy { prefix rpol; } import ietf-routing-policy { prefix rpol; }
import bgp-types { prefix bgp-types; } import ietf-bgp-types { prefix bgp-types; }
import bgp-operational { prefix bgp-op; } import ietf-bgp-operational { prefix bgp-op; }
// meta // meta
organization organization
"OpenConfig working group"; "OpenConfig working group";
contact contact
"OpenConfig working group "OpenConfig working group
netopenconfig@googlegroups.com"; netopenconfig@googlegroups.com";
description description
"This module is part of a YANG model for BGP protocol "This module is part of a YANG model for BGP protocol
configuration, focusing on configuration of multiprotocol configuration, focusing on configuration of multiprotocol
BGP, in particular various relevant address families (AFI) and BGP, in particular various relevant address families (AFI) and
sub-address families (SAFI). sub-address families (SAFI).
Identities (rather than enumerated types) are used to identify Identities (rather than enumerated types) are used to identify
each AFI / SAFI type to make it easier for users to extend to each AFI / SAFI type to make it easier for users to extend to
pre-standard or custom AFI/SAFI types. This module is only pre-standard or custom AFI/SAFI types. This module is only
intended to capture the most"; intended to capture the most";
revision "2016-01-06" {
revision "2015-05-15" {
description description
"Refactored multiprotocol module"; "Updated filename and namespace";
reference "TBD"; reference "TBD";
} }
grouping ipv4-unicast-group { grouping ipv4-unicast-group {
description description
"Group for IPv4 Unicast configuration options"; "Group for IPv4 Unicast configuration options";
container ipv4-unicast { container ipv4-unicast {
when "../afi-safi-name = 'bgp-mp:ipv4-unicast'" { when "../afi-safi-name = 'bgp-mp:ipv4-unicast'" {
description description
"Include this container for IPv4 Unicast specific "Include this container for IPv4 Unicast specific
configuration"; configuration";
} }
description "IPv4 unicast configuration options"; description "IPv4 unicast configuration options";
// include common IPv[46] unicast options // include common IPv[46] unicast options
uses ipv4-ipv6-unicast-common; uses ipv4-ipv6-unicast-common;
// placeholder for IPv4 unicast specific configuration // placeholder for IPv4 unicast specific configuration
} }
} }
grouping ipv6-unicast-group { grouping ipv6-unicast-group {
description description
"Group for IPv6 Unicast configuration options"; "Group for IPv6 Unicast configuration options";
container ipv6-unicast { container ipv6-unicast {
when "../afi-safi-name = 'bgp-mp:ipv6-unicast'" { when "../afi-safi-name = 'bgp-mp:ipv6-unicast'" {
description description
"Include this container for IPv6 Unicast specific "Include this container for IPv6 Unicast specific
configuration"; configuration";
} }
description "IPv6 unicast configuration options"; description "IPv6 unicast configuration options";
// include common IPv[46] unicast options // include common IPv[46] unicast options
uses ipv4-ipv6-unicast-common; uses ipv4-ipv6-unicast-common;
// placeholder for IPv6 unicast specific configuration // placeholder for IPv6 unicast specific configuration
// options // options
} }
} }
grouping ipv4-labelled-unicast-group { grouping ipv4-labelled-unicast-group {
description description
"Group for IPv4 Labelled Unicast configuration options"; "Group for IPv4 Labelled Unicast configuration options";
container ipv4-labelled-unicast { container ipv4-labelled-unicast {
when "../afi-safi-name = 'bgp-mp:ipv4-labelled-unicast'" { when "../afi-safi-name = 'bgp-mp:ipv4-labelled-unicast'" {
description description
"Include this container for IPv4 Labelled Unicast specific "Include this container for IPv4 Labelled Unicast specific
configuration"; configuration";
} }
description "IPv4 Labelled Unicast configuration options"; description "IPv4 Labelled Unicast configuration options";
uses all-afi-safi-common; uses all-afi-safi-common;
// placeholder for IPv4 Labelled Unicast specific config // placeholder for IPv4 Labelled Unicast specific config
// options // options
} }
} }
grouping ipv6-labelled-unicast-group { grouping ipv6-labelled-unicast-group {
description description
"Group for IPv6 Labelled Unicast configuration options"; "Group for IPv6 Labelled Unicast configuration options";
container ipv6-labelled-unicast { container ipv6-labelled-unicast {
when "../afi-safi-name = 'bgp-mp:ipv6-labelled-unicast'" { when "../afi-safi-name = 'bgp-mp:ipv6-labelled-unicast'" {
description description
"Include this container for IPv6 Labelled Unicast specific "Include this container for IPv6 Labelled Unicast specific
configuration"; configuration";
} }
description "IPv6 Labelled Unicast configuration options"; description "IPv6 Labelled Unicast configuration options";
uses all-afi-safi-common; uses all-afi-safi-common;
// placeholder for IPv6 Labelled Unicast specific config // placeholder for IPv6 Labelled Unicast specific config
// options. // options.
} }
} }
grouping l3vpn-ipv4-unicast-group { grouping l3vpn-ipv4-unicast-group {
description description
"Group for IPv4 Unicast L3VPN configuration options"; "Group for IPv4 Unicast L3VPN configuration options";
container l3vpn-ipv4-unicast { container l3vpn-ipv4-unicast {
when "../afi-safi-name = 'bgp-mp:l3vpn-ipv4-unicast'" { when "../afi-safi-name = 'bgp-mp:l3vpn-ipv4-unicast'" {
description description
"Include this container for IPv4 Unicast L3VPN specific "Include this container for IPv4 Unicast L3VPN specific
configuration"; configuration";
} }
skipping to change at page 64, line 4 skipping to change at page 56, line 26
uses ipv4-unicast-group; uses ipv4-unicast-group;
uses ipv6-unicast-group; uses ipv6-unicast-group;
uses ipv4-labelled-unicast-group; uses ipv4-labelled-unicast-group;
uses ipv6-labelled-unicast-group; uses ipv6-labelled-unicast-group;
uses l3vpn-ipv4-unicast-group; uses l3vpn-ipv4-unicast-group;
uses l3vpn-ipv6-unicast-group; uses l3vpn-ipv6-unicast-group;
uses l3vpn-ipv4-multicast-group; uses l3vpn-ipv4-multicast-group;
uses l3vpn-ipv6-multicast-group; uses l3vpn-ipv6-multicast-group;
uses l2vpn-vpls-group; uses l2vpn-vpls-group;
uses l2vpn-evpn-group; uses l2vpn-evpn-group;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6.5. BGP operational data items 6.5. BGP operational data items
<CODE BEGINS> file bgp-operational.yang <CODE BEGINS> file "ietf-bgp-operational.yang"
module bgp-operational { module ietf-bgp-operational {
yang-version "1"; yang-version "1";
// namespace namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-operational";
// TODO: change to an ietf or other more generic namespace
namespace "http://openconfig.net/yang/bgp-operational";
prefix "bgp-op"; prefix "bgp-op";
// import some basic inet types // import some basic inet types
import ietf-inet-types { prefix inet; } import ietf-inet-types { prefix inet; }
import ietf-yang-types { prefix yang; } import ietf-yang-types { prefix yang; }
import bgp-types { prefix bgp-types; } import ietf-bgp-types { prefix bgp-types; }
// meta // meta
organization organization
"OpenConfig working group"; "OpenConfig working group";
contact contact
"OpenConfig working group "OpenConfig working group
netopenconfig@googlegroups.com"; netopenconfig@googlegroups.com";
description description
"This module is part of a YANG model for BGP protocol "This module is part of a YANG model for BGP protocol
configuration, focusing on operational data (i.e., state configuration, focusing on operational data (i.e., state
variables) related to BGP operations"; variables) related to BGP operations";
revision "2016-01-06" {
revision "2015-05-15" {
description description
"Initial revision"; "Updated filename and namespace";
reference "TBD"; reference "TBD";
} }
// extension statements // extension statements
// feature statements // feature statements
// identity statements // identity statements
// typedef statements // typedef statements
// grouping statements // grouping statements
grouping bgp-counters-message-types_common { grouping bgp-counters-message-types_common {
description description
"Grouping of BGP message types, included for re-use "Grouping of BGP message types, included for re-use
across counters"; across counters";
leaf UPDATE { leaf UPDATE {
type uint64; type uint64;
description description
"Number of BGP UPDATE messages announcing, withdrawing "Number of BGP UPDATE messages announcing, withdrawing
or modifying paths exchanged."; or modifying paths exchanged.";
} }
leaf NOTIFICATION { leaf NOTIFICATION {
type uint64; type uint64;
description description
"Number of BGP NOTIFICATION messages indicating an "Number of BGP NOTIFICATION messages indicating an
error condition has occurred exchanged."; error condition has occurred exchanged.";
} }
} }
grouping bgp-context-pfx-path-counters_common { grouping bgp-context-pfx-path-counters_common {
description description
"Grouping containing common counters relating to prefixes and "Grouping containing common counters relating to prefixes and
paths"; paths";
leaf total-paths { leaf total-paths {
type uint32; type uint32;
description description
"Total number of BGP paths within the context"; "Total number of BGP paths within the context";
} }
leaf total-prefixes { leaf total-prefixes {
type uint32; type uint32;
description description
""; "";
} }
} }
grouping bgp-global_state { grouping bgp-global_state {
description description
"Grouping containing operational parameters relating to the "Grouping containing operational parameters relating to the
global BGP instance"; global BGP instance";
uses bgp-context-pfx-path-counters_common; uses bgp-context-pfx-path-counters_common;
}
}
grouping bgp-global-afi-safi_state { grouping bgp-global-afi-safi_state {
description description
"Grouping containing operational parameters relating to each "Grouping containing operational parameters relating to each
AFI-SAFI within the BGP global instance"; AFI-SAFI within the BGP global instance";
uses bgp-context-pfx-path-counters_common; uses bgp-context-pfx-path-counters_common;
} }
grouping bgp-peer-group_state { grouping bgp-peer-group_state {
description description
"Grouping containing operational parameters relating to a BGP "Grouping containing operational parameters relating to a BGP
peer group"; peer group";
uses bgp-context-pfx-path-counters_common; uses bgp-context-pfx-path-counters_common;
} }
grouping bgp-neighbor_state { grouping bgp-neighbor_state {
description description
"Grouping containing operational state variables relating to a "Grouping containing operational state variables relating to a
BGP neighbor"; BGP neighbor";
leaf session-state { leaf session-state {
type enumeration { type enumeration {
enum IDLE { enum IDLE {
description description
"neighbor is down, and in the Idle state of the "neighbor is down, and in the Idle state of the
FSM"; FSM";
} }
enum CONNECT { enum CONNECT {
description description
"neighbor is down, and the session is waiting for "neighbor is down, and the session is waiting for
skipping to change at page 71, line 43 skipping to change at page 63, line 8
description description
"The local system is able to retain routes during restart "The local system is able to retain routes during restart
but the remote system is only able to act as a helper"; but the remote system is only able to act as a helper";
} }
} }
description description
"Ths leaf indicates the mode of operation of BGP graceful "Ths leaf indicates the mode of operation of BGP graceful
restart with the peer"; restart with the peer";
} }
} }
grouping bgp-neighbor-afi-safi-graceful-restart_state { grouping bgp-neighbor-afi-safi-graceful-restart_state {
description description
"Operational state variables relating to the graceful-restart "Operational state variables relating to the graceful-restart
mechanism on a per-AFI-SAFI basis"; mechanism on a per-AFI-SAFI basis";
leaf received { leaf received {
type boolean; type boolean;
description description
"This leaf indicates whether the neighbor advertised the "This leaf indicates whether the neighbor advertised the
ability to support graceful-restart for this AFI-SAFI"; ability to support graceful-restart for this AFI-SAFI";
} }
leaf advertised { leaf advertised {
type boolean; type boolean;
description description
"This leaf indicates whether the ability to support "This leaf indicates whether the ability to support
graceful-restart has been advertised to the peer"; graceful-restart has been advertised to the peer";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
7. References 7. References
7.1. Normative references 7.1. Normative references
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010. DOI 10.17487/RFC6020, October 2010,
<http://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
Bierman, "Network Configuration Protocol (NETCONF)", RFC and A. Bierman, Ed., "Network Configuration Protocol
6241, June 2011. (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<http://www.rfc-editor.org/info/rfc6241>.
[RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Protocol 4 (BGP-4)", RFC 4271, January 2006. Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI
10.17487/RFC4271, January 2006,
<http://www.rfc-editor.org/info/rfc4271>.
[RFC1997] Chandrasekeran, R., Traina, P., and T. Li, "BGP [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities
Communities Attribute", RFC 1997, August 1996. Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996,
<http://www.rfc-editor.org/info/rfc1997>.
[RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route
Reflection: An Alternative to Full Mesh Internal BGP Reflection: An Alternative to Full Mesh Internal BGP
(IBGP)", RFC 4456, April 2006. (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006,
<http://www.rfc-editor.org/info/rfc4456>.
[RFC3065] Traina, P., McPherson, D., and J. Scudder, "Autonomous [RFC3065] Traina, P., McPherson, D., and J. Scudder, "Autonomous
System Confederations for BGP", RFC 3065, February 2001. System Confederations for BGP", RFC 3065, DOI 10.17487/
RFC3065, February 2001,
<http://www.rfc-editor.org/info/rfc3065>.
[RFC2439] Villamizar, C., Chandra, R., and R. Govindan, "BGP Route [RFC2439] Villamizar, C., Chandra, R., and R. Govindan, "BGP Route
Flap Damping", RFC 2439, November 1998. Flap Damping", RFC 2439, DOI 10.17487/RFC2439, November
1998, <http://www.rfc-editor.org/info/rfc2439>.
[RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y.
Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724,
January 2007. DOI 10.17487/RFC4724, January 2007,
<http://www.rfc-editor.org/info/rfc4724>.
[RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R. [RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R.
Austein, "BGP Prefix Origin Validation", RFC 6811, January Austein, "BGP Prefix Origin Validation", RFC 6811, DOI
2013. 10.17487/RFC6811, January 2013,
<http://www.rfc-editor.org/info/rfc6811>.
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
"Multiprotocol Extensions for BGP-4", RFC 4760, January "Multiprotocol Extensions for BGP-4", RFC 4760, DOI
2007. 10.17487/RFC4760, January 2007,
<http://www.rfc-editor.org/info/rfc4760>.
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC
July 2013. 6991, DOI 10.17487/RFC6991, July 2013,
<http://www.rfc-editor.org/info/rfc6991>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004. DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>.
7.2. Informative references 7.2. Informative references
[I-D.shaikh-rtgwg-policy-model] [I-D.shaikh-rtgwg-policy-model]
Shaikh, A., Shakir, R., D'Souza, K., and C. Chase, Shaikh, A., Shakir, R., D'Souza, K., and C. Chase,
"Routing Policy Configuration Model for Service Provider "Routing Policy Configuration Model for Service Provider
Networks", draft-shaikh-rtgwg-policy-model-00 (work in Networks", draft-shaikh-rtgwg-policy-model-01 (work in
progress), January 2015. progress), July 2015.
[I-D.openconfig-netmod-opstate] [I-D.openconfig-netmod-opstate]
Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling
of Operational State Data in YANG", draft-openconfig- of Operational State Data in YANG", draft-openconfig-
netmod-opstate-00 (work in progress), March 2015. netmod-opstate-01 (work in progress), July 2015.
[I-D.ietf-netmod-routing-cfg] [I-D.ietf-netmod-routing-cfg]
Lhotka, L. and A. Lindem, "A YANG Data Model for Routing Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
Management", draft-ietf-netmod-routing-cfg-19 (work in Management", draft-ietf-netmod-routing-cfg-20 (work in
progress), May 2015. progress), October 2015.
[I-D.rtgyangdt-rtgwg-device-model] [I-D.rtgyangdt-rtgwg-device-model]
Lindem, A., Berger, L., Ed., Bogdanovic, D., and C. Hopps, Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps,
"Network Device YANG Organizational Model", draft- "Network Device YANG Organizational Model", draft-
rtgyangdt-rtgwg-device-model-00 (work in progress), July rtgyangdt-rtgwg-device-model-01 (work in progress),
2015. September 2015.
Appendix A. Acknowledgements Appendix A. Acknowledgements
The authors are grateful for valuable contributions to this document The authors are grateful for valuable contributions to this document
and the associated models from: Ebben Aires, Pavan Beeram, Chris and the associated models from: Ebben Aires, Pavan Beeram, Chris
Chase, Ed Crabbe, Luyuan Fang, Bill Fenner, Akshay Gattani, Josh Chase, Ed Crabbe, Luyuan Fang, Bill Fenner, Akshay Gattani, Josh
George, Vijay Gill, Jeff Haas, Dhanendra Jain, Ina Minei, Carl George, Vijay Gill, Jeff Haas, Dhanendra Jain, Ina Minei, Carl
Moberg, Ashok Narayanan, Einar Nilsen-Nygaard, Adam Simpson, Puneet Moberg, Ashok Narayanan, Einar Nilsen-Nygaard, Adam Simpson, Puneet
Sood, Jason Sterne, Jim Uttaro, and Gunter Vandevelde. Sood, Jason Sterne, Jim Uttaro, and Gunter Vandevelde.
Appendix B. Change summary
B.1. Changes between revisions -00 and -01
o Updated module namespaces to reflect IETF standard namespace.
o Updated module filenames with ietf- prefix per RFC 6087
guidelines.
Authors' Addresses Authors' Addresses
Anees Shaikh (editor) Anees Shaikh (editor)
Google Google
1600 Amphitheatre Pkwy 1600 Amphitheatre Pkwy
Mountain View, CA 94043 Mountain View, CA 94043
US US
Email: aashaikh@google.com Email: aashaikh@google.com
Rob Shakir (editor) Rob Shakir (editor)
BT Jive Communications, Inc.
pp. C3L, BT Centre 1275 West 1600 North, Suite 100
81, Newgate Street Orem, UT 84057
London EC1A 7AJ
UK
Email: rob.shakir@bt.com Email: rjs@rob.sh
URI: http://www.bt.com/
Keyur Patel (editor) Keyur Patel (editor)
Cisco Cisco
170 W. Tasman Drive 170 W. Tasman Drive
San Jose, CA 95134 San Jose, CA 95134
USA USA
Email: keyupate@cisco.com Email: keyupate@cisco.com
Susan Hares (editor) Susan Hares (editor)
 End of changes. 171 change blocks. 
225 lines changed or deleted 114 lines changed or added

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