diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-bgp-global.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-bgp-global.yang | 389 |
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; + } + +} |