| submodule openconfig-bgp-common-multiprotocol { |
| |
| belongs-to openconfig-bgp { |
| prefix "oc-bgp"; |
| } |
| |
| import openconfig-extensions { prefix oc-ext; } |
| import openconfig-bgp-types { prefix oc-bgp-types; } |
| import openconfig-routing-policy { prefix oc-rpol; } |
| import openconfig-types { prefix oc-types; } |
| |
| include openconfig-bgp-common; |
| |
| // meta |
| organization |
| "OpenConfig working group"; |
| |
| contact |
| "OpenConfig working group |
| netopenconfig@googlegroups.com"; |
| |
| description |
| "This sub-module contains groupings that are related to support |
| for multiple protocols in BGP. The groupings are common across |
| multiple contexts."; |
| |
| 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-common-mp-afi-safi-graceful-restart-config { |
| description |
| "BGP graceful restart parameters that apply on a per-AFI-SAFI |
| basis"; |
| |
| leaf enabled { |
| type boolean; |
| default false; |
| description |
| "This leaf indicates whether graceful-restart is enabled for |
| this AFI-SAFI"; |
| } |
| } |
| |
| grouping bgp-common-mp-afi-safi-config { |
| description |
| "Configuration parameters used for all BGP AFI-SAFIs"; |
| |
| leaf afi-safi-name { |
| type identityref { |
| base oc-bgp-types:AFI_SAFI_TYPE; |
| } |
| description "AFI,SAFI"; |
| } |
| |
| leaf enabled { |
| type boolean; |
| default false; |
| description |
| "This leaf indicates whether the IPv4 Unicast AFI,SAFI is |
| enabled for the neighbour or group"; |
| } |
| } |
| |
| grouping bgp-common-mp-all-afi-safi-list-contents { |
| description |
| "A common grouping used for contents of the list that is used |
| for AFI-SAFI entries"; |
| |
| // import and export policy included for the afi/safi |
| uses oc-rpol:apply-policy-group; |
| |
| 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; |
| } |
| |
| // Groupings relating to each address family |
| grouping bgp-common-mp-ipv4-unicast-group { |
| description |
| "Group for IPv4 Unicast configuration options"; |
| |
| container ipv4-unicast { |
| when "../afi-safi-name = 'oc-bgp-types:IPV4_UNICAST'" { |
| description |
| "Include this container for IPv4 Unicast specific |
| configuration"; |
| } |
| |
| description "IPv4 unicast configuration options"; |
| |
| // include common IPv[46] unicast options |
| uses bgp-common-mp-ipv4-ipv6-unicast-common; |
| |
| // placeholder for IPv4 unicast specific configuration |
| } |
| } |
| |
| grouping bgp-common-mp-ipv6-unicast-group { |
| description |
| "Group for IPv6 Unicast configuration options"; |
| |
| container ipv6-unicast { |
| when "../afi-safi-name = 'oc-bgp-types:IPV6_UNICAST'" { |
| description |
| "Include this container for IPv6 Unicast specific |
| configuration"; |
| } |
| |
| description "IPv6 unicast configuration options"; |
| |
| // include common IPv[46] unicast options |
| uses bgp-common-mp-ipv4-ipv6-unicast-common; |
| |
| // placeholder for IPv6 unicast specific configuration |
| // options |
| } |
| } |
| |
| grouping bgp-common-mp-ipv4-labeled-unicast-group { |
| description |
| "Group for IPv4 Labeled Unicast configuration options"; |
| |
| container ipv4-labeled-unicast { |
| when "../afi-safi-name = 'oc-bgp-types:IPV4_LABELED_UNICAST'" { |
| description |
| "Include this container for IPv4 Labeled Unicast specific |
| configuration"; |
| } |
| |
| description "IPv4 Labeled Unicast configuration options"; |
| |
| uses bgp-common-mp-all-afi-safi-common; |
| |
| // placeholder for IPv4 Labeled Unicast specific config |
| // options |
| } |
| } |
| |
| grouping bgp-common-mp-ipv6-labeled-unicast-group { |
| description |
| "Group for IPv6 Labeled Unicast configuration options"; |
| |
| container ipv6-labeled-unicast { |
| when "../afi-safi-name = 'oc-bgp-types:IPV6_LABELED_UNICAST'" { |
| description |
| "Include this container for IPv6 Labeled Unicast specific |
| configuration"; |
| } |
| |
| description "IPv6 Labeled Unicast configuration options"; |
| |
| uses bgp-common-mp-all-afi-safi-common; |
| |
| // placeholder for IPv6 Labeled Unicast specific config |
| // options. |
| } |
| } |
| |
| grouping bgp-common-mp-l3vpn-ipv4-unicast-group { |
| description |
| "Group for IPv4 Unicast L3VPN configuration options"; |
| |
| container l3vpn-ipv4-unicast { |
| when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV4_UNICAST'" { |
| description |
| "Include this container for IPv4 Unicast L3VPN specific |
| configuration"; |
| } |
| |
| description "Unicast IPv4 L3VPN configuration options"; |
| |
| // include common L3VPN configuration options |
| uses bgp-common-mp-l3vpn-ipv4-ipv6-unicast-common; |
| |
| // placeholder for IPv4 Unicast L3VPN specific config options. |
| } |
| } |
| |
| grouping bgp-common-mp-l3vpn-ipv6-unicast-group { |
| description |
| "Group for IPv6 Unicast L3VPN configuration options"; |
| |
| container l3vpn-ipv6-unicast { |
| when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV6_UNICAST'" { |
| description |
| "Include this container for unicast IPv6 L3VPN specific |
| configuration"; |
| } |
| |
| description "Unicast IPv6 L3VPN configuration options"; |
| |
| // include common L3VPN configuration options |
| uses bgp-common-mp-l3vpn-ipv4-ipv6-unicast-common; |
| |
| // placeholder for IPv6 Unicast L3VPN specific configuration |
| // options |
| } |
| } |
| |
| grouping bgp-common-mp-l3vpn-ipv4-multicast-group { |
| description |
| "Group for IPv4 L3VPN multicast configuration options"; |
| |
| container l3vpn-ipv4-multicast { |
| when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV4_MULTICAST'" { |
| description |
| "Include this container for multicast IPv6 L3VPN specific |
| configuration"; |
| } |
| |
| description "Multicast IPv4 L3VPN configuration options"; |
| |
| // include common L3VPN multicast options |
| uses bgp-common-mp-l3vpn-ipv4-ipv6-multicast-common; |
| |
| // placeholder for IPv4 Multicast L3VPN specific configuration |
| // options |
| } |
| } |
| |
| grouping bgp-common-mp-l3vpn-ipv6-multicast-group { |
| description |
| "Group for IPv6 L3VPN multicast configuration options"; |
| |
| container l3vpn-ipv6-multicast { |
| when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV6_MULTICAST'" { |
| description |
| "Include this container for multicast IPv6 L3VPN specific |
| configuration"; |
| } |
| |
| description "Multicast IPv6 L3VPN configuration options"; |
| |
| // include common L3VPN multicast options |
| uses bgp-common-mp-l3vpn-ipv4-ipv6-multicast-common; |
| |
| // placeholder for IPv6 Multicast L3VPN specific configuration |
| // options |
| } |
| } |
| |
| grouping bgp-common-mp-l2vpn-vpls-group { |
| description |
| "Group for BGP-signalled VPLS configuration options"; |
| |
| container l2vpn-vpls { |
| when "../afi-safi-name = 'oc-bgp-types:L2VPN_VPLS'" { |
| description |
| "Include this container for BGP-signalled VPLS specific |
| configuration"; |
| } |
| |
| description "BGP-signalled VPLS configuration options"; |
| |
| // include common L2VPN options |
| uses bgp-common-mp-l2vpn-common; |
| |
| // placeholder for BGP-signalled VPLS specific configuration |
| // options |
| } |
| } |
| |
| grouping bgp-common-mp-l2vpn-evpn-group { |
| description |
| "Group for BGP EVPN configuration options"; |
| |
| container l2vpn-evpn { |
| when "../afi-safi-name = 'oc-bgp-types:L2VPN_EVPN'" { |
| description |
| "Include this container for BGP EVPN specific |
| configuration"; |
| } |
| |
| description "BGP EVPN configuration options"; |
| |
| // include common L2VPN options |
| uses bgp-common-mp-l2vpn-common; |
| |
| // placeholder for BGP EVPN specific configuration options |
| } |
| } |
| |
| // Common groupings across multiple AFI,SAFIs |
| grouping bgp-common-mp-all-afi-safi-common { |
| description |
| "Grouping for configuration common to all AFI,SAFI"; |
| |
| container prefix-limit { |
| description |
| "Configure the maximum number of prefixes that will be |
| accepted from a peer"; |
| |
| container config { |
| description |
| "Configuration parameters relating to the prefix |
| limit for the AFI-SAFI"; |
| uses bgp-common-mp-all-afi-safi-common-prefix-limit-config; |
| } |
| |
| container state { |
| config false; |
| description |
| "State information relating to the prefix-limit for the |
| AFI-SAFI"; |
| uses bgp-common-mp-all-afi-safi-common-prefix-limit-config; |
| } |
| } |
| } |
| |
| grouping bgp-common-mp-ipv4-ipv6-unicast-common { |
| description |
| "Common configuration that is applicable for IPv4 and IPv6 |
| unicast"; |
| |
| // include common afi-safi options. |
| uses bgp-common-mp-all-afi-safi-common; |
| |
| // configuration options that are specific to IPv[46] unicast |
| container config { |
| description |
| "Configuration parameters for common IPv4 and IPv6 unicast |
| AFI-SAFI options"; |
| uses bgp-common-mp-ipv4-ipv6-unicast-common-config; |
| } |
| container state { |
| config false; |
| description |
| "State information for common IPv4 and IPv6 unicast |
| parameters"; |
| uses bgp-common-mp-ipv4-ipv6-unicast-common-config; |
| } |
| } |
| |
| grouping bgp-common-mp-l3vpn-ipv4-ipv6-unicast-common { |
| description |
| "Common configuration applied across L3VPN for IPv4 |
| and IPv6"; |
| |
| // placeholder -- specific configuration options that are generic |
| // across IPv[46] unicast address families. |
| uses bgp-common-mp-all-afi-safi-common; |
| } |
| |
| grouping bgp-common-mp-l3vpn-ipv4-ipv6-multicast-common { |
| description |
| "Common configuration applied across L3VPN for IPv4 |
| and IPv6"; |
| |
| // placeholder -- specific configuration options that are |
| // generic across IPv[46] multicast address families. |
| uses bgp-common-mp-all-afi-safi-common; |
| } |
| |
| grouping bgp-common-mp-l2vpn-common { |
| description |
| "Common configuration applied across L2VPN address |
| families"; |
| |
| // placeholder -- specific configuration options that are |
| // generic across L2VPN address families |
| uses bgp-common-mp-all-afi-safi-common; |
| } |
| |
| // Config groupings for common groups |
| grouping bgp-common-mp-all-afi-safi-common-prefix-limit-config { |
| description |
| "Configuration parameters relating to prefix-limits for an |
| AFI-SAFI"; |
| |
| leaf max-prefixes { |
| type uint32; |
| description |
| "Maximum number of prefixes that will be accepted |
| from the neighbour"; |
| } |
| |
| leaf prevent-teardown { |
| type boolean; |
| default false; |
| description |
| "Do not tear down the BGP session when the maximum |
| prefix limit is exceeded, but rather only log a |
| warning. The default of this leaf is false, such |
| that when it is not specified, the session is torn |
| down."; |
| } |
| |
| leaf shutdown-threshold-pct { |
| type oc-types:percentage; |
| description |
| "Threshold on number of prefixes that can be received |
| from a neighbour before generation of warning messages |
| or log entries. Expressed as a percentage of |
| max-prefixes"; |
| } |
| |
| leaf restart-timer { |
| type decimal64 { |
| fraction-digits 2; |
| } |
| units "seconds"; |
| description |
| "Time interval in seconds after which the BGP session |
| is re-established after being torn down due to exceeding |
| the max-prefix limit."; |
| } |
| } |
| |
| grouping bgp-common-mp-ipv4-ipv6-unicast-common-config { |
| description |
| "Common configuration parameters for IPv4 and IPv6 Unicast |
| address families"; |
| |
| leaf send-default-route { |
| type boolean; |
| default "false"; |
| description |
| "If set to true, send the default-route to the neighbour(s)"; |
| } |
| } |
| } |