| 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; |
| } |
| |
| } |