idnits 2.17.1 draft-zhdankin-netmod-bgp-cfg-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 68 instances of too long lines in the document, the longest one being 71 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 473 has weird spacing: '...st-name str...' == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 1, 2014) is 3485 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC2629' is defined on line 1813, but no explicit reference was found in the text == Unused Reference: 'RFC2842' is defined on line 1816, but no explicit reference was found in the text == Unused Reference: 'RFC3552' is defined on line 1819, but no explicit reference was found in the text == Unused Reference: 'RFC4271' is defined on line 1823, but no explicit reference was found in the text == Unused Reference: 'RFC5492' is defined on line 1843, but no explicit reference was found in the text == Unused Reference: 'RFC7223' is defined on line 1846, but no explicit reference was found in the text == Outdated reference: A later version (-25) exists of draft-ietf-netmod-routing-cfg-15 ** Obsolete normative reference: RFC 2629 (Obsoleted by RFC 7749) ** Obsolete normative reference: RFC 2842 (Obsoleted by RFC 3392) -- Obsolete informational reference (is this intentional?): RFC 7223 (Obsoleted by RFC 8343) Summary: 3 errors (**), 0 flaws (~~), 10 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group A. Zhdankin 3 Internet-Draft K. Patel 4 Intended status: Informational A. Clemm 5 Expires: April 4, 2015 Cisco 6 October 1, 2014 8 Yang Data Model for BGP Protocol 9 draft-zhdankin-netmod-bgp-cfg-01.txt 11 Abstract 13 This document defines a YANG data model that can be used to configure 14 and manage BGP. 16 Status of This Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF). Note that other groups may also distribute 23 working documents as Internet-Drafts. The list of current Internet- 24 Drafts is at http://datatracker.ietf.org/drafts/current/. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 This Internet-Draft will expire on April 4, 2015. 33 Copyright Notice 35 Copyright (c) 2014 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (http://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with respect 43 to this document. Code Components extracted from this document must 44 include Simplified BSD License text as described in Section 4.e of 45 the Trust Legal Provisions and are provided without warranty as 46 described in the Simplified BSD License. 48 This document may contain material from IETF Documents or IETF 49 Contributions published or made publicly available before November 50 10, 2008. The person(s) controlling the copyright in some of this 51 material may not have granted the IETF Trust the right to allow 52 modifications of such material outside the IETF Standards Process. 53 Without obtaining an adequate license from the person(s) controlling 54 the copyright in such materials, this document may not be modified 55 outside the IETF Standards Process, and derivative works of it may 56 not be created outside the IETF Standards Process, except to format 57 it for publication as an RFC or to translate it into languages other 58 than English. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 64 2. Definitions and Acronyms . . . . . . . . . . . . . . . . . . 3 65 3. The Design of the Core Routing Data Model . . . . . . . . . . 4 66 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 67 3.2. BGP Router Configuration . . . . . . . . . . . . . . . . 4 68 3.2.1. AF Configuration . . . . . . . . . . . . . . . . . . 5 69 3.2.1.1. AF Specific Protocol Configuration . . . . . . . 7 70 3.2.1.2. BGP Bestpath Configuration . . . . . . . . . . . 7 71 3.2.1.3. BGP Neighbor Configuration . . . . . . . . . . . 8 72 3.2.1.4. BGP Dampening . . . . . . . . . . . . . . . . . . 8 73 3.2.1.5. BGP Route Aggregation . . . . . . . . . . . . . . 8 74 3.2.1.6. BGP Redistribution . . . . . . . . . . . . . . . 8 75 3.2.2. BGP Neighbor Configuration . . . . . . . . . . . . . 8 76 3.2.3. BGP RPKI . . . . . . . . . . . . . . . . . . . . . . 10 77 3.3. Prefix Lists . . . . . . . . . . . . . . . . . . . . . . 10 78 4. BGP Yang Module . . . . . . . . . . . . . . . . . . . . . . . 11 79 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 80 6. Security Considerations . . . . . . . . . . . . . . . . . . . 38 81 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 38 82 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 83 8.1. Normative References . . . . . . . . . . . . . . . . . . 38 84 8.2. Informative References . . . . . . . . . . . . . . . . . 39 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 87 1. Introduction 89 YANG [RFC6020] is a data definition language that was introduced to 90 define the contents of a conceptual data store that allows networked 91 devices to be managed using NETCONF [RFC6241]. YANG is proving 92 relevant beyond its initial confines, as bindings to other interfaces 93 (e.g. ReST) and encodings other than XML (e.g. JSON) are being 94 defined. Furthermore, YANG data models can be used as the basis of 95 implementation for other interfaces, such as CLI and programmatic 96 APIs. 98 This document defines a YANG data model that can be used to configure 99 and manage BGP. The data model is very comprehensive in scope, 100 resulting in a very large module being defined. When contemplating 101 whether it would be appropriate to introduce a data model of such a 102 large scope, we decided that there would be value in particular 103 because BGP defines such a rich set of features, which makes the 104 problem arising from heterogeneity involved when managing these 105 features quite pronounced. Also, there is very little information 106 that is designated as "mandatory", leaving the decision which 107 capabilities to actually support to product implementations. 109 There are several distinct parts of the data model. The first part, 110 by far the largest, serves to configure and manage BGP itself. It 111 defines a large set of control knobs for that purpose, as well as a 112 few data nodes that can be used to monitor health and gather 113 statistics. The second part, much smaller than the first, defines a 114 data model for the configuration of AS-Path and prefix-based filter 115 lists, in essence policies that define the exchange of BGP messages 116 between BGP peers. Together they form a complete data model that 117 serves as a framework for configuration and management of BGP 118 protocol and its policies. 120 The YANG module defined in this document has all the common building 121 blocks for BGP protocol namely: Neighbor List, Address Family 122 specific Parameters, Protocol Bestpath specific Parameters, Prefix 123 based Filter Lists, and AS-PATH based Filter Lists. 125 1.1. Requirements Language 127 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 128 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 129 document are to be interpreted as described in RFC 2119 [RFC2119]. 131 2. Definitions and Acronyms 133 AF: Address Family 135 AS: Autonomous System 137 BGP: Border Gateway Protocol 139 HTTP: Hyper-Text Transfer Protocol 141 JSON: JavaScript Object Notation 142 L2VPN: Layer 2 VPN 144 NETCONF: Network Configuration Protocol 146 NSAP: Network Service Access Point 148 ReST: Representational State Transfer, a style of stateless interface 149 and protocol that is generally carried over HTTP 151 RPKI: Resource Public Key Infrastructure 153 RTFilter: Route Filter 155 VPN: Virtual Private Network 157 YANG: A data definition language for NETCONF 159 3. The Design of the Core Routing Data Model 161 3.1. Overview 163 The overall data model consists of two main components, each 164 contained in its own separate container. Container "bgp-router" is 165 used to configure and manage BGP itself. It is by far the largest 166 part of the model. Container "prefix-lists" is used to configure BGP 167 prefix lists, defining the rules and policies as which BGP 168 information to share with which other nodes. 170 3.2. BGP Router Configuration 172 The overall structure of the "bgp-router" part of the model is 173 depicted in the following diagram. Brackets enclose list keys, "rw" 174 means configuration data, "?" designates optional nodes. The figure 175 does not depict all definitions; it is intended to illustrate the 176 overall structure. 178 module: bgp 179 +--rw bgp-router 180 | +--rw local-as-number? uint32 181 | +--rw local-as-identifier? inet:ip-address 182 | +--rw rpki-config 183 | | ..... 184 | +--rw af-configuration 185 | ..... 186 +--rw bgp-neighbors 187 ..... 189 The key components of the "bgp-router" model concern the 190 configuration of the BGP neighbors, of the Resource Public Key 191 Infrastructure (RPKI), and of address families (AF). Each is defined 192 in the following subsections. 194 3.2.1. AF Configuration 196 AF-configuration is used to configure and manage BGP configuration on 197 an address family basis. BGP is designed to carry routing 198 information for multiple different address families as specified in 199 [RFC4760]. AF-Configuration is indexed by (router-AS, AFI, SAFI, 200 VRFID) [RFC4760] and [RFC4364]. It contains any AF specific protocol 201 configuration, BGP Bestpath configuration parameters,BGP neighbor 202 configuration parameters, BGP dampening parameters, BGP route 203 aggregation parameters, and any BGP policy configuration like 204 redistribution. 206 The overall structure of the AF Configuration data model is depicted 207 in the following diagram. As before, brackets enclose list keys, 208 "rw" means configuration data, "?" designates optional nodes, 209 parantheses indicate choices. The figure does not depict all 210 definitions; it is intended to illustrate the overall model 211 structure. Roughly speaking, address family configuration allows for 212 separate configuration of IPv4, IPv6, L2VPN, NSAP, VPNv4 and VPNv6 213 address families, as well as route filters. Within each address 214 family, you have additional substructure, for example, to distinguish 215 between configuration of unicast and multicast. 217 module: bgp 218 +--rw bgp-router 219 | ..... 220 | +--rw af-configuration 221 | +--rw ipv4 222 | | +--rw mdt 223 | | | ..... 224 | | +--rw multicast 225 | | | +--rw bgp 226 | | | | ..... 227 | | | +--rw auto-summary? boolean 228 | | | +--rw aggregate-address? inet:ip-address 229 | | | +--rw distance? uint8 230 | | | +--rw network? inet:ip-address 231 | | | +--rw (protocol)? 232 | | | | ..... 233 | | | +--rw default-metric? uint32 234 | | +--rw unicast 235 | | | +--rw bgp 236 | | | | ..... 238 | | | +--rw auto-summary? boolean 239 | | | +--rw aggregate-address? inet:ip-address 240 | | | +--rw distance? uint8 241 | | | +--rw network? inet:ip-address 242 | | | +--rw (protocol)? 243 | | | | ..... 244 | | | +--rw number-of-path? uint8 245 | | | +--rw ibgp-number-of-path? uint8 246 | | | +--rw synchronization? boolean 247 | | +--rw mvpn 248 | | +--rw bgp 249 | | | ..... 250 | | +--rw auto-summary? boolean 251 | +--rw ipv6 252 | | +--rw multicast 253 | | | +--rw bgp 254 | | | | ..... 255 | | | +--rw aggregate-address? inet:ip-address 256 | | | +--rw distance? uint8 257 | | | +--rw network? inet:ip-address 258 | | | +--rw (protocol)? 259 | | | ..... 260 | | +--rw unicast 261 | | | +--rw bgp 262 | | | | ..... 263 | | | +--rw aggregate-address? inet:ip-address 264 | | | +--rw distance? uint8 265 | | | +--rw network? inet:ip-address 266 | | | +--rw (protocol)? 267 | | | | ..... 268 | | | +--rw default-metric? uint32 269 | | | +--rw number-of-path? uint8 270 | | | +--rw ibgp-number-of-path? uint8 271 | | | +--rw synchronization? boolean 272 | | +--rw mvpn 273 | | ..... 274 | +--rw l2vpn 275 | | +--rw vpls 276 | | ..... 277 | +--rw nsap 278 | | +--rw unicast 279 | | +--rw bgp 280 | | | ..... 281 | | +--rw default-metric? uint32 282 | | +--rw number-of-path? uint8 283 | | +--rw ibgp-number-of-path? uint8 284 | | +--rw network? inet:ip-address 285 | | +--rw (protocol)? 286 | | | ..... 287 | | +--rw synchronization? boolean 288 | +--rw rtfilter 289 | | +--rw unicast 290 | | ..... 291 | +--rw vpnv4 292 | | +--rw unicast 293 | | | +--rw bgp 294 | | | | ..... 295 | | | +--rw number-of-path? uint8 296 | | | +--rw ibgp-number-of-path? uint8 297 | | +--rw multicast 298 | | +--rw bgp 299 | | | ..... 300 | | +--rw number-of-path? uint8 301 | | +--rw ibgp-number-of-path? uint8 302 | +--rw vpnv6 303 | +--rw unicast 304 | +--rw bgp 305 | ..... 307 The key AF configuration components are described in the following 308 subsections. 310 3.2.1.1. AF Specific Protocol Configuration 312 AF specific protocol configuration involves configuration of the 313 parameters that are specific to a given AF. For instance, 314 configuration parameters specific to the consistency checking between 315 prefixes and labels are specific to address families that are enabled 316 with Labels. Similarly redistribution of routes from other protocols 317 is specific to Address Families that are supported in other 318 protocols. 320 3.2.1.2. BGP Bestpath Configuration 322 BGP BestPath Configuration Parameters involves configuration of the 323 parameters that influence the BGP Bestpath decision. For instance, 324 the ignore-as-path command allows BGP process to ignore as-path 325 length check. The ignore-routerid command allows BGP process to 326 ignore routerid check. The ignore-igp-metric command allows BGP 327 process to ignore igp metric check. The ignore-cost-community 328 command allows BGP process to ignore cost communities. The MED 329 related commands influence MED comparision in the BGP Bestpath 330 decision. 332 3.2.1.3. BGP Neighbor Configuration 334 BGP Neighbor Configuration Parameters involves configuration of the 335 parameters that are neighbor address family specific. These commands 336 include neighbor capabilities, neighbor policies and any protocol 337 related parameters that are specific to BGP neighbor. 339 3.2.1.4. BGP Dampening 341 BGP Dampening Parameters involves configuration of the parameters 342 that influence BGP Route Dampening. These parameters allow enabling 343 of Route Dampening on an address family level. The Dampening 344 configuration also allows configuration of Dampening specific 345 parameters like max suppress time, resuse threshold, half life, and 346 the suppress threshold. 348 3.2.1.5. BGP Route Aggregation 350 BGP Route Aggregation Parameters involves configuration of the 351 parameters that enables BGP Route Aggregation. 353 3.2.1.6. BGP Redistribution 355 BGP Route Redistribution Parameters involves configuration of the 356 parameters that enables BGP Route Redistribution from and to the BGP 357 protocol. 359 3.2.2. BGP Neighbor Configuration 361 Bgp-neighbor is used to configure and manage BGP neighbors. BGP 362 neighbor configuration is indexed by af-configuration, neighbor 363 address and neighbor-AS. It contains configuration for any policies 364 that are configured for a neighbor on an inbound or an outbound, any 365 transport related configuration parameters, any protocol related 366 configuration parameters, and any protocol capabilities related 367 configuration parameters. 369 The following diagram depicts the overall structure of the BGP 370 Neighbors subtree. Brackets enclose list keys, "rw" means 371 configuration, "ro" operational state data, and "?" designates 372 optional nodes. Parantheses enclose choice and case nodes. The 373 figure does not depict all definitions; it is intended to illustrate 374 the overall structure. 376 module: bgp 377 + .... 378 +--rw bgp-neighbors 379 | +--rw bgp-neighbor [as-number] 380 | +--rw as-number uint32 381 | +--rw (peer-address-type)? 382 | | ..... 383 | +--rw prefix-list? prefix-list-ref 384 | +--rw default-action? actions-enum 385 | +--rw af-specific-config 386 | | +--rw ipv4 387 | | | +--rw mdt 388 | | | | ..... 389 | | | +--rw unicast 390 | | | | ..... 391 | | | +--rw multicast 392 | | | | ..... 393 | | | +--rw mvpn 394 | | | ..... 395 | | +--rw ipv6 396 | | | +--rw unicast 397 | | | | ..... 398 | | | +--rw multicast 399 | | | | ..... 400 | | | +--rw mvpn 401 | | | ..... 402 | | +--rw l2vpn 403 | | | +--rw evpn 404 | | | | ..... 405 | | | +--rw vpls 406 | | | ..... 407 | | +--rw nsap 408 | | | +--rw unicast 409 | | | ..... 410 | | +--rw rtfilter 411 | | | +--rw unicast 412 | | | ..... 413 | | +--rw vpnv4 414 | | | +--rw unicast 415 | | | | ..... 416 | | | +--rw multicast 417 | | | ..... 418 | | +--rw vpnv6 419 | | +--rw unicast 420 | | | ..... 421 | | +--rw multicast 422 | | ..... 423 | +--rw bgp-neighbor-state 424 | | ..... 425 | +--rw bgp-neighbor-statistics 426 | ..... 428 3.2.3. BGP RPKI 430 rpki-config is used to configure and manage BGP Origin Validation. 431 This feature is specific to IPv4 and IPv6 Address Families. It is 432 indexed by af-configuration. It contains the configuration commands 433 for the BGP RPKI Server, RPKI RTR Protocol and the BGP protocol. 434 This includes configuration for the Server address, Server 435 preference, RPKI RTR protocol specific parameters, choice of a 436 transport for RPKI RTR Protocol, and BGP specific parameters 437 including enabling and disabling of this feature for IBGP and EBGP 438 routes. 440 The structure of the RPKI configuration data model is depicted below, 441 per the same conventions used in the earlier diagrams. 443 module: bgp 444 +--rw bgp-router 445 | ..... 446 | +--rw rpki-config 447 | | +--rw cache-server-config 448 | | | ..... 449 | | +--rw validation-config 450 | | | ..... 451 | | +--rw bestpath-computation 452 | | ..... 454 3.3. Prefix Lists 456 BGP Prefix Lists are used to manipulate Prefix information carried 457 within a BGP. The prefix information carried within BGP is filtered 458 or allowed using BGP Prefix Lists. BGP Prefix Lists consists of an 459 ordered set of one or more rules that describe IPv4 or IPv6 prefixes 460 range and an associated action rule that describes whether the 461 matching prefixes should be dropped or permitted. The Prefix Lists 462 are usually applied to a BGP neighbor as part of an inbound policy 463 (applied to prefixes received by a neighbor) or an outbound policy 464 (applied to prefixes sent by a neighbor). 466 The structure of the prefix list configuration data model is depicted 467 below, per the same conventions used in the earlier diagrams. 469 module: bgp 470 ..... 471 +--rw prefix-lists 472 +--rw prefix-list [prefix-list-name] 473 +--rw prefix-list-name string 474 +--rw prefixes 475 +--rw prefix [seq-nr] 476 +--rw seq-nr uint16 477 +--rw prefix-filter 478 +--rw (ip-address-group)? 479 | ..... 480 +--rw action actions-enum 481 +--rw statistics 482 ..... 484 Prefix lists are defined in a list in a designated container. Each 485 prefix list in turn contains a list of prefixes, indexed by a 486 sequency number. Each prefix is comprised of a prefix filter, used 487 to match BGP packets, an action that is applied when a filter 488 matches, and a set of statistics that indicate how often individual 489 prefixes are applied. 491 4. BGP Yang Module 493 file "bgp@2013-07-15.yang" 495 module bgp { 496 namespace "urn:cisco:params:xml:ns:yang:bgp"; 497 // replace with IANA namespace when assigned 498 prefix bgp; 500 import ietf-inet-types { 501 prefix inet; 502 } 503 import ietf-yang-types { 504 prefix yang; 505 } 507 organization 508 "Cisco Systems 509 170 West Tasman Drive 510 San Jose, CA 95134-1706 511 USA"; 512 contact 513 "Aleksandr Zhdankin azhdanki@cisco.com 514 Keyur Patel keyupate@cisco.com 515 Alexander Clemm alex@cisco.com"; 517 description 518 "This YANG module defines the generic configuration 519 data for BGP, which is common across all of the vendor 520 implementations of the protocol. It is intended that the module 521 will be extended by vendors to define vendor-specific 522 BGP configuration parameters and policies, 523 for example route maps or route policies. 525 Terms and Acronyms 527 BGP (bgp): Border Gateway Protocol 529 IP (ip): Internet Protocol 531 IPv4 (ipv4):Internet Protocol Version 4 533 IPv6 (ipv6): Internet Protocol Version 6 535 MED(med): Multi Exit Discriminator 537 IGP (igp): Interior Gateway Protocol 539 MTU (mtu) Maximum Transmission Unit 540 "; 542 revision 2013-07-15 { 543 description 544 "Initial revision."; 545 } 547 typedef prefix-list-ref { 548 description 549 "A reference to the prefix list which a bgp-neighbor can use."; 550 type leafref { 551 path "/prefix-lists/prefix-list/prefix-list-name"; 552 } 553 } 555 typedef neigbour-ref { 556 description 557 "A reference to the bgp-neighbor."; 558 type leafref { 559 path "/bgp-neighbors/bgp-neighbor/as-number"; 560 } 561 } 563 typedef bgp-peer-admin-status { 564 description 565 "Administartive status of a BGP peer."; 566 type enumeration { 567 enum "unknown"; 568 enum "up"; 569 enum "down"; 570 } 571 } 573 typedef actions-enum { 574 description 575 "Permit/deny action."; 576 type enumeration { 577 enum "permit"; 578 enum "deny"; 579 } 580 } 582 grouping ACTIONS { 583 description 584 "Permit/deny action."; 585 leaf action { 586 type actions-enum; 587 mandatory true; 588 } 589 } 591 grouping slow-peer-config { 592 description 593 "Configure a slow-peer."; 594 container detection { 595 leaf enable { 596 type boolean; 597 default "true"; 598 } 599 leaf threshold { 600 type uint16 { 601 range "120..3600"; 602 } 603 } 604 } 605 leaf split-update-group { 606 type enumeration { 607 enum "dynamic"; 608 enum "static"; 609 } 610 } 611 } 612 grouping update-group-management { 613 description 614 "Manage peers in BGP update group."; 615 leaf split-as-override { 616 description 617 "Keeps peers with as-override in different update groups."; 618 type boolean; 619 } 620 } 622 grouping neighbour-base-af-config { 623 description 624 "A set of configuration parameters that is applicable to all neighbour address families."; 625 leaf active { 626 description 627 "Enable the address family for this neighbor."; 628 type boolean; 629 default "false"; 630 } 631 leaf advertisement-interval { 632 description 633 "Minimum interval between sending BGP routing updates."; 634 type uint32; 635 } 636 leaf allowas-in { 637 description 638 "Accept as-path with my AS present in it."; 639 type boolean; 640 default "false"; 641 } 642 leaf maximum-prefix { 643 description 644 "Maximum number of prefixes accepted from this peer."; 645 type uint32; 646 } 647 leaf next-hop-self { 648 description 649 "Enable the next hop calculation for this neighbor."; 650 type boolean; 651 default "true"; 652 } 653 leaf next-hop-unchanged { 654 description 655 "Propagate next hop unchanged for iBGP paths to this neighbour."; 656 type boolean; 657 default "true"; 658 } 659 container remove-private-as { 660 leaf remove-private-as-number { 661 description 662 "Remove private AS number from outbound updates."; 663 type boolean; 664 } 665 leaf replace-with-local-as { 666 description 667 "Replace private AS number with local AS."; 668 type boolean; 669 } 670 } 671 leaf route-reflector-client { 672 description 673 "Configure a neighbor as Route Reflector client."; 674 type boolean; 675 default "false"; 676 } 677 leaf send-community { 678 description 679 "Send Community attribute to this neighbor."; 680 type enumeration { 681 enum "both"; 682 enum "extended"; 683 enum "standard"; 684 } 685 default "standard"; 686 } 687 uses slow-peer-config; 688 leaf soo { 689 description 690 "Site-of-Origin extended community. Format is ASN:nn or IP-address:nn"; 691 type string; 692 } 693 leaf weight { 694 description 695 "Set default weight for routes from this neighbor."; 696 type uint16; 697 } 698 } 700 grouping neighbour-common-af-config { 701 description 702 "A set of configuration parameters that is applicable to all neighbour address families, 703 except of nsap and rtfilter."; 704 uses neighbour-base-af-config; 705 leaf prefix-list { 706 description 707 "Reference to the prefix list of this neighbour."; 709 type prefix-list-ref; 710 } 711 leaf soft-reconfiguration { 712 description 713 "Allow inbound soft reconfiguration."; 714 type boolean; 715 } 716 } 718 grouping neighbour-cast-af-config { 719 description 720 "A set of configuration parameters that is applicable to both unicast and multicast sub-address families."; 721 uses neighbour-common-af-config; 722 leaf propagate-dmzlink-bw { 723 description 724 "Propagate the DMZ link bandwidth."; 725 type boolean; 726 } 727 container default-originate { 728 description 729 "Originate default route to this neighbor."; 730 leaf enable { 731 type boolean; 732 default "false"; 733 } 734 } 735 } 737 grouping neighbour-ip-multicast-af-config { 738 description 739 "A set of configuration parameters that is applicable to ip multicast."; 740 uses neighbour-cast-af-config; 741 leaf route-server-client-context { 742 description 743 "Specifies Route Server client context name."; 744 type string; 745 } 746 } 748 grouping neighbour-ip-unicast-af-config { 749 description 750 "A set of configuration parameters that is applicable to ip unicast. 751 This grouping is intended to be extended by vendors as necessary to describe the vendor-specific configuration parameters."; 752 uses neighbour-ip-multicast-af-config; 753 } 755 grouping bgp-af-config { 756 description 757 "A set of configuration parameters that is applicable to all address families of the BFP router."; 758 leaf additional-paths { 759 description 760 "Additional paths in the BGP table."; 761 type enumeration { 762 enum "all"; 763 enum "best-n"; 764 enum "group-best"; 765 } 766 } 767 leaf advertise-best-external { 768 description 769 "Advertise best external path to internal peers."; 770 type boolean; 771 } 772 container aggregate-timer { 773 description 774 "Configure aggregation timer."; 775 leaf enable { 776 type boolean; 777 default "true"; 778 } 779 leaf threshold { 780 type uint16 { 781 range "6..60"; 782 } 783 } 784 } 785 container bestpath { 786 description 787 "Change the default bestpath selection."; 788 choice bestpath-selection { 789 case as-path { 790 description 791 "Configures a BGP routrer to not consider the autonomous system (AS) path during best path route selection."; 792 leaf ignore-as-path { 793 type boolean; 794 default "false"; 795 } 796 } 797 case compare-routerid { 798 description 799 "Configures a BGP routrer to compare identical routes received from different external peers 800 during the best path selection process and to select the route with the lowest router ID as the best path."; 801 leaf ignore-routerid { 802 type boolean; 803 default "false"; 804 } 806 } 807 case cost-community { 808 description 809 "Configures a BGP router to not evaluate the cost community attribute 810 during the best path selection process."; 811 leaf ignore-cost-community { 812 type boolean; 813 default "false"; 814 } 815 } 816 case igp-metric { 817 description 818 "Configures the system to ignore the IGP metric during BGP best path selection."; 819 leaf ignore-igp-metric { 820 type boolean; 821 default "false"; 822 } 823 } 824 case mad-confed { 825 description 826 "Configure a BGP routing process to compare the Multi Exit Discriminator (MED) 827 between paths learned from confederation peers."; 828 leaf enable { 829 type boolean; 830 default "false"; 831 } 832 leaf missing-as-worst { 833 description 834 "Assigns a value of infinity to routes that are missing 835 the Multi Exit Discriminator (MED) attribute, 836 making the path without a MED value the least desirable path"; 837 type boolean; 838 default "false"; 839 } 840 } 841 } 842 } 843 leaf dampening { 844 description 845 "Enable route-flap dampening."; 846 type boolean; 847 default "false"; 848 } 849 leaf propagate-dmzlink-bw { 850 description 851 "Use DMZ Link Bandwidth as weight for BGP multipaths."; 852 type boolean; 853 } 854 leaf redistribute-internal { 855 description 856 "Allow redistribution of iBGP into IGPs (dangerous)"; 857 type boolean; 858 } 859 leaf scan-time { 860 description 861 "Configure background scanner interval in seconds."; 862 type uint8 { 863 range "5..60"; 864 } 865 } 866 uses slow-peer-config; 867 leaf soft-reconfig-backup { 868 description 869 "Use soft-reconfiguration inbound only when route-refresh is not negotiated."; 870 type boolean; 871 } 872 } 874 grouping bgp-af-vpn-config { 875 description 876 "A set of configuration parameters that is applicable to vpn sub-address family on the BGP router."; 877 uses bgp-af-config; 878 uses update-group-management; 879 } 881 grouping bgp-af-mvpn-config { 882 description 883 "A set of configuration parameters that is applicable to mvpn sub-address family on the BGP router."; 884 leaf scan-time { 885 description 886 "Configure background scanner interval in seconds."; 887 type uint8 { 888 range "5..60"; 889 } 890 } 891 uses slow-peer-config; 892 leaf soft-reconfig-backup { 893 description 894 "Use soft-reconfiguration inbound only when route-refresh is not negotiated."; 895 type boolean; 896 } 897 leaf propagate-dmzlink-bw { 898 description 899 "Use DMZ Link Bandwidth as weight for BGP multipaths."; 900 type boolean; 901 } 902 leaf rr-group { 903 description 904 "Extended community list name."; 905 type string; 906 } 907 uses update-group-management; 908 } 910 grouping redistribute { 911 description 912 "Redistribute information from another routing protocol. 913 This grouping is intended to be augmented by vendors to implement vendor-specific protocol redistribution configuration options."; 914 choice protocol { 915 case bgp { 916 leaf enable-bgp { 917 type boolean; 918 } 919 } 920 case ospf { 921 leaf enable-ospf { 922 type boolean; 923 } 924 } 925 case isis { 926 leaf enable-isis { 927 type boolean; 928 } 929 } 930 case connected { 931 leaf enable-connected { 932 type boolean; 933 } 934 } 935 case eigrp { 936 leaf enable-eigrp { 937 type boolean; 938 } 939 } 940 case mobile { 941 leaf enable-mobile { 942 type boolean; 943 } 944 } 945 case static { 946 leaf enable-static { 947 type boolean; 948 } 949 } 950 case rip { 951 leaf enable-rip { 952 type boolean; 953 } 954 } 955 } 956 } 958 grouping router-af-config { 959 description 960 "A set of configuration parameters that is applicable to all address families on the BGP router."; 961 leaf aggregate-address { 962 description 963 "Configure BGP aggregate address."; 964 type inet:ip-address; 965 } 966 leaf distance { 967 description 968 "Define an administrative distance."; 969 type uint8 { 970 range "1..255"; 971 } 972 } 973 leaf network { 974 description 975 "Specify a network to announce via BGP."; 976 type inet:ip-address; 977 } 978 uses redistribute; 979 } 981 grouping maximum-paths { 982 description 983 "Configures packet forwarding over multiple paths."; 984 leaf number-of-path { 985 type uint8 { 986 range "1..32"; 987 } 988 } 989 leaf ibgp-number-of-path { 990 type uint8 { 991 range "1..32"; 992 } 993 } 994 } 996 container bgp-router { 997 description 998 "This is a top-level container for the BGP router."; 999 leaf local-as-number { 1000 type uint32; 1001 } 1002 leaf local-as-identifier { 1003 type inet:ip-address; 1004 } 1005 container rpki-config { 1006 description 1007 "RPKI configuration parameters."; 1008 container cache-server-config { 1009 description 1010 "Configure the RPKI cache-server parameters in rpki-server configuration mode."; 1011 choice server { 1012 case ip-address { 1013 leaf ip-address { 1014 type inet:ip-address; 1015 mandatory true; 1016 } 1017 } 1018 case host-name { 1019 leaf ip-host-address { 1020 type inet:host; 1021 mandatory true; 1022 } 1023 } 1024 } 1025 choice transport { 1026 description 1027 "Specifies a transport method for the RPKI cache."; 1028 case tcp { 1029 leaf tcp-port { 1030 type uint32; 1031 } 1032 } 1033 case ssh { 1034 leaf ssh-port { 1035 type uint32; 1036 } 1037 } 1038 } 1039 leaf user-name { 1040 type string; 1041 } 1042 leaf password { 1043 type string; 1044 } 1045 leaf preference-value { 1046 description 1047 "Specifies a preference value for the RPKI cache. 1048 Setting a lower preference value is better."; 1049 type uint8 { 1050 range "1..10"; 1051 } 1052 } 1053 leaf purge-time { 1054 description 1055 "Configures the time BGP waits to keep routes from a cache after the cache session drops. Set purge time in seconds."; 1056 type uint16 { 1057 range "30..360"; 1058 } 1059 } 1060 choice refresh-time { 1061 description 1062 "Configures the time BGP waits in between sending periodic serial queries to the cache. Set refresh-time in seconds."; 1063 case disable { 1064 leaf refresh-time-disable { 1065 type boolean; 1066 } 1067 } 1068 case set-time { 1069 leaf refresh-interval { 1070 type uint16 { 1071 range "15..3600"; 1072 } 1073 } 1074 } 1075 } 1076 choice responce-time { 1077 description 1078 "Configures the time BGP waits for a response after sending a serial or reset query. Set response-time in seconds."; 1079 case disable { 1080 leaf responce-time-disable { 1081 type boolean; 1082 } 1083 } 1084 case set-time { 1085 leaf responce-interval { 1086 type uint16 { 1087 range "15..3600"; 1088 } 1089 } 1090 } 1091 } 1092 } 1093 container validation-config { 1094 description 1095 "Controls the behavior of RPKI prefix validation processing."; 1096 leaf enable { 1097 description 1098 "Enables RPKI origin-AS validation."; 1099 type boolean; 1100 default "true"; 1101 } 1102 leaf enable-ibgp { 1103 description 1104 "Enables the iBGP signaling of validity state through an extended-community."; 1105 type boolean; 1106 } 1107 choice validation-time { 1108 description 1109 "Sets prefix validation time (in seconds) or to set off the automatic prefix validation after an RPKI update."; 1110 case validation-off { 1111 leaf disable { 1112 type boolean; 1113 } 1114 } 1115 case set-time { 1116 leaf prefix-validation-time { 1117 description 1118 "Range in seconds."; 1119 type uint16 { 1120 range "5..60"; 1121 } 1122 } 1123 } 1124 } 1125 } 1126 container bestpath-computation { 1127 description 1128 "Configures RPKI bestpath computation options."; 1129 leaf enable { 1130 description 1131 "Enables the validity states of BGP paths to affect the path's preference in the BGP bestpath process."; 1132 type boolean; 1133 } 1134 leaf allow-invalid { 1135 description 1136 "Allows all 'invalid' paths to be considered for BGP bestpath computation."; 1137 type boolean; 1138 } 1139 } 1140 } 1141 container af-configuration { 1142 description 1143 "Top level container for address families specific configuration of the BGP router."; 1144 container ipv4 { 1145 container mdt { 1146 container bgp { 1147 description 1148 "BGP specific commands for ipv4-mdt address family/sub-addess family combination."; 1149 leaf dampening { 1150 description 1151 "Enable route-flap dampening."; 1152 type boolean; 1153 default "false"; 1154 } 1155 leaf scan-time { 1156 description 1157 "Configure background scanner interval in seconds."; 1158 type uint8 { 1159 range "5..60"; 1160 } 1161 } 1162 uses slow-peer-config; 1163 leaf soft-reconfig-backup { 1164 description 1165 "Use soft-reconfiguration inbound only when route-refresh is not negotiated."; 1166 type boolean; 1167 } 1168 leaf propagate-dmzlink-bw { 1169 description 1170 "Use DMZ Link Bandwidth as weight for BGP multipaths."; 1171 type boolean; 1172 } 1173 } 1174 } 1175 container multicast { 1176 container bgp { 1177 description 1178 "BGP specific commands for ipv4-multicast address family/sub-addess family combination."; 1179 uses bgp-af-config; 1180 } 1181 leaf auto-summary { 1182 description 1183 "Enable automatic network number summarization"; 1184 type boolean; 1185 } 1186 uses router-af-config; 1187 leaf default-metric { 1188 description 1189 "Set metric of redistributed routes."; 1191 type uint32; 1192 } 1193 } 1194 container unicast { 1195 container bgp { 1196 description 1197 "BGP specific commands for ipv4-unicast address family/sub-addess family combination."; 1198 uses bgp-af-config; 1199 leaf always-compare-med { 1200 description 1201 "Allow comparing MED from different neighbors."; 1202 type boolean; 1203 default "false"; 1204 } 1205 leaf enforce-first-as { 1206 description 1207 "Enforce the first AS for EBGP routes(default)."; 1208 type boolean; 1209 default "true"; 1210 } 1211 leaf fast-external-fallover { 1212 description 1213 "Immediately reset session if a link to a directly connected external peer goes down."; 1214 type boolean; 1215 default "true"; 1216 } 1217 leaf suppress-inactive { 1218 description 1219 "Suppress routes that are not in the routing table."; 1220 type boolean; 1221 } 1222 leaf asnotation { 1223 description 1224 "Sets the default asplain notation."; 1225 type enumeration { 1226 enum "asplain"; 1227 enum "dot"; 1228 } 1229 } 1230 leaf enable-client-to-client-reflection { 1231 description 1232 "Manages client to client route reflection."; 1233 type boolean; 1234 default "true"; 1235 } 1236 leaf cluster-id { 1237 description 1238 "Configure Route-Reflector Cluster-id."; 1240 type string; 1241 } 1242 container confederation { 1243 description 1244 "AS confederation parameters."; 1245 leaf identifier { 1246 description 1247 "Confederation identifier."; 1248 type string; 1249 } 1250 list peers { 1251 description 1252 "Confederation peers."; 1253 key "as-name"; 1254 leaf as-name { 1255 type string; 1256 } 1257 } 1258 } 1259 container consistency-checker { 1260 description 1261 "Consistency-checker configuration."; 1262 leaf enable { 1263 type boolean; 1264 } 1265 leaf interval { 1266 description 1267 "Check interval in minutes."; 1268 type uint16 { 1269 range "5..1440"; 1270 } 1271 } 1272 choice inconsistency-action { 1273 case error-message { 1274 description 1275 "Specifies that when an inconsistency is found, the system will only generate a syslog message."; 1276 leaf generate-error-message-only { 1277 type boolean; 1278 } 1279 } 1280 case autorepair { 1281 description 1282 "Specifies that when an inconsistency is found, 1283 the system will generate a syslog message and take action 1284 based on the type of inconsistency found."; 1285 leaf perform-autorepair { 1286 type boolean; 1287 } 1289 } 1290 } 1291 } 1292 leaf deterministic-med { 1293 description 1294 "If enabled it enforce the deterministic comparison of the MED value between 1295 all paths received from within the same autonomous system."; 1296 type boolean; 1297 } 1298 container graceful-restart { 1299 description 1300 "Controls the BGP graceful restart capability."; 1301 leaf enable { 1302 type boolean; 1303 } 1304 leaf restart-time { 1305 description 1306 "Sets the maximum time period (in seconds) that the local router will wait 1307 for a graceful-restart-capable neighbor to return to normal operation after a restart event occurs."; 1308 type uint16 { 1309 range "1..3600"; 1310 } 1311 default "120"; 1312 } 1313 leaf stalepath-time { 1314 description 1315 "Sets the maximum time period that the local router will hold stale paths for a restarting peer."; 1316 type uint16 { 1317 range "5..3600"; 1318 } 1319 default "360"; 1320 } 1321 } 1322 container listener-congfig { 1323 description 1324 "Associates a subnet range with a BGP peer group and activate the BGP dynamic neighbors feature."; 1325 leaf enable { 1326 type boolean; 1327 } 1328 leaf limit { 1329 description 1330 "Sets a maximum limit number of BGP dynamic subnet range neighbors."; 1331 type uint16 { 1332 range "1..5000"; 1333 } 1334 default "100"; 1335 } 1336 leaf range { 1337 description 1338 "Specifies a subnet range that is to be associated with a specified peer group."; 1339 type uint16 { 1340 range "0..32"; 1341 } 1342 } 1343 leaf peer-group { 1344 description 1345 "Specifies a BGP peer group that is to be associated with the specified subnet range."; 1346 type string; 1347 } 1348 } 1349 leaf log-neighbor-changes { 1350 description 1351 "Log neighbor up/down and reset reason."; 1352 type boolean; 1353 } 1354 leaf max-as-limit { 1355 description 1356 "Configures BGP to discard routes that have a number of autonomous system numbers in AS-path that exceed the specified value."; 1357 type uint16 { 1358 range "1..254"; 1359 } 1360 } 1361 container router-id { 1362 description 1363 "Configures a fixed router ID for the local BGP routing process."; 1364 leaf enable { 1365 type boolean; 1366 } 1367 choice config-type { 1368 case static { 1369 leaf ip-address { 1370 type boolean; 1371 } 1372 } 1373 case auto-config { 1374 leaf enable-auto-config { 1375 type boolean; 1376 } 1377 } 1378 } 1379 } 1380 container transport { 1381 description 1382 "Manages transport session parameters."; 1383 leaf enable-path-mtu-discovery { 1384 description 1385 "Enables transport path MTU discovery."; 1386 type boolean; 1387 default "true"; 1388 } 1389 } 1390 } 1391 leaf auto-summary { 1392 description 1393 "Enable automatic network number summarization"; 1394 type boolean; 1395 } 1396 uses router-af-config; 1397 uses maximum-paths; 1398 leaf synchronization { 1399 description 1400 "Perform IGP synchronization."; 1401 type boolean; 1402 } 1403 } 1404 container mvpn { 1405 container bgp { 1406 description 1407 "BGP specific commands for ipv4-mvpn address family/sub-addess family combination."; 1408 uses bgp-af-mvpn-config; 1409 } 1410 leaf auto-summary { 1411 description 1412 "Enable automatic network number summarization."; 1413 type boolean; 1414 } 1415 } 1416 } 1417 container ipv6 { 1418 container multicast { 1419 container bgp { 1420 description 1421 "BGP specific commands for ipv6-multicast address family/sub-addess family combination."; 1422 uses bgp-af-config; 1423 } 1424 uses router-af-config; 1425 } 1426 container unicast { 1427 container bgp { 1428 description 1429 "BGP specific commands for ipv6-unicast address family/sub-addess family combination."; 1430 uses bgp-af-config; 1431 } 1432 uses router-af-config; 1433 leaf default-metric { 1434 description 1435 "Set metric of redistributed routes."; 1436 type uint32; 1437 } 1438 uses maximum-paths; 1439 leaf synchronization { 1440 description 1441 "Perform IGP synchronization."; 1442 type boolean; 1443 } 1444 } 1445 container mvpn { 1446 container bgp { 1447 description 1448 "BGP specific commands for ipv6-mvpn address family/sub-addess family combination."; 1449 uses bgp-af-mvpn-config; 1450 } 1451 } 1452 } 1453 container l2vpn { 1454 container vpls { 1455 container bgp { 1456 description 1457 "BGP specific commands for l2vpn-vpls address family/sub-addess family combination."; 1458 leaf scan-time { 1459 description 1460 "Configure background scanner interval in seconds."; 1461 type uint8 { 1462 range "5..60"; 1463 } 1464 } 1465 uses slow-peer-config; 1466 } 1467 } 1468 } 1469 container nsap { 1470 container unicast { 1471 container bgp { 1472 description 1473 "BGP specific commands for nsap-unicast address family/sub-addess family combination."; 1474 container aggregate-timer { 1475 description 1476 "Configure Aggregation Timer."; 1477 leaf enable { 1478 type boolean; 1479 default "true"; 1480 } 1481 leaf threshold { 1482 type uint16 { 1483 range "6..60"; 1484 } 1485 } 1486 } 1487 leaf dampening { 1488 description 1489 "Enable route-flap dampening."; 1490 type boolean; 1491 default "false"; 1492 } 1493 leaf propagate-dmzlink-bw { 1494 description 1495 "Use DMZ Link Bandwidth as weight for BGP multipaths."; 1496 type boolean; 1497 } 1498 leaf redistribute-internal { 1499 description 1500 "Allow redistribution of iBGP into IGPs (dangerous)"; 1501 type boolean; 1502 } 1503 leaf scan-time { 1504 description 1505 "Configure background scanner interval in seconds."; 1506 type uint8 { 1507 range "5..60"; 1508 } 1509 } 1510 uses slow-peer-config; 1511 leaf soft-reconfig-backup { 1512 description 1513 "Use soft-reconfiguration inbound only when route-refresh is not negotiated."; 1514 type boolean; 1515 } 1516 } 1517 leaf default-metric { 1518 description 1519 "Set metric of redistributed routes."; 1520 type uint32; 1521 } 1522 uses maximum-paths; 1523 leaf network { 1524 description 1525 "Specify a network to announce via BGP."; 1526 type inet:ip-address; 1527 } 1528 uses redistribute; 1529 leaf synchronization { 1530 description 1531 "Perform IGP synchronization."; 1532 type boolean; 1533 } 1534 } 1535 } 1536 } 1537 container rtfilter { 1538 container unicast { 1539 container bgp { 1540 description 1541 "BGP specific commands for rtfilter-unicast address family/sub-addess family combination."; 1542 uses slow-peer-config; 1543 } 1544 uses maximum-paths; 1545 } 1546 } 1547 container vpnv4 { 1548 container unicast { 1549 container bgp { 1550 description 1551 "BGP specific commands for vpnv4-unicast address family/sub-addess family combination."; 1552 uses bgp-af-vpn-config; 1553 } 1554 uses maximum-paths; 1555 } 1556 container multicast { 1557 container bgp { 1558 description 1559 "BGP specific commands for vpnv4-multicast address family/sub-addess family combination."; 1560 uses bgp-af-vpn-config; 1561 } 1562 uses maximum-paths; 1563 } 1564 } 1565 container vpnv6 { 1566 container unicast { 1567 container bgp { 1568 description 1569 "BGP specific commands for vpnv6-unicast address family/sub-addess family combination."; 1570 uses bgp-af-vpn-config; 1571 } 1572 } 1573 } 1574 } 1575 container bgp-neighbors { 1576 description 1577 "The top level container for the list of neighbours of the BGP router."; 1578 list bgp-neighbor { 1579 key "as-number"; 1580 leaf as-number { 1581 type uint32; 1582 } 1583 choice peer-address-type { 1584 case ip-address { 1585 leaf ip-address { 1586 type inet:ip-address; 1587 mandatory true; 1588 } 1589 } 1590 case prefix { 1591 leaf prefix { 1592 type inet:ip-prefix; 1593 mandatory true; 1594 } 1595 } 1596 case host { 1597 leaf ip-host-address { 1598 type inet:host; 1599 mandatory true; 1600 } 1601 } 1602 } 1603 leaf prefix-list { 1604 type prefix-list-ref; 1605 } 1606 leaf default-action { 1607 type actions-enum; 1608 } 1609 container af-specific-config { 1610 description 1611 "Address family specific configuration parameters for the neighbours."; 1612 container ipv4 { 1613 container mdt { 1614 uses neighbour-common-af-config; 1615 } 1616 container unicast { 1617 uses neighbour-ip-unicast-af-config; 1618 } 1619 container multicast { 1620 uses neighbour-ip-multicast-af-config; 1621 } 1622 container mvpn { 1623 uses neighbour-cast-af-config; 1624 } 1626 } 1627 container ipv6 { 1628 container unicast { 1629 uses neighbour-ip-unicast-af-config; 1630 } 1631 container multicast { 1632 uses neighbour-ip-multicast-af-config; 1633 } 1634 container mvpn { 1635 uses neighbour-common-af-config; 1636 } 1637 } 1638 container l2vpn { 1639 container evpn { 1640 uses neighbour-common-af-config; 1641 } 1642 container vpls { 1643 uses neighbour-common-af-config; 1644 } 1645 } 1646 container nsap { 1647 container unicast { 1648 uses neighbour-base-af-config; 1649 leaf prefix-list { 1650 type prefix-list-ref; 1651 } 1652 } 1653 } 1654 container rtfilter { 1655 container unicast { 1656 uses neighbour-base-af-config; 1657 leaf soft-reconfiguration { 1658 description 1659 "Allow inbound soft reconfiguration."; 1660 type boolean; 1661 } 1662 } 1663 } 1664 container vpnv4 { 1665 container unicast { 1666 uses neighbour-cast-af-config; 1667 } 1668 container multicast { 1669 uses neighbour-cast-af-config; 1670 } 1671 } 1672 container vpnv6 { 1673 container unicast { 1674 uses neighbour-cast-af-config; 1675 } 1676 container multicast { 1677 uses neighbour-cast-af-config; 1678 } 1679 } 1680 } 1681 container bgp-neighbor-state { 1682 description 1683 "The operational parameters describing the neighbour state. 1684 It is intended that this container may be augmented by vendors to reflect the vendor-specific operational state parameters."; 1685 leaf adminStatus { 1686 type bgp-peer-admin-status; 1687 } 1688 leaf in-lastupdatetime { 1689 type yang:timestamp; 1690 } 1691 } 1692 container bgp-neighbor-statistics { 1693 description 1694 "The operational parameters describing the neighbour statistics. 1695 It is intended that this container may be augmented by vendors to reflect the vendor-specific staistical parameters."; 1696 leaf nr-in-updates { 1697 type uint32; 1698 } 1699 leaf nr-out-updates { 1700 type uint32; 1701 } 1702 } 1703 } 1704 } 1705 container prefix-lists { 1706 description 1707 "Contains all prefix lists defined 1708 on a router."; 1709 list prefix-list { 1710 key "prefix-list-name"; 1711 description 1712 "A prefix list."; 1713 leaf prefix-list-name { 1714 type string; 1715 } 1716 container prefixes { 1717 list prefix { 1718 key "seq-nr"; 1719 description 1720 "A prefix is a rule with a BGP filter. 1721 The left hand side of the rule is the prefix filter. 1723 It specifies a set of IP addresses. 1724 If a BGP announcement contains an address that matches, the 1725 rule is applied. The right hand side of the rule specifies 1726 the action that is to be applied."; 1727 leaf seq-nr { 1728 type uint16; 1729 description 1730 "Sequence number of the rule. 1731 The sequence number is included for compatibility purposes 1732 with CLI; from a machine-to-machine interface perspective, 1733 it would strictly speaking not be required as list elements 1734 can be arranged in a particular order."; 1735 } 1736 container prefix-filter { 1737 choice ip-address-group { 1738 case ip-address { 1739 leaf ip-address { 1740 type inet:ip-address; 1741 mandatory true; 1742 } 1743 } 1744 case prefix { 1745 leaf prefix { 1746 type inet:ip-prefix; 1747 mandatory true; 1748 } 1749 } 1750 case host { 1751 leaf ip-host-address { 1752 type inet:host; 1753 mandatory true; 1754 } 1755 } 1756 case ip-range { 1757 leaf lower { 1758 type inet:ip-address; 1759 } 1760 leaf upper { 1761 type inet:ip-address; 1762 } 1763 } 1764 } 1765 leaf action { 1766 type actions-enum; 1767 mandatory true; 1768 description 1769 "permit/deny action"; 1770 } 1771 container statistics { 1772 leaf prefix-hit-count { 1773 type uint32; 1774 config false; 1775 } 1776 } 1777 } 1778 } 1779 } 1780 } 1781 } 1782 } 1783 1785 5. IANA Considerations 1787 6. Security Considerations 1789 The transport protocol used for sending the BGP data MUST support 1790 authentication and SHOULD support encryption. The data-model by 1791 itself does not create any security implications. 1793 This draft does not change any underlying security issues inherent in 1794 [I-D.ietf-netmod-routing-cfg]. 1796 7. Acknowledgements 1798 The authors would like to thank the reviewers of this document for 1799 their comments. 1801 8. References 1803 8.1. Normative References 1805 [I-D.ietf-netmod-routing-cfg] 1806 Lhotka, L., "A YANG Data Model for Routing Management", 1807 draft-ietf-netmod-routing-cfg-15 (work in progress), May 1808 2014. 1810 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1811 Requirement Levels", BCP 14, RFC 2119, March 1997. 1813 [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, 1814 June 1999. 1816 [RFC2842] Chandra, R. and J. Scudder, "Capabilities Advertisement 1817 with BGP-4", RFC 2842, May 2000. 1819 [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC 1820 Text on Security Considerations", BCP 72, RFC 3552, July 1821 2003. 1823 [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway 1824 Protocol 4 (BGP-4)", RFC 4271, January 2006. 1826 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 1827 Networks (VPNs)", RFC 4364, February 2006. 1829 [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, 1830 "Multiprotocol Extensions for BGP-4", RFC 4760, January 1831 2007. 1833 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 1834 Network Configuration Protocol (NETCONF)", RFC 6020, 1835 October 2010. 1837 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. 1838 Bierman, "Network Configuration Protocol (NETCONF)", RFC 1839 6241, June 2011. 1841 8.2. Informative References 1843 [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement 1844 with BGP-4", RFC 5492, February 2009. 1846 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 1847 Management", RFC 7223, May 2014. 1849 Authors' Addresses 1851 Aleksandr Zhdankin 1852 Cisco 1853 170 W. Tasman Drive 1854 San Jose, CA 95134 1855 USA 1857 Email: azhdanki@cisco.com 1859 Keyur Patel 1860 Cisco 1861 170 W. Tasman Drive 1862 San Jose, CA 95134 1863 USA 1865 Email: keyupate@cisco.com 1866 Alexander Clemm 1867 Cisco 1868 170 W. Tasman Drive 1869 San Jose, CA 95134 1870 USA 1872 Email: alex@cisco.com