summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-bgp-global.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-bgp-global.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-global.yang389
1 files changed, 389 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-global.yang b/src/plugins/yang/openconfig/openconfig-bgp-global.yang
new file mode 100644
index 0000000..643fba1
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-bgp-global.yang
@@ -0,0 +1,389 @@
+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 "5.0.1";
+
+ revision "2018-08-20" {
+ description
+ "Correct description of AFI-SAFI enabled leaf.";
+ reference "5.0.1";
+ }
+
+ revision "2018-04-11" {
+ description
+ "Correct naming of BGP maximum prefix warning percentage leaf.";
+ reference "5.0.0";
+ }
+
+ revision "2018-03-20" {
+ description
+ "Added SR-TE policy SAFI";
+ reference "4.1.0";
+ }
+
+ 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;
+ uses bgp-common-mp-srte-policy-ipv4-group;
+ uses bgp-common-mp-srte-policy-ipv6-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;
+ }
+
+}