blob: a6fa8cd928c504167cb0fad8af07230ae401e480 [file] [log] [blame]
submodule openconfig-bgp-global {
belongs-to openconfig-bgp {
prefix "oc-bgp";
}
import openconfig-extensions { prefix oc-ext; }
import openconfig-yang-types { prefix oc-yang; }
import openconfig-inet-types { prefix oc-inet; }
// Include common submodules
include openconfig-bgp-common;
include openconfig-bgp-common-multiprotocol;
include openconfig-bgp-peer-group;
include openconfig-bgp-common-structure;
// meta
organization
"OpenConfig working group";
contact
"OpenConfig working group
netopenconfig@googlegroups.com";
description
"This sub-module contains groupings that are specific to the
global context of the OpenConfig BGP module";
oc-ext:openconfig-version "4.0.1";
revision "2017-07-30" {
description
"Clarification of add-paths send-max leaf";
reference "4.0.1";
}
revision "2017-07-10" {
description
"Add error notifications; moved add-paths config; add AS
prepend policy features; removed unneeded config leaves";
reference "4.0.0";
}
revision "2017-02-02" {
description
"Bugfix to remove remaining global-level policy data";
reference "3.0.1";
}
revision "2017-01-26" {
description
"Add dynamic neighbor support, migrate to OpenConfig types";
reference "3.0.0";
}
revision "2016-06-21" {
description
"OpenConfig BGP refactor";
reference "2.1.1";
}
grouping bgp-global-config {
description
"Global configuration options for the BGP router.";
leaf as {
type oc-inet:as-number;
mandatory true;
description
"Local autonomous system number of the router. Uses
the 32-bit as-number type from the model in RFC 6991.";
}
leaf router-id {
type oc-yang:dotted-quad;
description
"Router id of the router - an unsigned 32-bit integer
expressed in dotted quad notation.";
reference
"RFC4271 - A Border Gateway Protocol 4 (BGP-4),
Section 4.2";
}
}
grouping bgp-global-state {
description
"Operational state parameters for the BGP neighbor";
uses bgp-common-state;
}
grouping bgp-global-default-route-distance-config {
description
"Configuration options relating to the administrative distance
(or preference) assigned to routes received from different
sources (external, internal, and local).";
leaf external-route-distance {
type uint8 {
range "1..255";
}
description
"Administrative distance for routes learned from external
BGP (eBGP).";
}
leaf internal-route-distance {
type uint8 {
range "1..255";
}
description
"Administrative distance for routes learned from internal
BGP (iBGP).";
}
}
grouping bgp-global-confederation-config {
description
"Configuration options specifying parameters when the local
router is within an autonomous system which is part of a BGP
confederation.";
leaf identifier {
type oc-inet:as-number;
description
"Confederation identifier for the autonomous system.
Setting the identifier indicates that the local-AS is part
of a BGP confederation.";
}
leaf-list member-as {
type oc-inet:as-number;
description
"Remote autonomous systems that are to be treated
as part of the local confederation.";
}
}
grouping bgp-global-dynamic-neighbors {
description
"Grouping containing configuration relating to dynamic peers.";
container dynamic-neighbor-prefixes {
description
"A list of IP prefixes from which the system should:
- Accept connections to the BGP daemon
- Dynamically configure a BGP neighbor corresponding to the
source address of the remote system, using the parameters
of the specified peer-group.
For such neighbors, an entry within the neighbor list should
be created, indicating that the peer was dynamically
configured, and referencing the peer-group from which the
configuration was derived.";
list dynamic-neighbor-prefix {
key "prefix";
description
"An individual prefix from which dynamic neighbor
connections are allowed.";
leaf prefix {
type leafref {
path "../config/prefix";
}
description
"Reference to the IP prefix from which source connections
are allowed for the dynamic neighbor group.";
}
container config {
description
"Configuration parameters relating to the source prefix
for the dynamic BGP neighbor connections.";
uses bgp-global-dynamic-neighbor-config;
}
container state {
config false;
description
"Operational state parameters relating to the source
prefix for the dynamic BGP neighbor connections.";
uses bgp-global-dynamic-neighbor-config;
}
}
}
}
grouping bgp-global-dynamic-neighbor-config {
description
"Configuration parameters relating to an individual prefix from
which dynamic neighbors are accepted.";
leaf prefix {
type oc-inet:ip-prefix;
description
"The IP prefix within which the source address of the remote
BGP speaker must fall to be considered eligible to the
dynamically configured."; }
leaf peer-group {
type leafref {
// At bgp/global/dynamic-neighbor-prefixes/dynamic-neighbor
// prefix/config/peer-group
path "../../../../../peer-groups/peer-group/config/" +
"peer-group-name";
}
description
"The peer-group within which the dynamic neighbor will be
configured. The configuration parameters used for the dynamic
neighbor are those specified within the referenced peer
group.";
}
}
grouping bgp-global-mp-all-afi-safi-list-contents {
description
"A grouping used for contents of the list of AFI-SAFI
entries at the global BGP level.";
// import and export policy included for the afi/safi
uses bgp-common-mp-ipv4-unicast-group;
uses bgp-common-mp-ipv6-unicast-group;
uses bgp-common-mp-ipv4-labeled-unicast-group;
uses bgp-common-mp-ipv6-labeled-unicast-group;
uses bgp-common-mp-l3vpn-ipv4-unicast-group;
uses bgp-common-mp-l3vpn-ipv6-unicast-group;
uses bgp-common-mp-l3vpn-ipv4-multicast-group;
uses bgp-common-mp-l3vpn-ipv6-multicast-group;
uses bgp-common-mp-l2vpn-vpls-group;
uses bgp-common-mp-l2vpn-evpn-group;
}
grouping bgp-global-afi-safi-list {
description
"List of address-families associated with the BGP instance";
list afi-safi {
key "afi-safi-name";
description
"AFI,SAFI configuration available for the
neighbour or group";
leaf afi-safi-name {
type leafref {
path "../config/afi-safi-name";
}
description
"Reference to the AFI-SAFI name used as a key
for the AFI-SAFI list";
}
container config {
description
"Configuration parameters for the AFI-SAFI";
uses bgp-common-mp-afi-safi-config;
}
container state {
config false;
description
"State information relating to the AFI-SAFI";
uses bgp-common-mp-afi-safi-config;
uses bgp-common-state;
}
container graceful-restart {
description
"Parameters relating to BGP graceful-restart";
container config {
description
"Configuration options for BGP graceful-restart";
uses bgp-common-mp-afi-safi-graceful-restart-config;
}
container state {
config false;
description
"State information for BGP graceful-restart";
uses bgp-common-mp-afi-safi-graceful-restart-config;
}
}
uses bgp-common-route-selection-options;
uses bgp-common-global-group-use-multiple-paths;
uses bgp-common-structure-neighbor-group-add-paths;
uses bgp-global-mp-all-afi-safi-list-contents;
}
}
// Structural groupings
grouping bgp-global-base {
description
"Global configuration parameters for the BGP router";
container config {
description
"Configuration parameters relating to the global BGP router";
uses bgp-global-config;
}
container state {
config false;
description
"State information relating to the global BGP router";
uses bgp-global-config;
uses bgp-global-state;
}
container default-route-distance {
description
"Administrative distance (or preference) assigned to
routes received from different sources
(external, internal, and local).";
container config {
description
"Configuration parameters relating to the default route
distance";
uses bgp-global-default-route-distance-config;
}
container state {
config false;
description
"State information relating to the default route distance";
uses bgp-global-default-route-distance-config;
}
}
container confederation {
description
"Parameters indicating whether the local system acts as part
of a BGP confederation";
container config {
description
"Configuration parameters relating to BGP confederations";
uses bgp-global-confederation-config;
}
container state {
config false;
description
"State information relating to the BGP confederations";
uses bgp-global-confederation-config;
}
}
container graceful-restart {
description
"Parameters relating the graceful restart mechanism for BGP";
container config {
description
"Configuration parameters relating to graceful-restart";
uses bgp-common-graceful-restart-config;
}
container state {
config false;
description
"State information associated with graceful-restart";
uses bgp-common-graceful-restart-config;
}
}
uses bgp-common-global-group-use-multiple-paths;
uses bgp-common-route-selection-options;
container afi-safis {
description
"Address family specific configuration";
uses bgp-global-afi-safi-list;
}
uses bgp-global-dynamic-neighbors;
}
}