This module contains a collection of YANG definitions for Cisco IOS-XR ipv4-bgp package configuration. This model is deprecated...
Version: 2021-03-05
module Cisco-IOS-XR-ipv4-bgp-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-cfg"; prefix ipv4-bgp-cfg; import ietf-inet-types { prefix inet; } import Cisco-IOS-XR-types { prefix xr; } import cisco-semver { prefix semver; } import Cisco-IOS-XR-ipv4-bgp-datatypes { prefix dt1; } import Cisco-IOS-XR-infra-rsi-cfg { prefix a1; } import Cisco-IOS-XR-snmp-agent-cfg { prefix a2; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 West Tasman Drive San Jose, CA 95134 Tel: +1 800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for Cisco IOS-XR ipv4-bgp package configuration. This model is deprecated and is replaced by Cisco-IOS-XR-um-router-bgp-cfg.yang which will provide the compatible functionalities. This module contains definitions for the following management objects: asn-format: Autonomous system number format bgp: BGP configuration commands bmp-server-all: BGP BMP Server Common Configuration bmp-servers: BGP BMP Server Configuration This YANG module augments the Cisco-IOS-XR-infra-rsi-cfg, Cisco-IOS-XR-snmp-agent-cfg modules with configuration data. Copyright (c) 2013-2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-03-05" { description "Deprecated Hidden commands 2021-03-05 Added SR Policy Path Prefernce CLI 2021-02-07 Add config to include cluster-list-length in multipath criteria 2020-12-07 cli/default behavior change for Soft NextHop Validation and Metric 2020-12-01 Added best-external advertise config limited to labeled-unicast 2020-10-27 BGP change dual-mode configure cli 2020-10-09 Changed RPKI password type to Proprietary 2020-10-04 Added Soft NextHop Validation and Metric 2020-07-21 BGP MIB cfg model has been updated to allow only one of updown or enable options"; } revision "2020-06-16" { description "Fixing various spellings/typos in descriptions 2020-05-13 Support large values for BGP RPKI purge timeout. 2020-01-29 Enhancement for OC BFD augmentation in OC BGP. 2019-10-31 Added mandatory nodes and presence containers."; } revision "2019-08-31" { description "Fixing revision error in module. 2019-05-12 Deprecated the native model, replaced by UM model."; } revision "2019-04-05" { description "Establish semantic version baseline."; } revision "2018-06-15" { description "Allow min..max in range when min == max."; } revision "2018-01-18" { description "Added AO option for neighbor"; } revision "2017-11-05" { description "Corrected boolean values in when statements."; } revision "2017-09-07" { description "Fixed type translation error."; } revision "2017-07-31" { description "Fixed missing augmentation from multiple MDA parent."; } revision "2017-06-26" { description "Change identifiers to be more readable."; } revision "2017-06-01" { description "Revision description string."; } revision "2017-05-01" { description "Fixing backward compatibility error in module."; } revision "2015-08-27" { description "IOS XR 5.3.2 revision."; } semver:module-version "4.0.0"; semver:module-version "3.0.0"; semver:module-version "2.0.0"; semver:module-version "1.0.0"; typedef Bgp-mvpn-sfs-select { type enumeration { enum "all-paths" { value 1; description "Select all paths as single forwarder PE"; } enum "highest-ip-address" { value 2; description "Select PE with highest address as single forwarder PE"; } } description "Bgp mvpn sfs select"; } typedef Bgp-nbrgr { type enumeration { enum "true" { value 0; description "NBR has enabled Graceful Restart capability"; } enum "false" { value 1; description "NBR has disabled Graceful Restart capability"; } } description "Bgp nbrgr"; } typedef Bmp-policy-select { type enumeration { enum "post-policy" { value 2; description "Pickup routes after policy application"; } } description "Bmp policy select"; } typedef Bgp-default-metric-range { type uint32 { range "0..4294967295"; } description "Bgp default metric range"; } typedef Bgp-ebgp-send-dmz-enable-mode { type enumeration { enum "disable" { value 0; description "Disable Mode - Prevent inheritance"; } enum "default" { value 1; description "Default Mode - Send dmz link bandwidth value to ebgp neighbor"; } enum "cumulative" { value 2; description "Strict Mode - Send cumulative dmz link bandwidth value to ebgp neighbor"; } } description "Bgp ebgp send dmz enable mode"; } typedef Bgp-rpki-binssrc { type enumeration { enum "interface" { value 0; description "Bind Source Interface"; } } description "Bgp rpki binssrc"; } typedef Bgp-signal { type enumeration { enum "bgp-disable" { value 1; description "Signalling BGP disable"; } enum "ldp-disable" { value 2; description "Signalling LDP disable"; } } description "Bgp signal"; } typedef Bgp-vrf-route-target { type enumeration { enum "as" { value 0; description "AS format RT"; } enum "ipv4-address" { value 1; description "IPv4 address format RT"; } enum "four-byte-as" { value 2; description "4-byte AS format RT"; } } description "Bgp vrf route target"; } typedef Bgp-rpki-time-config { type union { type enumeration { enum "off" { value 0; description "Turn off knob"; } } type uint32 { range "0..3600"; } } description "Bgp rpki time config"; } typedef Bgp-rnh-install-format { type enumeration { enum "ext-comm" { value 0; description "Install RNH as opaque and extcomm"; } enum "ext-comm-only" { value 1; description "Install RNH as extcomm only"; } } description "Bgp rnh install format"; } typedef Bgp-bfd-enable-mode { type enumeration { enum "disable" { value 0; description "Disable Mode - Prevent inheritance"; } enum "default" { value 1; description "Default Mode - Default BFD behavior"; } enum "strict" { value 2; description "Strict Mode - Hold down adj until BFD session up"; } } description "Bgp bfd enable mode"; } typedef Bgp-upd-dynamic { type enumeration { enum "bgp-dynamic-split-enable" { value 0; description "Enable splitting"; } enum "bgp-dynamic-split-disable" { value 1; description "Disable splitting"; } enum "bgp-dynamic-split-permanent" { value 2; description "Permanent splitting"; } } description "Bgp upd dynamic"; } typedef Route-target-as-index { type uint32 { range "0..4294967295"; } description "Route target as index"; } typedef Bmp-route-direction { type enumeration { enum "inbound" { value 1; description "Pickup routes at inbound direction from peer"; } } description "Bmp route direction"; } typedef Bgp-send-mcast-attr-cfg { type enumeration { enum "enable" { value 1; description "Enable SendMcastAttr"; } enum "disable" { value 2; description "Disable SendMcastAttr"; } } description "Bgp send mcast attr cfg"; } typedef Bgp-aigp-cfg-poi { type enumeration { enum "pre-best-path" { value 1; description "AIGP Pre-bestpath POI"; } enum "igp-cost" { value 2; description "AIGP igp-cost POI"; } } description "Bgp aigp cfg poi"; } typedef Bgp-flowspec-validation-cfg { type enumeration { enum "enable" { value 1; description "Enable Flowspec validation"; } enum "disable" { value 2; description "Disable Flowspec validation"; } enum "redirect-nexhop-disable" { value 3; description "Disable Flowspec redirect nexthop validation"; } } description "Bgp flowspec validation cfg"; } typedef Bgp-orrafi { type enumeration { enum "bgp-ipv6orr" { value 0; description "IPv6 ORR AFI type"; } enum "bgp-ipv4orr" { value 1; description "IPv4 ORR AFI type"; } } description "Bgp orrafi"; } typedef Route-target-addr-index { type uint32 { range "0..65535"; } description "Route target addr index"; } typedef Bgp-rpki-soft-reconf-cfg { type enumeration { enum "rpki-default-option" { value 0; description "Behaviour independent of RPKI validation tests (Disabled)."; } enum "rpki-dropped-only" { value 1; description "Keep paths tested for RPKI in route-policy and dropped"; } enum "rpki-tested-only" { value 2; description "Keep RPKI paths tested in route-policy"; } } description "Bgp rpki soft reconf cfg"; } typedef Bgp-orf { type enumeration { enum "none" { value 0; description "No capability to send or receive"; } enum "receive" { value 1; description "Receive ORF capability"; } enum "send" { value 2; description "Send ORF capability"; } enum "both" { value 3; description "Send and receive ORF capability"; } } description "Bgp orf"; } typedef Bgp-asn { type enumeration { enum "as-plain" { value 1; description "AS plain format"; } enum "asdot" { value 2; description "AS dot format"; } } description "Bgp asn"; } typedef Bgp-rpki-transport { type enumeration { enum "tcp" { value 0; description "TCP Transport"; } enum "ssh" { value 1; description "SSH Transport"; } } description "Bgp rpki transport"; } typedef Bgp-reorg-opt { type enumeration { enum "bgp-cfg-adv" { value 1; description "Advertise translated routes"; } enum "bgp-cfg-adv-reorg" { value 2; description "Advertise Reorig routes"; } enum "bgp-cfg-adv-disable" { value 3; description "Disable adv of routes"; } enum "bgp-cfg-adv-local" { value 4; description "Advertise local routes"; } enum "bgp-cfg-adv-def-vrf-imp-disable" { value 5; description "Disable adv of Def VRF Imported routes"; } enum "bgp-cfg-adv-vrf-re-imp-disable" { value 6; description "Disable adv of VRF ReImported routes"; } enum "bgp-cfg-adv-vrf-evpn-re-imp-disable" { value 7; description "Disable adv of VRF EVPN extranet Imported routes"; } } description "Bgp reorg opt"; } typedef Bgp-af-encapsulation { type enumeration { enum "vx-lan" { value 1; description "VxLAN encapsulation type"; } enum "srv6" { value 2; description "SRv6 encapsulation type"; } } description "Bgp af encapsulation"; } typedef Bgp-aigp-cfg { type enumeration { enum "enable" { value 1; description "Enable AIGP"; } enum "disable" { value 2; description "Disable AIGP"; } } description "Bgp aigp cfg"; } typedef Bgp-route-distinguisher { type enumeration { enum "auto" { value 1; description "Automatically assigned"; } enum "as" { value 2; description "AS format RD"; } enum "four-byte-as" { value 3; description "4-byte AS format RD"; } enum "ipv4-address" { value 4; description "IPv4 address format RD"; } } description "Bgp route distinguisher"; } typedef Bgp-adv-rt { type enumeration { enum "bgp-regular-rt" { value 0; description "Regular RT type"; } enum "bgp-stitching-rt" { value 1; description "Stitching RT type"; } } description "Bgp adv rt"; } typedef Bgp-tcp-mode { type enumeration { enum "either" { value 0; description "Either active or passive mode"; } enum "active-only" { value 1; description "Active mode only"; } enum "passive-only" { value 2; description "Passive mode only"; } } description "Bgp tcp mode"; } typedef Bgp-site-of-origin { type enumeration { enum "as" { value 0; description "AS format SoO"; } enum "ipv4-address" { value 1; description "IPv4 address format SoO"; } enum "four-byte-as" { value 2; description "4-byte AS format SoO"; } } description "Bgp site of origin"; } typedef Bgp-cluster-id { type enumeration { enum "number" { value 1; description "Number"; } enum "ipv4-address" { value 2; description "IPv4 Address"; } } description "Bgp cluster id"; } typedef Bgp-global-extcomm-v4-addr-index { type uint32 { range "0..65535"; } description "Bgp global extcomm v4 addr index"; } typedef Bgp-global-extcomm-asn-index { type uint32 { range "0..4294967295"; } description "Bgp global extcomm asn index"; } typedef Bgp-global-route-distinguisher { type enumeration { enum "as" { value 2; description "AS format RD"; } enum "four-byte-as" { value 3; description "4-byte AS format RD"; } enum "ipv4-address" { value 4; description "IPv4 address format RD"; } } description "Bgp global route distinguisher"; } typedef Bgp-global-as-range { type uint32 { range "0..4294967295"; } description "Bgp global as range"; } leaf asn-format { type Bgp-asn; default "as-plain"; description "Autonomous system number format"; } container bgp { status deprecated; description "This model is deprecated and is replaced by Cisco-IOS-XR-um-router-bgp-cfg.yang which will provide the compatible functionalities. BGP configuration commands"; list instance { must "instance-as" { description "must be set."; } key "instance-name"; description "BGP instance configuration commands"; leaf instance-name { type xr:Cisco-ios-xr-string; description "Instance Name. For Default instance use - default"; } list instance-as { must "four-byte-as" { description "must be set."; } key "as"; description "Autonomous system"; leaf as { type dt1:Bgp-as-range; description "Higher 16 bits of 4-byte Autonomous system number"; } list four-byte-as { key "as"; description "4-byte Autonomous system"; container vrfs { description "VRF config"; list vrf { key "vrf-name"; description "VRF config"; container vrf-global { description "VRF attribute config"; container route-distinguisher { description "Route distinguisher"; leaf type { type Bgp-route-distinguisher; description "Type of RD"; } leaf as-xx { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as-index { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-extcomm-asn-index; description "ASN Index"; } leaf address { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type inet:ipv4-address-no-zone; description "IP address"; } leaf address-index { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type dt1:Bgp-extcomm-v4-addr-index; description "IP address index"; } } // container route-distinguisher container vrf-global-afs { description "Global VRF-specific configuration"; list vrf-global-af { key "af-name"; description "Global VRF AF-specific configuration"; container mvpn { description "MVPN configurations"; leaf single-forwarder-selection { type Bgp-mvpn-sfs-select; description "Select MVPN single forwarder selection"; } } // container mvpn container ebgp { presence "Indicates a ebgp node is configured."; description "Use eBGP multipaths"; leaf paths-value { type uint32 { range "2..32"; } mandatory true; description "Number of paths"; } leaf unequal-cost { type boolean; mandatory true; description "UNUSED"; } leaf selective { type boolean; mandatory true; description "Allow multipaths only from marked neighbors"; } leaf order-by-igp-metric { type boolean; mandatory true; description "Order candidate multipaths by IGP metric"; } } // container ebgp container eibgp { presence "Indicates a eibgp node is configured."; description "Use eiBGP multipaths"; leaf paths-value { type uint32 { range "2..32"; } mandatory true; description "Number of paths"; } leaf unequal-cost { type boolean; mandatory true; description "UNUSED"; } leaf selective { type boolean; mandatory true; description "Allow multipaths only from marked neighbors"; } leaf order-by-igp-metric { type boolean; mandatory true; description "Order candidate multipaths by IGP metric"; } } // container eibgp container ibgp { presence "Indicates a ibgp node is configured."; description "Use iBGP multipaths"; leaf paths-value { type uint32 { range "2..32"; } mandatory true; description "Number of paths"; } leaf unequal-cost { type boolean; mandatory true; description "Allow multipaths to have different IGP metrics"; } leaf selective { type boolean; mandatory true; description "Allow multipaths only from marked neighbors"; } leaf order-by-igp-metric { type boolean; mandatory true; description "Order candidate multipaths by IGP metric"; } } // container ibgp leaf mpls-alloc-enable { type boolean; description "MPLS alloc enable, use this for dual mode srv6 and mpls"; } leaf rt-download { type empty; description "Route-Target download configuration"; } leaf allow-vpn-default-originate { type boolean; description "TRUE to send default orig route to VPN neighborFALSE to not send default originate route "; } leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf rpki-origin-as-validation-enable { type empty; description "RPKI origin-AS validation enable"; } container aggregate-addresses { description "Configure BGP aggregate entries"; list aggregate-address { key "aggregate-addr aggregate-prefix"; description "Aggregate address configuration"; leaf aggregate-addr { type inet:ip-address; description "Aggregate in prefix/length format (address part)"; } leaf aggregate-prefix { type uint16 { range "0..128"; } description "Aggregate in prefix/length format (prefix part)"; } leaf generate-set-info { type boolean; description "TRUE to generate AS set path information, FALSE otherwise"; } leaf generate-confederation-set-info { type boolean; description "TRUE to generate AS confederation set path information, FALSE otherwise"; } leaf summary-only { type boolean; description "TRUE to filter more specific routes from updates, FALSEotherwise"; } leaf route-policy-name { type string; description "Route policy on which to condition advertisement, suppression, and attributes"; } } // list aggregate-address } // container aggregate-addresses leaf dynamic-med-interval { type uint32 { range "0..10"; } units "minute"; default "10"; description "Update generation delay (in minutes) after a MED change"; } leaf event-prefix-route-policy { type string; description "Route Policy to mark prefixes to be traced"; } container dampening { presence "enable dampening"; description "Enable route-flap dampening"; leaf half-life { type uint32 { range "1..45"; } units "minute"; description "Half-life time for the penalty (minutes)."; } leaf reuse-threshold { type uint32 { range "1..20000"; } description "Value to start reusing a route."; } leaf suppress-threshold { type uint32 { range "1..20000"; } description "Value to start suppressing a route."; } leaf suppress-time { type uint32 { range "1..255"; } units "second"; description "Maximum duration to suppress a stable route (seconds)."; } leaf route-policy-name { type string; description "Route policy to specify criteria for dampening. This cannot be specified if any other parameters are specified."; } } // container dampening leaf enable { type empty; description "Enable the address family. Deletion of this object causes deletion of all the objects under GlobalAF/VRFGlobalAF associated with this object ."; } container rip-routes { presence "enable rip-routes"; description "Redistribute RIP routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container rip-routes container lisp-routes { presence "enable lisp-routes"; description "Redistribute lisp routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container lisp-routes container static-routes { presence "enable static-routes"; description "Redistribute static routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container static-routes container distance { presence "Indicates a distance node is configured."; description "Define an administrative distance"; leaf external-routes { type uint32 { range "1..255"; } mandatory true; description "Distance for routes external to the AS"; } leaf internal-routes { type uint32 { range "1..255"; } mandatory true; description "Distance for routes internal to the AS"; } leaf local-routes { type uint32 { range "1..255"; } mandatory true; description "Distance for local routes"; } } // container distance leaf table-policy { type string; description "Configure policy for installation of routes to RIB"; } container application-routes { description "Redistribute information for Application routes."; list application-route { key "instance-name"; description "Redistribute application routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "OnePK application name"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list application-route } // container application-routes leaf attribute-download { type empty; description "Attribute download configuration"; } container label-mode { presence "enable label-mode"; description "BGP 6PE/MPLS-VPN label allocation mode"; leaf label-allocation-mode { type string; description "Label allocation mode: per-ce Set per CE label mode, per-vrf Set per VRF label mode, per-prefix Set per Prefix label mode (for MPLS-VPN only)"; } leaf route-policy-name { type string; description "Label mode route policy name"; } } // container label-mode container eigrp-routes { description "Redistribute information for EIGRP routes."; list eigrp-route { key "instance-name"; description "Redistribute EIGRP routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "EIGRP router tag"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf redist-type { type xr:Hex-integer; description "Redistribution type: 01 for internal routes, 02 for external routes, Logical combinations permitted."; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list eigrp-route } // container eigrp-routes container best-external { description "Enable Bestexternal config"; leaf enable { type boolean; description "TRUE to enable BE FALSE to disable BE inheritance from a parent"; } leaf labeled-unicast { type boolean; description "Limit Best-External to Labeled-Unicast"; } } // container best-external container sourced-networks { description "Specify a network to announce via BGP"; list sourced-network { key "network-addr network-prefix"; description "Sourced network configuration"; leaf network-addr { type inet:ip-address; description "Network in prefix/length format (address part)"; } leaf network-prefix { type uint16 { range "0..128"; } description "Network in prefix/length format (prefix part)"; } leaf backdoor { type boolean; description "Specify a BGP backdoor route, default is FALSE"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list sourced-network } // container sourced-networks leaf rpki-origin-as-validity-signal-ibgp { type empty; description "RPKI origin-AS validity signal ibgp"; } container connected-routes { presence "enable connected-routes"; description "Redistribute connected routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container connected-routes leaf additional-paths-receive { type dt1:Bgp-af-additional-paths-cfg; description "Advertise additional paths Receive capability"; } leaf permanent-network { type string; description "Route policy for permanent networks"; } leaf rpki-bestpath-use-origin-as-validity { type empty; description "RPKI bestpath use origin-AS validity"; } container allocate-label { presence "enable allocate-label"; description "Label allocation policy"; leaf all { type boolean; description "Whether all nets should be labeled, default is FALSE"; } leaf route-policy-name { type string; description "Route policy name"; } leaf un-labeled-path { type boolean; must "../all or ../route-policy-name"; description "Allocate label for unlabeled paths too"; } } // container allocate-label container additional-paths-selection { description "Configure additional paths selection"; leaf selection { type dt1:Bgp-af-additional-paths-cfg; description "Enable/disable selection "; } leaf route-policy-name { type string; description "Route policy for selection"; } } // container additional-paths-selection leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf next-hop-resolution-prefix-length-minimum { type uint32 { range "0..128"; } default "0"; description "Minimum prefix-length for nexthop resolution"; } leaf reset-weight-on-import { type boolean; description "TRUE to reset weight on import. FALSE to not reset and to prevent inheritance from a parent"; } container ospf-routes { description "Redistribute information for OSPF routes."; list ospf-route { key "instance-name"; description "Redistribute OSPF routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "OSPF router tag"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf redist-type { type xr:Hex-integer; description "Redistribution type: 01 for internal routes, 02 for external routes of type 1, 04 for external routes of type 2, 08 for NSSA external routes of type 1, 10 for NSSA external routes of type 2, 20 for external routes, 40 for NSSA external routes. Logical combinations permitted."; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list ospf-route } // container ospf-routes leaf additional-paths-send { type dt1:Bgp-af-additional-paths-cfg; description "Advertise additional paths Send capability"; } container optimal-route-reflection-group-applies { description "Table of multiple ORR groups"; list optimal-route-reflection-group-apply { key "group-name"; description "Optimal Route Reffelction group. Each such group is equivalent to an IGP area"; leaf group-name { type xr:Cisco-ios-xr-string; description "Name of the ORR group"; } } // list optimal-route-reflection-group-apply } // container optimal-route-reflection-group-applies leaf advertise-local-labeled-route-safi-unicast { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label via Unicast SAFI"; } container mobile-routes { presence "enable mobile-routes"; description "Redistribute mobile routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container mobile-routes leaf disable-as-path-loop-check { type empty; description "Disable outbound AS Path loop check"; } leaf next-hop-resolution-prefix-length-minimum-ipv6 { type uint32 { range "0..128"; } default "0"; description "Minimum prefix-length for nexthop resolution"; } container optimal-route-reflection-groups { description "Table of multiple ORR Groups"; list optimal-route-reflection-group { key "group-name"; description "Optimal Route Reffelction group. Each such group is equivalent to an IGP area"; leaf group-name { type xr:Cisco-ios-xr-string; description "Name of the ORR group"; } leaf primary-root-address { type inet:ip-address-no-zone; description "Primary Root for the ORR group"; } leaf secondary-root-address { type inet:ip-address-no-zone; description "Secondary Root for the ORR group"; } leaf tertiary-root-address { type inet:ip-address-no-zone; description "Tertiary Root for the ORR group"; } } // list optimal-route-reflection-group } // container optimal-route-reflection-groups container subscriber-routes { presence "enable subscriber-routes"; description "Redistribute subscriber routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container subscriber-routes container segment-routing { description "Segment-routing Configurations"; container srv6 { description "SRv6 Configurations"; leaf enable { type empty; description "Enable SRv6 configuration submode"; } leaf srv6sid-allocation-mode { type string; description "SID allocation mode: per-ce Set per CE SID mode,per-vrf Set per VRF SID mode"; } leaf locator-name { type string; description "Configure Locator name for SID allocation"; } } // container srv6 } // container segment-routing } // list vrf-global-af } // container vrf-global-afs leaf exists { type empty; description "Create this VRF. Deletion of this object causes deletion of all the objects under VRF associated with this object."; } leaf router-id { type inet:ipv4-address-no-zone; default "0.0.0.0"; description "Configure Router-id"; } leaf slow-peer-detection-disable { type empty; description "Disable slow peer detection."; } leaf disable-enforce-first-as { type empty; description "Disable enforce the first AS for EBGP routes"; } leaf best-path-cost-community { type empty; description "Change default route selection criteria to ignore cost community comparison"; } leaf best-path-aigp-ignore { type empty; description "Change default route selection criteria to ignore AIGP unless both paths whichare compared have AIGP attribute"; } leaf best-path-igp-metric-sr-policy { type empty; description "Enable BGP next-hop metric inheritance from SR policy"; } leaf next-hop-val-srte { type empty; description "Enable BGP next-hop SR Policy reachability validation for Extcom color paths"; } leaf best-path-as-path-length { type empty; description "Change default route selection criteria to ignore AS path length"; } leaf next-hop-val-disable { type empty; description "Disable BGP next-hop RIB reachability validation for Extcomm color paths"; } leaf igp-redist-internal { type empty; description "Allow redistribution of iBGP into IGPs (dangerous)"; } leaf multi-path-as-path-ignore-onwards { type empty; description "Change default multi-route selection criteria to ignore everything onwards as-path check"; } leaf disable-fast-external-fallover { type empty; description "Disable immediate reset session if a link to a directly connected external peer goes down"; } leaf unsafe-ebgp-policy { type empty; description "If eBGP neighbor is configured without a route-policy,the routes from that neighbor are not accepted by default.This knob overrides the default behavior. When configured,routes from the eBGP neighbors with no policy are accepted."; } leaf default-metric { type uint32 { range "1..4294967295"; } description "Default redistributed metric"; } leaf default-info-originate { type empty; description "Control distribution of default information"; } leaf rpki-origin-as-validity-signal-ibgp { type empty; description "RPKI origin-AS validity signal ibgp"; } leaf rpki-bestpath-use-origin-as-validity { type empty; description "RPKI bestpath use origin-AS validity"; } leaf best-path-confederation-paths { type empty; description "Change default route selection criteria and allow the comparing of MED among confederation paths"; } leaf best-path-as-multipath-relax { type empty; description "Change default multi-route selection criteria to relax as-path checking - only require same aspath length"; } container mpls-activated-interfaces { description "Configure list of MPLS activated interfaces"; list mpls-activated-interface { key "interface-name"; description "Configure a MPLS activated interface"; leaf interface-name { type xr:Interface-name; description "Interface Name"; } } // list mpls-activated-interface } // container mpls-activated-interfaces leaf disable-auto-soft-reset { type empty; description "Disable automatic soft peer reset on policy reconfiguration"; } leaf disable-msg-log { type empty; description "Disable inbound and outbound messagelogging for all neighbors under the vrf"; } leaf multi-path-use-cluster-list-length { type empty; description "Change default multipath selection criteria to consider Cluster-list length"; } container global-timers { description "Adjust routing timers."; leaf keepalive { type uint32 { range "0..65535"; } units "second"; default "60"; description "Keepalive interval (seconds)"; } leaf hold-time { type uint32 { range "0..65535"; } units "second"; default "180"; description "Hold time (seconds). Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } units "second"; default "3"; description "Minimum acceptable hold time (seconds). Specify 0 to disable keepalives/hold time"; } } // container global-timers leaf best-path-igp-metric-ignore { type empty; description "Change default route selection criteria to ignore IGP Metric "; } leaf next-hop-res-allow-default { type empty; description "Enable path resolution for nexthops using default route"; } leaf best-path-sr-policy-only-path { type empty; description "Consider only paths over SR Policy for bestpath selection"; } leaf next-hop-mpls-fwd-ibgp { type empty; description "Enable mpls forwarding path for ibgp learnt nexthops"; } container bfd { description "BFD configuration"; leaf detection-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } } // container bfd leaf disable-neighbor-logging { type empty; description "Disable neighbor change logging"; } container send-socket-buffer-sizes { description "set socket parameters"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP Write buffer size in bytes"; } } // container send-socket-buffer-sizes leaf best-path-med-always { type empty; description "Change default route selection criteria and allow comparing of MED from different neighbors"; } container receive-socket-buffer-sizes { description "Set socket and BGP receive buffer sizes"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP Read buffer size in bytes"; } } // container receive-socket-buffer-sizes leaf best-path-router-id { type empty; description "Change default route selection criteria and compare router-id for identical EBGP paths"; } leaf best-path-med-missing { type empty; description "Treat missing MED as the least preferred one"; } leaf local-preference { type uint32 { range "0..4294967295"; } default "100"; description "Configure default local preference"; } } // container vrf-global container vrf-neighbors { description "BGP VRF peer"; list vrf-neighbor { key "neighbor-address"; description "A particular VRF peer"; leaf neighbor-address { type inet:ip-address-no-zone; description "Neighbor address"; } container vrf-neighbor-afs { description "Address family type of a VRF neighbor"; list vrf-neighbor-af { key "af-name"; description "Address family type of a VRF neighbor"; leaf af-name { type dt1:Bgp-address-family; description "BGP neighbor address family"; } leaf neighbor-af-long-lived-graceful-restart-capable { type boolean; default "false"; description "TRUE to treat neighbor as Long-lived Graceful-restart capable. FALSE to rely on capability negotiation."; } leaf send-ext-community-ebgp { type boolean; description "TRUE to send extended communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf accept-route-legacy-rt { type boolean; description "TRUE to configure as a accept-route-legacy-RT. FALSE to prevent accept-route-legacy-RT from being inherited."; } container aigp-cost-community { description "Send AIGP value in Cost Community. "; leaf enable { type boolean; description "TRUE to enable sending cost community, FALSE otherwise "; } leaf cost-community-id { when "../enable = 'true'" { description "../Enable = 'true'"; } type uint32 { range "0..255"; } description "Cost Community ID"; } leaf transitive { when "../enable = 'true'" { description "../Enable = 'true'"; } type boolean; description "True to send transitive cost community FALSE otherwise"; } leaf cost-community-poi-type { when "../enable = 'true'" { description "../Enable = 'true'"; } type Bgp-aigp-cfg-poi; description "Cost Community POI"; } } // container aigp-cost-community leaf cluster-id-allow-equal { type boolean; description "TRUE to disable cluster-id check for first id in the cluster-id-list. FALSE to enable check for all cluster-ids in the list."; } leaf send-community-ebgp { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } container advertise-def-imp-disable-v6 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v6 container advertise-disable { description "Disable Advertise Of Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-disable container maximum-prefixes { presence "Indicates a maximum-prefixes node is configured."; description "Maximum number of prefixes to accept from this peer"; leaf prefix-limit { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum prefixes limit"; } leaf warning-percentage { type uint32 { range "1..100"; } mandatory true; description "Threshold value (%) at which to generate a warning message."; } leaf warning-only { type boolean; mandatory true; description "TRUE to only give a warning message when limit is exceeded. FALSE to accept max prefix limit only."; } leaf restart-time { type uint32 { range "0..65535"; } mandatory true; description "Restart interval"; } leaf discard-extra-paths { type boolean; mandatory true; description "Discard extra paths when limit is exceeded"; } } // container maximum-prefixes container advertise-bridge-domain-imp-disable-v6 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v6 container remove-private-as-entire-as-path-inbound { presence "Indicates a remove-private-as-entire-as-path-inbound node is configured."; description "Remove private AS number from inbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from inbound updates. FALSE to prevent remove-private-AS from being inherited."; } leaf entire { type boolean; description "TRUE to remove private AS from inbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path-inbound leaf next-hop-unchanged { type boolean; description "TRUE to disable overwriting of next hop before advertising to eBGP peers. FALSE to prevent next-hop-unchanged from being inherited."; } leaf advertise-local-labeled-route { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label"; } container advertise-def-imp-disable-v4 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v4 leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container advertise-bridge-domain-imp-disable-v4 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v4 leaf flowspec-validation { type Bgp-flowspec-validation-cfg; description "Config Flowspec validation for this neighbor"; } container advertise-l2vpn-evpn { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-l2vpn-evpn container advertise-local-l2vpn-evpn { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-l2vpn-evpn leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf enforce-multiple-labels { type boolean; description "TRUE to enforce multiple labels support."; } leaf as-override { type boolean; default "true"; description "TRUE to override matching AS-number while sending update. FALSE to prevent as-override from being inherited from the parent"; } leaf multipath { type empty; description "Allow paths from this neighbor to be eligible for selective multipath"; } leaf send-community-ebgp-graceful-shutdown { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf activate { type empty; description "Activate an address family for this neighbor. Deletion of this object causes deletion of all the objects under NeighborAF/VRFNeighborAF/NeighborGroupAF associated with this object."; } leaf prefix-orf-policy { type string; description "Prefix ORF policy name for incoming updates"; } container neighbor-af-long-lived-graceful-restart-stale-time { description "Maximum time to wait before purging long lived routes"; leaf stale-time-send { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } leaf stale-time-accept { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } } // container neighbor-af-long-lived-graceful-restart-stale-time container site-of-origin { description "Site-of-Origin extended community associated with the neighbor"; leaf type { type Bgp-site-of-origin; description "Type of Extended community"; } leaf as-xx { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as-index { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-extcomm-asn-index; description "AS number Index"; } leaf address { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type inet:ipv4-address-no-zone; description "IP address"; } leaf address-index { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type dt1:Bgp-extcomm-v4-addr-index; description "IP address Index"; } } // container site-of-origin leaf update-out-orig-loop-chk-disable { type empty; description "Enable/disable Originator loop check for this neighbor-group/af-group"; } leaf aigp { type Bgp-aigp-cfg; description "Enable Accumulated IGP Metric for this neighbor."; } leaf aigp-send-med { type Bgp-aigp-cfg; description "Enable/Disable sending AIGP in MED "; } container advertise-v6 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v6 leaf allow-as-in { type uint32 { range "1..10"; } default "3"; description "Allow as-path with my AS present in it"; } leaf advertise-orf { type Bgp-orf; default "none"; description "Advertise ORF capability to the peer"; } leaf route-reflector-client { type boolean; description "TRUE to configure as a route-reflector-client. FALSE to prevent route-reflector-client from being inherited."; } leaf next-hop-self { type boolean; description "Disable the next hop calculation and insert your own address in the nexthop field of advertised routes you learned from the neighbor."; } container advertise-local-v6 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v6 container slow-peer { description "Slow peer detection and update group splitting"; leaf detection { when "../static = 'true' or ../static = 'false'" { description "../Static = 'true' or ../Static = false"; } type boolean; description "Detection enable or disable"; } leaf static { type boolean; description "Static or dynamic split"; } leaf dynamic-type { when "../static = 'false'" { description "../Static = false"; } type Bgp-upd-dynamic; description "Dynamic or Permanent"; } } // container slow-peer leaf route-policy-in { type string; description "Route policy name to apply to inbound routes"; } container import { description "Import Reorigination options for Routes from the peer"; leaf import-stitching { type boolean; description "TRUE to Import with Stitching RTs, FALSE to Import with normal RTs"; } leaf import-reoriginate { type boolean; description "TRUE to Reoriginate imported routes, FALSE to not Reoriginate imported routes - not supported"; } leaf import-reoriginate-stitching { type boolean; description "TRUE to Reoriginate imported routes with Stitching RTs, FALSE to Reoriginate imported routes with normal RTs"; } } // container import container default-originate { description "Originate default route to this neighbor"; leaf enable { type boolean; default "false"; description "FALSE to prevent default-originate from, being inherited from a parent. TRUE otherwise."; } leaf route-policy-name { type string; description "Route policy name to specify criteria to originate default."; } } // container default-originate container soft-reconfiguration { description "Enable/disable inbound soft reconfiguration for this neighbor/neighbor-group/af-group"; leaf inbound-soft { type boolean; default "false"; description "FALSE to prohibit inbound soft reconfiguration. TRUE otherwise."; } leaf soft-always { type boolean; default "false"; description "TRUE to always use soft reconfig, even if route refresh is supported. FALSE otherwise."; } leaf rpki-options { type Bgp-rpki-soft-reconf-cfg; default "rpki-default-option"; description "Rpki tested ordropped paths should be stored"; } } // container soft-reconfiguration container advertise-vrf-imp-disable-v6 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v6 leaf default-weight { type uint32 { range "0..65535"; } description "Set default weight for routes from this neighbor/neighbor-group/af-group"; } leaf af-group { type string; description "Inherit configuration for this address-family from an AF-group"; } container advertise-v4 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v4 leaf optimal-route-reflection-group { type string; description "Name of the ORR group this neighbor is going to be part of"; } leaf accept-own { type boolean; description "Handle self-originated routes with Accept-Own community. Valid for following neighbor address-families: VPNv4Unicast, VPNv6Unicast."; } leaf route-policy-out { type string; description "Route policy name to apply to outbound routes"; } container advertise-local-v4 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v4 container remove-private-as-entire-as-path { presence "Indicates a remove-private-as-entire-as-path node is configured."; description "Remove private AS number from outbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from outbound updates . FALSE to prevent remove-private-AS from being inherited."; } leaf internal { type boolean; description "TRUE if we need to remove private AS from internal neighbors only. False to disable this knob"; } leaf entire { type boolean; description "TRUE to remove private AS from outbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path container advertise-vrf-imp-disable-v4 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v4 } // list vrf-neighbor-af } // container vrf-neighbor-afs container local-address-sub-net { description "Local Address subnet of routing updates"; leaf local-addresss-subnet { type inet:ip-address-no-zone; description "local address subnet ip address "; } leaf prefix-len { type uint32 { range "0..128"; } description "prefix length"; } } // container local-address-sub-net leaf internal-vpn-client-ibgp-ce { type boolean; description "TRUE to preserve the CE path attributes.FALSE to override CE path attributes."; } container local-address { description "Local ip address"; leaf local-address-disable { type boolean; description "TRUE to prevent this entity from having a local address if the parent has one.FALSE to specify local ip address"; } leaf local-ip-address { when "../local-address-disable = 'false'" { description "../LocalAddressDisable = false"; } type inet:ip-address-no-zone; description "Local ip address for neighbor"; } } // container local-address container bmp-activates { description "Enable BMP logging for this neighbor"; list bmp-activate { key "server-id"; description "Enable BMP logging for this particular server"; leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-activate } // container bmp-activates container ebgp-multihop { presence "Contains mandatory nodes that used to set default values"; description "Allow EBGP neighbors not on directly connected networks"; leaf max-hop-count { type uint32 { range "1..255"; } mandatory true; description "Maximum hop count"; } leaf mpls-deactivation { type boolean; mandatory true; description "TRUE to not enable MPLS and NULL rewrite."; } } // container ebgp-multihop leaf session-group-add-member { type string; description "Inherit address-family independent config from a session-group"; } leaf egress-peer-engineering { type boolean; description "TRUE to enable egress peer engineering FALSE to disable egress peer engineering and to prevent inheritance from a parent"; } container remote-as { description "Set remote AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container remote-as container local-as { description "Specify a local-as number"; leaf as-xx { type dt1:Bgp-as-range; must "../as-yy and not(../disable)"; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; must "../as-xx and not(../disable)"; description "yy of AS number xx.yy"; } leaf no-prepend { type empty; must "../as-xx and ../as-yy and not(../disable)"; description "Do not prepend Local AS to announcements from this neighbor"; } leaf disable { type empty; must "not(../as-xx or ../as-yy or ../no-prepend or ../replace-as or ../dual-as)"; description "Disable Local AS and prevent it from being inherited from a parent"; } leaf replace-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and not(../disable)"; description "Prepend only Local AS to announcements from this neighbor"; } leaf dual-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and ../replace-as and not(../disable)"; description "Dual-AS mode"; } } // container local-as leaf neighbor-graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peer"; } leaf shutdown { type boolean; description "TRUE to shutdown this entity, FALSE to prevent this entity from being shutdown even if the parent is."; } leaf description { type string; description "Up to 80 characters describing this neighbor"; } leaf suppress-extended-nexthop-encoding-capability { type boolean; description "TRUE to suppress Extended Nexthop encoding capability. FALSE to not suppress and to prevent inheritance from a parent"; } leaf neighbor-group-add-member { type string; description "Inherit configuration from a neighbor-group"; } container password { description "Set or disable a password"; leaf password-disable { type boolean; description "TRUE to prevent this entity from having a password even if the parent has one. FALSEto specify a password"; } leaf password { when "../password-disable = 'false'" { description "../PasswordDisable = false"; } type xr:Proprietary-password; description "The neighbor password. Leave unspecified when disabling the password."; } } // container password leaf ebgp-recv-dmz { type boolean; description "TRUE to receive DMZ link bandwidth from ebgp peer. FALSE to not receive from ebgp peer and to prevent inheritance from a parent"; } container advertisement-interval { presence "Indicates a advertisement-interval node is configured."; description "Minimum interval between sending BGP routing updates"; leaf minimum-interval { type uint32 { range "0..600"; } units "second"; mandatory true; description "Minimum advertisement interval time, secs part"; } leaf minimum-interval-msecs { type uint32 { range "0..999"; } units "millisecond"; description "Minimum advertisement interval time, msecs part"; } } // container advertisement-interval leaf neighbor-graceful-restart { type Bgp-nbrgr; description "TRUE to Enable graceful restart supportfor neighbor. FALSE to disable graceful restart support for neighbor."; } leaf enforce-first-as { type boolean; description "TRUE to enforce first AS; FALSE to not enforce first AS."; } leaf idle-watch-time { type uint32 { range "30..1800"; } units "second"; description "Time to wait for deleteing IDLE state Dynamic peer"; } container tcpmss { description "TCP Maximum segment size"; leaf tcpmss-disable { type boolean; description "TRUE, to prevent inheritance ofTCP MSS valuefrom its parents.FALSE, otherwise"; } leaf mss { type uint32 { range "68..10000"; } description "Maximum Segment Size"; } } // container tcpmss leaf session-open-mode { type Bgp-tcp-mode; default "either"; description "TCP mode to be used to establish BGP session"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos container update-in-filtering { description "Inbound update filtering"; container update-in-filtering-message-buffers { presence "Indicates a update-in-filtering-message-buffers node is configured."; description "Message buffers to store filtered updates"; leaf number-of-buffers { type uint32 { range "0..25"; } mandatory true; description "Number of message buffers"; } leaf non-circular-buffer { type boolean; mandatory true; description "TRUE to configure non-circular buffer"; } } // container update-in-filtering-message-buffers leaf enable { type empty; description "Configure inbound update filtering"; } leaf update-in-filtering-attribute-filter-group { type string; description "Attribute-filter group name for update filtering"; } leaf update-in-filtering-syslog-disable { type empty; description "Disable inbound update filtering syslog messages"; } } // container update-in-filtering leaf ebgp-send-dmz-enable-modes { type Bgp-ebgp-send-dmz-enable-mode; description "Default mode, Cumulative mode or Disable to prevent inheritance from a parent"; } container msg-log-out { description "Message log outbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Outbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a outbound message logging if parent has one"; } } // container msg-log-out leaf suppress-all-capabilities { type boolean; description "TRUE to suppress all capabilities. FALSE to not suppress and to prevent inheritance from a parent"; } leaf max-peers { type uint32 { range "1..4096"; } description "Set Maximum Peers in Dynamic Range"; } container ao-keychain { description "Set or disable AO based authentication"; leaf ao-keychain-disable { type boolean; description "TRUE to prevent this entity from having AO keychain based authentication even if the parent has one.FALSE to enable AO keychain based authentication"; } leaf ao-keychain-name { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type string; description "Name of the AO keychain associated with this neighbor"; } leaf ao-include-tcp-options { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Include TCP options header with AO"; } leaf ao-accept-mismatch-connection { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Accept new connections even though AO mismatched"; } } // container ao-keychain leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } container receive-buffer-size { description "Set socket receive buffer size and BGP read buffer size"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP read buffer size in bytes"; } } // container receive-buffer-size container msg-log-in { description "Message log inbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Inbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a inbound message logging if parent has one"; } } // container msg-log-in leaf additional-paths-send-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Send capability"; } leaf propagate-dmz-link-bandwidth { type boolean; description "TRUE to propagate DMZ link bandwidth. FALSE to not propagate and to prevent inheritance from a parent"; } container epe-peer-set-identities { description "Assign this neighbor to following peer-sets, used for egress peer engineering"; list epe-peer-set-identity { key "set-identity"; description "Assign this neighbor to mentioned peer-set"; leaf set-identity { type uint32 { range "1..255"; } description "Identity of this EPE Peer-set"; } } // list epe-peer-set-identity } // container epe-peer-set-identities leaf bfd-enable-modes { type Bgp-bfd-enable-mode; description "Strict mode, Default mode or Disable to prevent inheritance from a parent"; } container send-buffer-size { description "Set socket send buffer size and BGP write buffer size"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP write buffer size in bytes"; } } // container send-buffer-size leaf ttl-security { type boolean; description "TRUE to enable BGP TTL Security. FALSE to not enable it and to prevent inheritance from a parent"; } leaf neighbor-graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbor"; } container timers { description "BGP per neighbor timers."; leaf keepalive-interval { type uint32 { range "0..65535"; } default "60"; description "Keepalive interval"; } leaf hold-time { type uint32 { range "0..65535"; } default "180"; description "Hold time. Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } default "3"; description "Minimum acceptable hold time. Specify 0 to disable keepalives/hold time"; } } // container timers leaf bfd-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf bfd-minimum-interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } leaf remote-as-list { type string; description "Remote-as-list group name"; } leaf labeled-unicast-equivalent-for-inbound-updates { type boolean; description "TRUE to merge updates FALSE to not merge updates and to prevent inheritance from a parent"; } leaf additional-paths-receive-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Receive capability"; } container keychain { description "Set or disable keychain based authentication"; leaf keychain-disable { type boolean; description "TRUE to prevent this entity from having a keychain based authentication even if the parent has one.FALSE to specify a keychain name"; } leaf keychain-name { when "../keychain-disable = 'false'" { description "../KeychainDisable = false"; } type string; description "Name of the keychain associated with neighbor"; } } // container keychain leaf ignore-connected-check-ebgp { type boolean; description "TRUE to disable the connected nexthop check for this peer.FALSE to enable the connected nexthop check for this peer."; } leaf suppress-four-byte-as-capability { type boolean; description "TRUE to suppress BGP 4-byte-as capability. FALSE to not suppress it and to prevent inheritance from a parent"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } container graceful-maintenance { description "Graceful Maintenance mode"; container graceful-maintenance-local-preference { description "Set Local Preference to advertise routes with"; leaf gshut-loc-pref-disable { type boolean; description "TRUE, to prevent inheritance of Local Pref value from its parents.FALSE, otherwise"; } leaf local-preference { type uint32 { range "0..4294967295"; } description "Local Preference Value"; } } // container graceful-maintenance-local-preference container graceful-maintenance-as-prepends { description "Number of times to prepend local AS number to the AS path"; leaf gshut-prepends-disable { type boolean; description "TRUE, to prevent inheritance of AS Prepends value from its parents.FALSE, otherwise"; } leaf as-prepends { type uint32 { range "0..6"; } description "number of times AS prepends"; } } // container graceful-maintenance-as-prepends leaf enable { type empty; description "Enter Graceful Maintenance mode to configure parametrs"; } leaf graceful-maintenance-activate { type boolean; description "Initiate the graceful shutdown procedure"; } } // container graceful-maintenance } // list vrf-neighbor list vrf-neighbor-prefix-length { key "neighbor-address prefix-length"; description "A particular VRF peer"; leaf neighbor-address { type inet:ip-address-no-zone; description "Neighbor address"; } leaf prefix-length { type uint32 { range "0..127"; } description "Prefix length"; } container vrf-neighbor-afs { description "Address family type of a VRF neighbor"; list vrf-neighbor-af { key "af-name"; description "Address family type of a VRF neighbor"; leaf af-name { type dt1:Bgp-address-family; description "BGP neighbor address family"; } leaf neighbor-af-long-lived-graceful-restart-capable { type boolean; default "false"; description "TRUE to treat neighbor as Long-lived Graceful-restart capable. FALSE to rely on capability negotiation."; } leaf send-ext-community-ebgp { type boolean; description "TRUE to send extended communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf accept-route-legacy-rt { type boolean; description "TRUE to configure as a accept-route-legacy-RT. FALSE to prevent accept-route-legacy-RT from being inherited."; } container aigp-cost-community { description "Send AIGP value in Cost Community. "; leaf enable { type boolean; description "TRUE to enable sending cost community, FALSE otherwise "; } leaf cost-community-id { when "../enable = 'true'" { description "../Enable = 'true'"; } type uint32 { range "0..255"; } description "Cost Community ID"; } leaf transitive { when "../enable = 'true'" { description "../Enable = 'true'"; } type boolean; description "True to send transitive cost community FALSE otherwise"; } leaf cost-community-poi-type { when "../enable = 'true'" { description "../Enable = 'true'"; } type Bgp-aigp-cfg-poi; description "Cost Community POI"; } } // container aigp-cost-community leaf cluster-id-allow-equal { type boolean; description "TRUE to disable cluster-id check for first id in the cluster-id-list. FALSE to enable check for all cluster-ids in the list."; } leaf send-community-ebgp { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } container advertise-def-imp-disable-v6 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v6 container advertise-disable { description "Disable Advertise Of Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-disable container maximum-prefixes { presence "Indicates a maximum-prefixes node is configured."; description "Maximum number of prefixes to accept from this peer"; leaf prefix-limit { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum prefixes limit"; } leaf warning-percentage { type uint32 { range "1..100"; } mandatory true; description "Threshold value (%) at which to generate a warning message."; } leaf warning-only { type boolean; mandatory true; description "TRUE to only give a warning message when limit is exceeded. FALSE to accept max prefix limit only."; } leaf restart-time { type uint32 { range "0..65535"; } mandatory true; description "Restart interval"; } leaf discard-extra-paths { type boolean; mandatory true; description "Discard extra paths when limit is exceeded"; } } // container maximum-prefixes container advertise-bridge-domain-imp-disable-v6 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v6 container remove-private-as-entire-as-path-inbound { presence "Indicates a remove-private-as-entire-as-path-inbound node is configured."; description "Remove private AS number from inbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from inbound updates. FALSE to prevent remove-private-AS from being inherited."; } leaf entire { type boolean; description "TRUE to remove private AS from inbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path-inbound leaf next-hop-unchanged { type boolean; description "TRUE to disable overwriting of next hop before advertising to eBGP peers. FALSE to prevent next-hop-unchanged from being inherited."; } leaf advertise-local-labeled-route { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label"; } container advertise-def-imp-disable-v4 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v4 leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container advertise-bridge-domain-imp-disable-v4 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v4 leaf flowspec-validation { type Bgp-flowspec-validation-cfg; description "Config Flowspec validation for this neighbor"; } container advertise-l2vpn-evpn { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-l2vpn-evpn container advertise-local-l2vpn-evpn { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-l2vpn-evpn leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf enforce-multiple-labels { type boolean; description "TRUE to enforce multiple labels support."; } leaf as-override { type boolean; default "true"; description "TRUE to override matching AS-number while sending update. FALSE to prevent as-override from being inherited from the parent"; } leaf multipath { type empty; description "Allow paths from this neighbor to be eligible for selective multipath"; } leaf send-community-ebgp-graceful-shutdown { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf activate { type empty; description "Activate an address family for this neighbor. Deletion of this object causes deletion of all the objects under NeighborAF/VRFNeighborAF/NeighborGroupAF associated with this object."; } leaf prefix-orf-policy { type string; description "Prefix ORF policy name for incoming updates"; } container neighbor-af-long-lived-graceful-restart-stale-time { description "Maximum time to wait before purging long lived routes"; leaf stale-time-send { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } leaf stale-time-accept { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } } // container neighbor-af-long-lived-graceful-restart-stale-time container site-of-origin { description "Site-of-Origin extended community associated with the neighbor"; leaf type { type Bgp-site-of-origin; description "Type of Extended community"; } leaf as-xx { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as-index { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-extcomm-asn-index; description "AS number Index"; } leaf address { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type inet:ipv4-address-no-zone; description "IP address"; } leaf address-index { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type dt1:Bgp-extcomm-v4-addr-index; description "IP address Index"; } } // container site-of-origin leaf update-out-orig-loop-chk-disable { type empty; description "Enable/disable Originator loop check for this neighbor-group/af-group"; } leaf aigp { type Bgp-aigp-cfg; description "Enable Accumulated IGP Metric for this neighbor."; } leaf aigp-send-med { type Bgp-aigp-cfg; description "Enable/Disable sending AIGP in MED "; } container advertise-v6 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v6 leaf allow-as-in { type uint32 { range "1..10"; } default "3"; description "Allow as-path with my AS present in it"; } leaf advertise-orf { type Bgp-orf; default "none"; description "Advertise ORF capability to the peer"; } leaf route-reflector-client { type boolean; description "TRUE to configure as a route-reflector-client. FALSE to prevent route-reflector-client from being inherited."; } leaf next-hop-self { type boolean; description "Disable the next hop calculation and insert your own address in the nexthop field of advertised routes you learned from the neighbor."; } container advertise-local-v6 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v6 container slow-peer { description "Slow peer detection and update group splitting"; leaf detection { when "../static = 'true' or ../static = 'false'" { description "../Static = 'true' or ../Static = false"; } type boolean; description "Detection enable or disable"; } leaf static { type boolean; description "Static or dynamic split"; } leaf dynamic-type { when "../static = 'false'" { description "../Static = false"; } type Bgp-upd-dynamic; description "Dynamic or Permanent"; } } // container slow-peer leaf route-policy-in { type string; description "Route policy name to apply to inbound routes"; } container import { description "Import Reorigination options for Routes from the peer"; leaf import-stitching { type boolean; description "TRUE to Import with Stitching RTs, FALSE to Import with normal RTs"; } leaf import-reoriginate { type boolean; description "TRUE to Reoriginate imported routes, FALSE to not Reoriginate imported routes - not supported"; } leaf import-reoriginate-stitching { type boolean; description "TRUE to Reoriginate imported routes with Stitching RTs, FALSE to Reoriginate imported routes with normal RTs"; } } // container import container default-originate { description "Originate default route to this neighbor"; leaf enable { type boolean; default "false"; description "FALSE to prevent default-originate from, being inherited from a parent. TRUE otherwise."; } leaf route-policy-name { type string; description "Route policy name to specify criteria to originate default."; } } // container default-originate container soft-reconfiguration { description "Enable/disable inbound soft reconfiguration for this neighbor/neighbor-group/af-group"; leaf inbound-soft { type boolean; default "false"; description "FALSE to prohibit inbound soft reconfiguration. TRUE otherwise."; } leaf soft-always { type boolean; default "false"; description "TRUE to always use soft reconfig, even if route refresh is supported. FALSE otherwise."; } leaf rpki-options { type Bgp-rpki-soft-reconf-cfg; default "rpki-default-option"; description "Rpki tested ordropped paths should be stored"; } } // container soft-reconfiguration container advertise-vrf-imp-disable-v6 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v6 leaf default-weight { type uint32 { range "0..65535"; } description "Set default weight for routes from this neighbor/neighbor-group/af-group"; } leaf af-group { type string; description "Inherit configuration for this address-family from an AF-group"; } container advertise-v4 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v4 leaf optimal-route-reflection-group { type string; description "Name of the ORR group this neighbor is going to be part of"; } leaf accept-own { type boolean; description "Handle self-originated routes with Accept-Own community. Valid for following neighbor address-families: VPNv4Unicast, VPNv6Unicast."; } leaf route-policy-out { type string; description "Route policy name to apply to outbound routes"; } container advertise-local-v4 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v4 container remove-private-as-entire-as-path { presence "Indicates a remove-private-as-entire-as-path node is configured."; description "Remove private AS number from outbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from outbound updates . FALSE to prevent remove-private-AS from being inherited."; } leaf internal { type boolean; description "TRUE if we need to remove private AS from internal neighbors only. False to disable this knob"; } leaf entire { type boolean; description "TRUE to remove private AS from outbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path container advertise-vrf-imp-disable-v4 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v4 } // list vrf-neighbor-af } // container vrf-neighbor-afs container local-address-sub-net { description "Local Address subnet of routing updates"; leaf local-addresss-subnet { type inet:ip-address-no-zone; description "local address subnet ip address "; } leaf prefix-len { type uint32 { range "0..128"; } description "prefix length"; } } // container local-address-sub-net leaf internal-vpn-client-ibgp-ce { type boolean; description "TRUE to preserve the CE path attributes.FALSE to override CE path attributes."; } container local-address { description "Local ip address"; leaf local-address-disable { type boolean; description "TRUE to prevent this entity from having a local address if the parent has one.FALSE to specify local ip address"; } leaf local-ip-address { when "../local-address-disable = 'false'" { description "../LocalAddressDisable = false"; } type inet:ip-address-no-zone; description "Local ip address for neighbor"; } } // container local-address container bmp-activates { description "Enable BMP logging for this neighbor"; list bmp-activate { key "server-id"; description "Enable BMP logging for this particular server"; leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-activate } // container bmp-activates container ebgp-multihop { presence "Contains mandatory nodes that used to set default values"; description "Allow EBGP neighbors not on directly connected networks"; leaf max-hop-count { type uint32 { range "1..255"; } mandatory true; description "Maximum hop count"; } leaf mpls-deactivation { type boolean; mandatory true; description "TRUE to not enable MPLS and NULL rewrite."; } } // container ebgp-multihop leaf session-group-add-member { type string; description "Inherit address-family independent config from a session-group"; } leaf egress-peer-engineering { type boolean; description "TRUE to enable egress peer engineering FALSE to disable egress peer engineering and to prevent inheritance from a parent"; } container remote-as { description "Set remote AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container remote-as container local-as { description "Specify a local-as number"; leaf as-xx { type dt1:Bgp-as-range; must "../as-yy and not(../disable)"; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; must "../as-xx and not(../disable)"; description "yy of AS number xx.yy"; } leaf no-prepend { type empty; must "../as-xx and ../as-yy and not(../disable)"; description "Do not prepend Local AS to announcements from this neighbor"; } leaf disable { type empty; must "not(../as-xx or ../as-yy or ../no-prepend or ../replace-as or ../dual-as)"; description "Disable Local AS and prevent it from being inherited from a parent"; } leaf replace-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and not(../disable)"; description "Prepend only Local AS to announcements from this neighbor"; } leaf dual-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and ../replace-as and not(../disable)"; description "Dual-AS mode"; } } // container local-as leaf neighbor-graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peer"; } leaf shutdown { type boolean; description "TRUE to shutdown this entity, FALSE to prevent this entity from being shutdown even if the parent is."; } leaf description { type string; description "Up to 80 characters describing this neighbor"; } leaf suppress-extended-nexthop-encoding-capability { type boolean; description "TRUE to suppress Extended Nexthop encoding capability. FALSE to not suppress and to prevent inheritance from a parent"; } leaf neighbor-group-add-member { type string; description "Inherit configuration from a neighbor-group"; } container password { description "Set or disable a password"; leaf password-disable { type boolean; description "TRUE to prevent this entity from having a password even if the parent has one. FALSEto specify a password"; } leaf password { when "../password-disable = 'false'" { description "../PasswordDisable = false"; } type xr:Proprietary-password; description "The neighbor password. Leave unspecified when disabling the password."; } } // container password leaf ebgp-recv-dmz { type boolean; description "TRUE to receive DMZ link bandwidth from ebgp peer. FALSE to not receive from ebgp peer and to prevent inheritance from a parent"; } container advertisement-interval { presence "Indicates a advertisement-interval node is configured."; description "Minimum interval between sending BGP routing updates"; leaf minimum-interval { type uint32 { range "0..600"; } units "second"; mandatory true; description "Minimum advertisement interval time, secs part"; } leaf minimum-interval-msecs { type uint32 { range "0..999"; } units "millisecond"; description "Minimum advertisement interval time, msecs part"; } } // container advertisement-interval leaf neighbor-graceful-restart { type Bgp-nbrgr; description "TRUE to Enable graceful restart supportfor neighbor. FALSE to disable graceful restart support for neighbor."; } leaf enforce-first-as { type boolean; description "TRUE to enforce first AS; FALSE to not enforce first AS."; } leaf idle-watch-time { type uint32 { range "30..1800"; } units "second"; description "Time to wait for deleteing IDLE state Dynamic peer"; } container tcpmss { description "TCP Maximum segment size"; leaf tcpmss-disable { type boolean; description "TRUE, to prevent inheritance ofTCP MSS valuefrom its parents.FALSE, otherwise"; } leaf mss { type uint32 { range "68..10000"; } description "Maximum Segment Size"; } } // container tcpmss leaf session-open-mode { type Bgp-tcp-mode; default "either"; description "TCP mode to be used to establish BGP session"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos container update-in-filtering { description "Inbound update filtering"; container update-in-filtering-message-buffers { presence "Indicates a update-in-filtering-message-buffers node is configured."; description "Message buffers to store filtered updates"; leaf number-of-buffers { type uint32 { range "0..25"; } mandatory true; description "Number of message buffers"; } leaf non-circular-buffer { type boolean; mandatory true; description "TRUE to configure non-circular buffer"; } } // container update-in-filtering-message-buffers leaf enable { type empty; description "Configure inbound update filtering"; } leaf update-in-filtering-attribute-filter-group { type string; description "Attribute-filter group name for update filtering"; } leaf update-in-filtering-syslog-disable { type empty; description "Disable inbound update filtering syslog messages"; } } // container update-in-filtering leaf ebgp-send-dmz-enable-modes { type Bgp-ebgp-send-dmz-enable-mode; description "Default mode, Cumulative mode or Disable to prevent inheritance from a parent"; } container msg-log-out { description "Message log outbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Outbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a outbound message logging if parent has one"; } } // container msg-log-out leaf suppress-all-capabilities { type boolean; description "TRUE to suppress all capabilities. FALSE to not suppress and to prevent inheritance from a parent"; } leaf max-peers { type uint32 { range "1..4096"; } description "Set Maximum Peers in Dynamic Range"; } container ao-keychain { description "Set or disable AO based authentication"; leaf ao-keychain-disable { type boolean; description "TRUE to prevent this entity from having AO keychain based authentication even if the parent has one.FALSE to enable AO keychain based authentication"; } leaf ao-keychain-name { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type string; description "Name of the AO keychain associated with this neighbor"; } leaf ao-include-tcp-options { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Include TCP options header with AO"; } leaf ao-accept-mismatch-connection { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Accept new connections even though AO mismatched"; } } // container ao-keychain leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } container receive-buffer-size { description "Set socket receive buffer size and BGP read buffer size"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP read buffer size in bytes"; } } // container receive-buffer-size container msg-log-in { description "Message log inbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Inbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a inbound message logging if parent has one"; } } // container msg-log-in leaf additional-paths-send-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Send capability"; } leaf propagate-dmz-link-bandwidth { type boolean; description "TRUE to propagate DMZ link bandwidth. FALSE to not propagate and to prevent inheritance from a parent"; } container epe-peer-set-identities { description "Assign this neighbor to following peer-sets, used for egress peer engineering"; list epe-peer-set-identity { key "set-identity"; description "Assign this neighbor to mentioned peer-set"; leaf set-identity { type uint32 { range "1..255"; } description "Identity of this EPE Peer-set"; } } // list epe-peer-set-identity } // container epe-peer-set-identities leaf bfd-enable-modes { type Bgp-bfd-enable-mode; description "Strict mode, Default mode or Disable to prevent inheritance from a parent"; } container send-buffer-size { description "Set socket send buffer size and BGP write buffer size"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP write buffer size in bytes"; } } // container send-buffer-size leaf ttl-security { type boolean; description "TRUE to enable BGP TTL Security. FALSE to not enable it and to prevent inheritance from a parent"; } leaf neighbor-graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbor"; } container timers { description "BGP per neighbor timers."; leaf keepalive-interval { type uint32 { range "0..65535"; } default "60"; description "Keepalive interval"; } leaf hold-time { type uint32 { range "0..65535"; } default "180"; description "Hold time. Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } default "3"; description "Minimum acceptable hold time. Specify 0 to disable keepalives/hold time"; } } // container timers leaf bfd-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf bfd-minimum-interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } leaf remote-as-list { type string; description "Remote-as-list group name"; } leaf labeled-unicast-equivalent-for-inbound-updates { type boolean; description "TRUE to merge updates FALSE to not merge updates and to prevent inheritance from a parent"; } leaf additional-paths-receive-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Receive capability"; } container keychain { description "Set or disable keychain based authentication"; leaf keychain-disable { type boolean; description "TRUE to prevent this entity from having a keychain based authentication even if the parent has one.FALSE to specify a keychain name"; } leaf keychain-name { when "../keychain-disable = 'false'" { description "../KeychainDisable = false"; } type string; description "Name of the keychain associated with neighbor"; } } // container keychain leaf ignore-connected-check-ebgp { type boolean; description "TRUE to disable the connected nexthop check for this peer.FALSE to enable the connected nexthop check for this peer."; } leaf suppress-four-byte-as-capability { type boolean; description "TRUE to suppress BGP 4-byte-as capability. FALSE to not suppress it and to prevent inheritance from a parent"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } container graceful-maintenance { description "Graceful Maintenance mode"; container graceful-maintenance-local-preference { description "Set Local Preference to advertise routes with"; leaf gshut-loc-pref-disable { type boolean; description "TRUE, to prevent inheritance of Local Pref value from its parents.FALSE, otherwise"; } leaf local-preference { type uint32 { range "0..4294967295"; } description "Local Preference Value"; } } // container graceful-maintenance-local-preference container graceful-maintenance-as-prepends { description "Number of times to prepend local AS number to the AS path"; leaf gshut-prepends-disable { type boolean; description "TRUE, to prevent inheritance of AS Prepends value from its parents.FALSE, otherwise"; } leaf as-prepends { type uint32 { range "0..6"; } description "number of times AS prepends"; } } // container graceful-maintenance-as-prepends leaf enable { type empty; description "Enter Graceful Maintenance mode to configure parametrs"; } leaf graceful-maintenance-activate { type boolean; description "Initiate the graceful shutdown procedure"; } } // container graceful-maintenance } // list vrf-neighbor-prefix-length } // container vrf-neighbors leaf vrf-name { type xr:Cisco-ios-xr-string; description "VRF name"; } } // list vrf } // container vrfs container default-vrf { description "Global default config"; container bgp-entity { description "Neighbor, neighbor-group, af-group and session-group configuration"; container neighbors { description "Neighbor configuration"; list neighbor { key "neighbor-address"; description "A particular BGP peer"; leaf neighbor-address { type inet:ip-address-no-zone; description "Neighbor address"; } container neighbor-afs { description "BGP neighbor AF configuration table"; list neighbor-af { key "af-name"; description "Address family type of neighbor"; leaf af-name { type dt1:Bgp-address-family; description "BGP neighbor address family"; } leaf neighbor-af-long-lived-graceful-restart-capable { type boolean; default "false"; description "TRUE to treat neighbor as Long-lived Graceful-restart capable. FALSE to rely on capability negotiation."; } leaf l2vpn-signalling { type Bgp-signal; description "Disable signalling type on the peer"; } leaf send-ext-community-ebgp { type boolean; description "TRUE to send extended communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf accept-route-legacy-rt { type boolean; description "TRUE to configure as a accept-route-legacy-RT. FALSE to prevent accept-route-legacy-RT from being inherited."; } container aigp-cost-community { description "Send AIGP value in Cost Community. "; leaf enable { type boolean; description "TRUE to enable sending cost community, FALSE otherwise "; } leaf cost-community-id { when "../enable = 'true'" { description "../Enable = 'true'"; } type uint32 { range "0..255"; } description "Cost Community ID"; } leaf transitive { when "../enable = 'true'" { description "../Enable = 'true'"; } type boolean; description "True to send transitive cost community FALSE otherwise"; } leaf cost-community-poi-type { when "../enable = 'true'" { description "../Enable = 'true'"; } type Bgp-aigp-cfg-poi; description "Cost Community POI"; } } // container aigp-cost-community leaf cluster-id-allow-equal { type boolean; description "TRUE to disable cluster-id check for first id in the cluster-id-list. FALSE to enable check for all cluster-ids in the list."; } leaf send-community-ebgp { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } container advertise-def-imp-disable-v6 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v6 container advertise-disable { description "Disable Advertise Of Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-disable leaf send-multicast-attr { type Bgp-send-mcast-attr-cfg; description "Config send multicast attribute for this neighbor"; } container maximum-prefixes { presence "Indicates a maximum-prefixes node is configured."; description "Maximum number of prefixes to accept from this peer"; leaf prefix-limit { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum prefixes limit"; } leaf warning-percentage { type uint32 { range "1..100"; } mandatory true; description "Threshold value (%) at which to generate a warning message."; } leaf warning-only { type boolean; mandatory true; description "TRUE to only give a warning message when limit is exceeded. FALSE to accept max prefix limit only."; } leaf restart-time { type uint32 { range "0..65535"; } mandatory true; description "Restart interval"; } leaf discard-extra-paths { type boolean; mandatory true; description "Discard extra paths when limit is exceeded"; } } // container maximum-prefixes container advertise-bridge-domain-imp-disable-v6 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v6 container remove-private-as-entire-as-path-inbound { presence "Indicates a remove-private-as-entire-as-path-inbound node is configured."; description "Remove private AS number from inbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from inbound updates. FALSE to prevent remove-private-AS from being inherited."; } leaf entire { type boolean; description "TRUE to remove private AS from inbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path-inbound leaf next-hop-unchanged { type boolean; description "TRUE to disable overwriting of next hop before advertising to eBGP peers. FALSE to prevent next-hop-unchanged from being inherited."; } leaf advertise-local-labeled-route { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label"; } container advertise-def-imp-disable-v4 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v4 leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container advertise-bridge-domain-imp-disable-v4 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v4 leaf flowspec-validation { type Bgp-flowspec-validation-cfg; description "Config Flowspec validation for this neighbor"; } container advertise-l2vpn-evpn { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-l2vpn-evpn container advertise-local-l2vpn-evpn { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-l2vpn-evpn leaf encapsulation-type { type Bgp-af-encapsulation; description "Encapsulation type for this neighbor"; } leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf enforce-multiple-labels { type boolean; description "TRUE to enforce multiple labels support."; } leaf as-override { type boolean; default "true"; description "TRUE to override matching AS-number while sending update. FALSE to prevent as-override from being inherited from the parent"; } leaf multipath { type empty; description "Allow paths from this neighbor to be eligible for selective multipath"; } leaf send-community-ebgp-graceful-shutdown { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf activate { type empty; description "Activate an address family for this neighbor. Deletion of this object causes deletion of all the objects under NeighborAF/VRFNeighborAF/NeighborGroupAF associated with this object."; } leaf prefix-orf-policy { type string; description "Prefix ORF policy name for incoming updates"; } container neighbor-af-long-lived-graceful-restart-stale-time { description "Maximum time to wait before purging long lived routes"; leaf stale-time-send { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } leaf stale-time-accept { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } } // container neighbor-af-long-lived-graceful-restart-stale-time leaf update-out-orig-loop-chk-disable { type empty; description "Enable/disable Originator loop check for this neighbor-group/af-group"; } leaf aigp { type Bgp-aigp-cfg; description "Enable Accumulated IGP Metric for this neighbor."; } leaf aigp-send-med { type Bgp-aigp-cfg; description "Enable/Disable sending AIGP in MED "; } container advertise-v6 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v6 leaf allow-as-in { type uint32 { range "1..10"; } default "3"; description "Allow as-path with my AS present in it"; } leaf advertise-orf { type Bgp-orf; default "none"; description "Advertise ORF capability to the peer"; } leaf route-reflector-client { type boolean; description "TRUE to configure as a route-reflector-client. FALSE to prevent route-reflector-client from being inherited."; } leaf next-hop-self { type boolean; description "Disable the next hop calculation and insert your own address in the nexthop field of advertised routes you learned from the neighbor."; } container advertise-local-v6 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v6 leaf srv6version4 { type boolean; description "TRUE to enable SRv6 version 4,FALSE to disable SRv6 version 4"; } container slow-peer { description "Slow peer detection and update group splitting"; leaf detection { when "../static = 'true' or ../static = 'false'" { description "../Static = 'true' or ../Static = false"; } type boolean; description "Detection enable or disable"; } leaf static { type boolean; description "Static or dynamic split"; } leaf dynamic-type { when "../static = 'false'" { description "../Static = false"; } type Bgp-upd-dynamic; description "Dynamic or Permanent"; } } // container slow-peer leaf route-policy-in { type string; description "Route policy name to apply to inbound routes"; } container import { description "Import Reorigination options for Routes from the peer"; leaf import-stitching { type boolean; description "TRUE to Import with Stitching RTs, FALSE to Import with normal RTs"; } leaf import-reoriginate { type boolean; description "TRUE to Reoriginate imported routes, FALSE to not Reoriginate imported routes - not supported"; } leaf import-reoriginate-stitching { type boolean; description "TRUE to Reoriginate imported routes with Stitching RTs, FALSE to Reoriginate imported routes with normal RTs"; } } // container import container default-originate { description "Originate default route to this neighbor"; leaf enable { type boolean; default "false"; description "FALSE to prevent default-originate from, being inherited from a parent. TRUE otherwise."; } leaf route-policy-name { type string; description "Route policy name to specify criteria to originate default."; } } // container default-originate container soft-reconfiguration { description "Enable/disable inbound soft reconfiguration for this neighbor/neighbor-group/af-group"; leaf inbound-soft { type boolean; default "false"; description "FALSE to prohibit inbound soft reconfiguration. TRUE otherwise."; } leaf soft-always { type boolean; default "false"; description "TRUE to always use soft reconfig, even if route refresh is supported. FALSE otherwise."; } leaf rpki-options { type Bgp-rpki-soft-reconf-cfg; default "rpki-default-option"; description "Rpki tested ordropped paths should be stored"; } } // container soft-reconfiguration container advertise-vrf-imp-disable-v6 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v6 leaf default-weight { type uint32 { range "0..65535"; } description "Set default weight for routes from this neighbor/neighbor-group/af-group"; } leaf af-group { type string; description "Inherit configuration for this address-family from an AF-group"; } container advertise-v4 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v4 leaf next-hop-unchanged-multipath { type boolean; description "TRUE to disable overwriting of next hop for multipaths. FALSE to prevent next-hop-unchanged for multipaths."; } leaf optimal-route-reflection-group { type string; description "Name of the ORR group this neighbor is going to be part of"; } leaf accept-own { type boolean; description "Handle self-originated routes with Accept-Own community. Valid for following neighbor address-families: VPNv4Unicast, VPNv6Unicast."; } leaf route-policy-out { type string; description "Route policy name to apply to outbound routes"; } container advertise-local-v4 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v4 leaf advertise-permanent-network { type empty; description "Advertise Permanent Networks to the peer"; } container remove-private-as-entire-as-path { presence "Indicates a remove-private-as-entire-as-path node is configured."; description "Remove private AS number from outbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from outbound updates . FALSE to prevent remove-private-AS from being inherited."; } leaf internal { type boolean; description "TRUE if we need to remove private AS from internal neighbors only. False to disable this knob"; } leaf entire { type boolean; description "TRUE to remove private AS from outbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path container advertise-vrf-imp-disable-v4 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v4 } // list neighbor-af } // container neighbor-afs leaf epe-peer-node-sid { type uint32 { range "0..1033575"; } description "Manual Segment Index assigned to this peer for egress peer engineering"; } container local-address-sub-net { description "Local Address subnet of routing updates"; leaf local-addresss-subnet { type inet:ip-address-no-zone; description "local address subnet ip address "; } leaf prefix-len { type uint32 { range "0..128"; } description "prefix length"; } } // container local-address-sub-net container local-address { description "Local ip address"; leaf local-address-disable { type boolean; description "TRUE to prevent this entity from having a local address if the parent has one.FALSE to specify local ip address"; } leaf local-ip-address { when "../local-address-disable = 'false'" { description "../LocalAddressDisable = false"; } type inet:ip-address-no-zone; description "Local ip address for neighbor"; } } // container local-address container bmp-activates { description "Enable BMP logging for this neighbor"; list bmp-activate { key "server-id"; description "Enable BMP logging for this particular server"; leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-activate } // container bmp-activates container ebgp-multihop { presence "Contains mandatory nodes that used to set default values"; description "Allow EBGP neighbors not on directly connected networks"; leaf max-hop-count { type uint32 { range "1..255"; } mandatory true; description "Maximum hop count"; } leaf mpls-deactivation { type boolean; mandatory true; description "TRUE to not enable MPLS and NULL rewrite."; } } // container ebgp-multihop leaf session-group-add-member { type string; description "Inherit address-family independent config from a session-group"; } leaf egress-peer-engineering { type boolean; description "TRUE to enable egress peer engineering FALSE to disable egress peer engineering and to prevent inheritance from a parent"; } container remote-as { description "Set remote AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container remote-as container local-as { description "Specify a local-as number"; leaf as-xx { type dt1:Bgp-as-range; must "../as-yy and not(../disable)"; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; must "../as-xx and not(../disable)"; description "yy of AS number xx.yy"; } leaf no-prepend { type empty; must "../as-xx and ../as-yy and not(../disable)"; description "Do not prepend Local AS to announcements from this neighbor"; } leaf disable { type empty; must "not(../as-xx or ../as-yy or ../no-prepend or ../replace-as or ../dual-as)"; description "Disable Local AS and prevent it from being inherited from a parent"; } leaf replace-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and not(../disable)"; description "Prepend only Local AS to announcements from this neighbor"; } leaf dual-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and ../replace-as and not(../disable)"; description "Dual-AS mode"; } } // container local-as leaf neighbor-graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peer"; } leaf shutdown { type boolean; description "TRUE to shutdown this entity, FALSE to prevent this entity from being shutdown even if the parent is."; } leaf description { type string; description "Up to 80 characters describing this neighbor"; } leaf suppress-extended-nexthop-encoding-capability { type boolean; description "TRUE to suppress Extended Nexthop encoding capability. FALSE to not suppress and to prevent inheritance from a parent"; } leaf neighbor-group-add-member { type string; description "Inherit configuration from a neighbor-group"; } container password { description "Set or disable a password"; leaf password-disable { type boolean; description "TRUE to prevent this entity from having a password even if the parent has one. FALSEto specify a password"; } leaf password { when "../password-disable = 'false'" { description "../PasswordDisable = false"; } type xr:Proprietary-password; description "The neighbor password. Leave unspecified when disabling the password."; } } // container password leaf ebgp-recv-dmz { type boolean; description "TRUE to receive DMZ link bandwidth from ebgp peer. FALSE to not receive from ebgp peer and to prevent inheritance from a parent"; } container advertisement-interval { presence "Indicates a advertisement-interval node is configured."; description "Minimum interval between sending BGP routing updates"; leaf minimum-interval { type uint32 { range "0..600"; } units "second"; mandatory true; description "Minimum advertisement interval time, secs part"; } leaf minimum-interval-msecs { type uint32 { range "0..999"; } units "millisecond"; description "Minimum advertisement interval time, msecs part"; } } // container advertisement-interval container neighbor-cluster-id { description "Neighbor Cluster-id"; leaf cluster-id-number { type uint32 { range "1..4294967295"; } description "Route-Reflector Cluster ID as 32 bit quantity"; } leaf cluster-id-address { type inet:ipv4-address-no-zone; description "Route-Reflector Cluster ID in IPV4 address format"; } } // container neighbor-cluster-id leaf neighbor-graceful-restart { type Bgp-nbrgr; description "TRUE to Enable graceful restart supportfor neighbor. FALSE to disable graceful restart support for neighbor."; } leaf enforce-first-as { type boolean; description "TRUE to enforce first AS; FALSE to not enforce first AS."; } leaf idle-watch-time { type uint32 { range "30..1800"; } units "second"; description "Time to wait for deleteing IDLE state Dynamic peer"; } container tcpmss { description "TCP Maximum segment size"; leaf tcpmss-disable { type boolean; description "TRUE, to prevent inheritance ofTCP MSS valuefrom its parents.FALSE, otherwise"; } leaf mss { type uint32 { range "68..10000"; } description "Maximum Segment Size"; } } // container tcpmss leaf session-open-mode { type Bgp-tcp-mode; default "either"; description "TCP mode to be used to establish BGP session"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos container update-in-filtering { description "Inbound update filtering"; container update-in-filtering-message-buffers { presence "Indicates a update-in-filtering-message-buffers node is configured."; description "Message buffers to store filtered updates"; leaf number-of-buffers { type uint32 { range "0..25"; } mandatory true; description "Number of message buffers"; } leaf non-circular-buffer { type boolean; mandatory true; description "TRUE to configure non-circular buffer"; } } // container update-in-filtering-message-buffers leaf enable { type empty; description "Configure inbound update filtering"; } leaf update-in-filtering-attribute-filter-group { type string; description "Attribute-filter group name for update filtering"; } leaf update-in-filtering-syslog-disable { type empty; description "Disable inbound update filtering syslog messages"; } } // container update-in-filtering leaf ebgp-send-dmz-enable-modes { type Bgp-ebgp-send-dmz-enable-mode; description "Default mode, Cumulative mode or Disable to prevent inheritance from a parent"; } container msg-log-out { description "Message log outbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Outbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a outbound message logging if parent has one"; } } // container msg-log-out leaf suppress-all-capabilities { type boolean; description "TRUE to suppress all capabilities. FALSE to not suppress and to prevent inheritance from a parent"; } leaf max-peers { type uint32 { range "1..4096"; } description "Set Maximum Peers in Dynamic Range"; } container ao-keychain { description "Set or disable AO based authentication"; leaf ao-keychain-disable { type boolean; description "TRUE to prevent this entity from having AO keychain based authentication even if the parent has one.FALSE to enable AO keychain based authentication"; } leaf ao-keychain-name { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type string; description "Name of the AO keychain associated with this neighbor"; } leaf ao-include-tcp-options { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Include TCP options header with AO"; } leaf ao-accept-mismatch-connection { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Accept new connections even though AO mismatched"; } } // container ao-keychain leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } container receive-buffer-size { description "Set socket receive buffer size and BGP read buffer size"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP read buffer size in bytes"; } } // container receive-buffer-size container msg-log-in { description "Message log inbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Inbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a inbound message logging if parent has one"; } } // container msg-log-in leaf additional-paths-send-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Send capability"; } leaf propagate-dmz-link-bandwidth { type boolean; description "TRUE to propagate DMZ link bandwidth. FALSE to not propagate and to prevent inheritance from a parent"; } container epe-peer-set-identities { description "Assign this neighbor to following peer-sets, used for egress peer engineering"; list epe-peer-set-identity { key "set-identity"; description "Assign this neighbor to mentioned peer-set"; leaf set-identity { type uint32 { range "1..255"; } description "Identity of this EPE Peer-set"; } } // list epe-peer-set-identity } // container epe-peer-set-identities leaf bfd-enable-modes { type Bgp-bfd-enable-mode; description "Strict mode, Default mode or Disable to prevent inheritance from a parent"; } container send-buffer-size { description "Set socket send buffer size and BGP write buffer size"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP write buffer size in bytes"; } } // container send-buffer-size leaf ttl-security { type boolean; description "TRUE to enable BGP TTL Security. FALSE to not enable it and to prevent inheritance from a parent"; } leaf neighbor-graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbor"; } container timers { description "BGP per neighbor timers."; leaf keepalive-interval { type uint32 { range "0..65535"; } default "60"; description "Keepalive interval"; } leaf hold-time { type uint32 { range "0..65535"; } default "180"; description "Hold time. Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } default "3"; description "Minimum acceptable hold time. Specify 0 to disable keepalives/hold time"; } } // container timers leaf bfd-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf bfd-minimum-interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } leaf remote-as-list { type string; description "Remote-as-list group name"; } leaf labeled-unicast-equivalent-for-inbound-updates { type boolean; description "TRUE to merge updates FALSE to not merge updates and to prevent inheritance from a parent"; } leaf additional-paths-receive-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Receive capability"; } container keychain { description "Set or disable keychain based authentication"; leaf keychain-disable { type boolean; description "TRUE to prevent this entity from having a keychain based authentication even if the parent has one.FALSE to specify a keychain name"; } leaf keychain-name { when "../keychain-disable = 'false'" { description "../KeychainDisable = false"; } type string; description "Name of the keychain associated with neighbor"; } } // container keychain leaf ignore-connected-check-ebgp { type boolean; description "TRUE to disable the connected nexthop check for this peer.FALSE to enable the connected nexthop check for this peer."; } leaf suppress-four-byte-as-capability { type boolean; description "TRUE to suppress BGP 4-byte-as capability. FALSE to not suppress it and to prevent inheritance from a parent"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } container graceful-maintenance { description "Graceful Maintenance mode"; container graceful-maintenance-local-preference { description "Set Local Preference to advertise routes with"; leaf gshut-loc-pref-disable { type boolean; description "TRUE, to prevent inheritance of Local Pref value from its parents.FALSE, otherwise"; } leaf local-preference { type uint32 { range "0..4294967295"; } description "Local Preference Value"; } } // container graceful-maintenance-local-preference container graceful-maintenance-as-prepends { description "Number of times to prepend local AS number to the AS path"; leaf gshut-prepends-disable { type boolean; description "TRUE, to prevent inheritance of AS Prepends value from its parents.FALSE, otherwise"; } leaf as-prepends { type uint32 { range "0..6"; } description "number of times AS prepends"; } } // container graceful-maintenance-as-prepends leaf enable { type empty; description "Enter Graceful Maintenance mode to configure parametrs"; } leaf graceful-maintenance-activate { type boolean; description "Initiate the graceful shutdown procedure"; } } // container graceful-maintenance } // list neighbor list neighbor-prefix-length { key "neighbor-address prefix-length"; description "A particular BGP peer"; leaf neighbor-address { type inet:ip-address-no-zone; description "Neighbor address"; } leaf prefix-length { type uint32 { range "0..127"; } description "Prefix length"; } container neighbor-afs { description "BGP neighbor AF configuration table"; list neighbor-af { key "af-name"; description "Address family type of neighbor"; leaf af-name { type dt1:Bgp-address-family; description "BGP neighbor address family"; } leaf neighbor-af-long-lived-graceful-restart-capable { type boolean; default "false"; description "TRUE to treat neighbor as Long-lived Graceful-restart capable. FALSE to rely on capability negotiation."; } leaf l2vpn-signalling { type Bgp-signal; description "Disable signalling type on the peer"; } leaf send-ext-community-ebgp { type boolean; description "TRUE to send extended communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf accept-route-legacy-rt { type boolean; description "TRUE to configure as a accept-route-legacy-RT. FALSE to prevent accept-route-legacy-RT from being inherited."; } container aigp-cost-community { description "Send AIGP value in Cost Community. "; leaf enable { type boolean; description "TRUE to enable sending cost community, FALSE otherwise "; } leaf cost-community-id { when "../enable = 'true'" { description "../Enable = 'true'"; } type uint32 { range "0..255"; } description "Cost Community ID"; } leaf transitive { when "../enable = 'true'" { description "../Enable = 'true'"; } type boolean; description "True to send transitive cost community FALSE otherwise"; } leaf cost-community-poi-type { when "../enable = 'true'" { description "../Enable = 'true'"; } type Bgp-aigp-cfg-poi; description "Cost Community POI"; } } // container aigp-cost-community leaf cluster-id-allow-equal { type boolean; description "TRUE to disable cluster-id check for first id in the cluster-id-list. FALSE to enable check for all cluster-ids in the list."; } leaf send-community-ebgp { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } container advertise-def-imp-disable-v6 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v6 container advertise-disable { description "Disable Advertise Of Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-disable leaf send-multicast-attr { type Bgp-send-mcast-attr-cfg; description "Config send multicast attribute for this neighbor"; } container maximum-prefixes { presence "Indicates a maximum-prefixes node is configured."; description "Maximum number of prefixes to accept from this peer"; leaf prefix-limit { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum prefixes limit"; } leaf warning-percentage { type uint32 { range "1..100"; } mandatory true; description "Threshold value (%) at which to generate a warning message."; } leaf warning-only { type boolean; mandatory true; description "TRUE to only give a warning message when limit is exceeded. FALSE to accept max prefix limit only."; } leaf restart-time { type uint32 { range "0..65535"; } mandatory true; description "Restart interval"; } leaf discard-extra-paths { type boolean; mandatory true; description "Discard extra paths when limit is exceeded"; } } // container maximum-prefixes container advertise-bridge-domain-imp-disable-v6 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v6 container remove-private-as-entire-as-path-inbound { presence "Indicates a remove-private-as-entire-as-path-inbound node is configured."; description "Remove private AS number from inbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from inbound updates. FALSE to prevent remove-private-AS from being inherited."; } leaf entire { type boolean; description "TRUE to remove private AS from inbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path-inbound leaf next-hop-unchanged { type boolean; description "TRUE to disable overwriting of next hop before advertising to eBGP peers. FALSE to prevent next-hop-unchanged from being inherited."; } leaf advertise-local-labeled-route { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label"; } container advertise-def-imp-disable-v4 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v4 leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container advertise-bridge-domain-imp-disable-v4 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v4 leaf flowspec-validation { type Bgp-flowspec-validation-cfg; description "Config Flowspec validation for this neighbor"; } container advertise-l2vpn-evpn { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-l2vpn-evpn container advertise-local-l2vpn-evpn { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-l2vpn-evpn leaf encapsulation-type { type Bgp-af-encapsulation; description "Encapsulation type for this neighbor"; } leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf enforce-multiple-labels { type boolean; description "TRUE to enforce multiple labels support."; } leaf as-override { type boolean; default "true"; description "TRUE to override matching AS-number while sending update. FALSE to prevent as-override from being inherited from the parent"; } leaf multipath { type empty; description "Allow paths from this neighbor to be eligible for selective multipath"; } leaf send-community-ebgp-graceful-shutdown { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf activate { type empty; description "Activate an address family for this neighbor. Deletion of this object causes deletion of all the objects under NeighborAF/VRFNeighborAF/NeighborGroupAF associated with this object."; } leaf prefix-orf-policy { type string; description "Prefix ORF policy name for incoming updates"; } container neighbor-af-long-lived-graceful-restart-stale-time { description "Maximum time to wait before purging long lived routes"; leaf stale-time-send { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } leaf stale-time-accept { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } } // container neighbor-af-long-lived-graceful-restart-stale-time leaf update-out-orig-loop-chk-disable { type empty; description "Enable/disable Originator loop check for this neighbor-group/af-group"; } leaf aigp { type Bgp-aigp-cfg; description "Enable Accumulated IGP Metric for this neighbor."; } leaf aigp-send-med { type Bgp-aigp-cfg; description "Enable/Disable sending AIGP in MED "; } container advertise-v6 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v6 leaf allow-as-in { type uint32 { range "1..10"; } default "3"; description "Allow as-path with my AS present in it"; } leaf advertise-orf { type Bgp-orf; default "none"; description "Advertise ORF capability to the peer"; } leaf route-reflector-client { type boolean; description "TRUE to configure as a route-reflector-client. FALSE to prevent route-reflector-client from being inherited."; } leaf next-hop-self { type boolean; description "Disable the next hop calculation and insert your own address in the nexthop field of advertised routes you learned from the neighbor."; } container advertise-local-v6 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v6 leaf srv6version4 { type boolean; description "TRUE to enable SRv6 version 4,FALSE to disable SRv6 version 4"; } container slow-peer { description "Slow peer detection and update group splitting"; leaf detection { when "../static = 'true' or ../static = 'false'" { description "../Static = 'true' or ../Static = false"; } type boolean; description "Detection enable or disable"; } leaf static { type boolean; description "Static or dynamic split"; } leaf dynamic-type { when "../static = 'false'" { description "../Static = false"; } type Bgp-upd-dynamic; description "Dynamic or Permanent"; } } // container slow-peer leaf route-policy-in { type string; description "Route policy name to apply to inbound routes"; } container import { description "Import Reorigination options for Routes from the peer"; leaf import-stitching { type boolean; description "TRUE to Import with Stitching RTs, FALSE to Import with normal RTs"; } leaf import-reoriginate { type boolean; description "TRUE to Reoriginate imported routes, FALSE to not Reoriginate imported routes - not supported"; } leaf import-reoriginate-stitching { type boolean; description "TRUE to Reoriginate imported routes with Stitching RTs, FALSE to Reoriginate imported routes with normal RTs"; } } // container import container default-originate { description "Originate default route to this neighbor"; leaf enable { type boolean; default "false"; description "FALSE to prevent default-originate from, being inherited from a parent. TRUE otherwise."; } leaf route-policy-name { type string; description "Route policy name to specify criteria to originate default."; } } // container default-originate container soft-reconfiguration { description "Enable/disable inbound soft reconfiguration for this neighbor/neighbor-group/af-group"; leaf inbound-soft { type boolean; default "false"; description "FALSE to prohibit inbound soft reconfiguration. TRUE otherwise."; } leaf soft-always { type boolean; default "false"; description "TRUE to always use soft reconfig, even if route refresh is supported. FALSE otherwise."; } leaf rpki-options { type Bgp-rpki-soft-reconf-cfg; default "rpki-default-option"; description "Rpki tested ordropped paths should be stored"; } } // container soft-reconfiguration container advertise-vrf-imp-disable-v6 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v6 leaf default-weight { type uint32 { range "0..65535"; } description "Set default weight for routes from this neighbor/neighbor-group/af-group"; } leaf af-group { type string; description "Inherit configuration for this address-family from an AF-group"; } container advertise-v4 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v4 leaf next-hop-unchanged-multipath { type boolean; description "TRUE to disable overwriting of next hop for multipaths. FALSE to prevent next-hop-unchanged for multipaths."; } leaf optimal-route-reflection-group { type string; description "Name of the ORR group this neighbor is going to be part of"; } leaf accept-own { type boolean; description "Handle self-originated routes with Accept-Own community. Valid for following neighbor address-families: VPNv4Unicast, VPNv6Unicast."; } leaf route-policy-out { type string; description "Route policy name to apply to outbound routes"; } container advertise-local-v4 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v4 leaf advertise-permanent-network { type empty; description "Advertise Permanent Networks to the peer"; } container remove-private-as-entire-as-path { presence "Indicates a remove-private-as-entire-as-path node is configured."; description "Remove private AS number from outbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from outbound updates . FALSE to prevent remove-private-AS from being inherited."; } leaf internal { type boolean; description "TRUE if we need to remove private AS from internal neighbors only. False to disable this knob"; } leaf entire { type boolean; description "TRUE to remove private AS from outbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path container advertise-vrf-imp-disable-v4 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v4 } // list neighbor-af } // container neighbor-afs leaf epe-peer-node-sid { type uint32 { range "0..1033575"; } description "Manual Segment Index assigned to this peer for egress peer engineering"; } container local-address-sub-net { description "Local Address subnet of routing updates"; leaf local-addresss-subnet { type inet:ip-address-no-zone; description "local address subnet ip address "; } leaf prefix-len { type uint32 { range "0..128"; } description "prefix length"; } } // container local-address-sub-net container local-address { description "Local ip address"; leaf local-address-disable { type boolean; description "TRUE to prevent this entity from having a local address if the parent has one.FALSE to specify local ip address"; } leaf local-ip-address { when "../local-address-disable = 'false'" { description "../LocalAddressDisable = false"; } type inet:ip-address-no-zone; description "Local ip address for neighbor"; } } // container local-address container bmp-activates { description "Enable BMP logging for this neighbor"; list bmp-activate { key "server-id"; description "Enable BMP logging for this particular server"; leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-activate } // container bmp-activates container ebgp-multihop { presence "Contains mandatory nodes that used to set default values"; description "Allow EBGP neighbors not on directly connected networks"; leaf max-hop-count { type uint32 { range "1..255"; } mandatory true; description "Maximum hop count"; } leaf mpls-deactivation { type boolean; mandatory true; description "TRUE to not enable MPLS and NULL rewrite."; } } // container ebgp-multihop leaf session-group-add-member { type string; description "Inherit address-family independent config from a session-group"; } leaf egress-peer-engineering { type boolean; description "TRUE to enable egress peer engineering FALSE to disable egress peer engineering and to prevent inheritance from a parent"; } container remote-as { description "Set remote AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container remote-as container local-as { description "Specify a local-as number"; leaf as-xx { type dt1:Bgp-as-range; must "../as-yy and not(../disable)"; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; must "../as-xx and not(../disable)"; description "yy of AS number xx.yy"; } leaf no-prepend { type empty; must "../as-xx and ../as-yy and not(../disable)"; description "Do not prepend Local AS to announcements from this neighbor"; } leaf disable { type empty; must "not(../as-xx or ../as-yy or ../no-prepend or ../replace-as or ../dual-as)"; description "Disable Local AS and prevent it from being inherited from a parent"; } leaf replace-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and not(../disable)"; description "Prepend only Local AS to announcements from this neighbor"; } leaf dual-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and ../replace-as and not(../disable)"; description "Dual-AS mode"; } } // container local-as leaf neighbor-graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peer"; } leaf shutdown { type boolean; description "TRUE to shutdown this entity, FALSE to prevent this entity from being shutdown even if the parent is."; } leaf description { type string; description "Up to 80 characters describing this neighbor"; } leaf suppress-extended-nexthop-encoding-capability { type boolean; description "TRUE to suppress Extended Nexthop encoding capability. FALSE to not suppress and to prevent inheritance from a parent"; } leaf neighbor-group-add-member { type string; description "Inherit configuration from a neighbor-group"; } container password { description "Set or disable a password"; leaf password-disable { type boolean; description "TRUE to prevent this entity from having a password even if the parent has one. FALSEto specify a password"; } leaf password { when "../password-disable = 'false'" { description "../PasswordDisable = false"; } type xr:Proprietary-password; description "The neighbor password. Leave unspecified when disabling the password."; } } // container password leaf ebgp-recv-dmz { type boolean; description "TRUE to receive DMZ link bandwidth from ebgp peer. FALSE to not receive from ebgp peer and to prevent inheritance from a parent"; } container advertisement-interval { presence "Indicates a advertisement-interval node is configured."; description "Minimum interval between sending BGP routing updates"; leaf minimum-interval { type uint32 { range "0..600"; } units "second"; mandatory true; description "Minimum advertisement interval time, secs part"; } leaf minimum-interval-msecs { type uint32 { range "0..999"; } units "millisecond"; description "Minimum advertisement interval time, msecs part"; } } // container advertisement-interval container neighbor-cluster-id { description "Neighbor Cluster-id"; leaf cluster-id-number { type uint32 { range "1..4294967295"; } description "Route-Reflector Cluster ID as 32 bit quantity"; } leaf cluster-id-address { type inet:ipv4-address-no-zone; description "Route-Reflector Cluster ID in IPV4 address format"; } } // container neighbor-cluster-id leaf neighbor-graceful-restart { type Bgp-nbrgr; description "TRUE to Enable graceful restart supportfor neighbor. FALSE to disable graceful restart support for neighbor."; } leaf enforce-first-as { type boolean; description "TRUE to enforce first AS; FALSE to not enforce first AS."; } leaf idle-watch-time { type uint32 { range "30..1800"; } units "second"; description "Time to wait for deleteing IDLE state Dynamic peer"; } container tcpmss { description "TCP Maximum segment size"; leaf tcpmss-disable { type boolean; description "TRUE, to prevent inheritance ofTCP MSS valuefrom its parents.FALSE, otherwise"; } leaf mss { type uint32 { range "68..10000"; } description "Maximum Segment Size"; } } // container tcpmss leaf session-open-mode { type Bgp-tcp-mode; default "either"; description "TCP mode to be used to establish BGP session"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos container update-in-filtering { description "Inbound update filtering"; container update-in-filtering-message-buffers { presence "Indicates a update-in-filtering-message-buffers node is configured."; description "Message buffers to store filtered updates"; leaf number-of-buffers { type uint32 { range "0..25"; } mandatory true; description "Number of message buffers"; } leaf non-circular-buffer { type boolean; mandatory true; description "TRUE to configure non-circular buffer"; } } // container update-in-filtering-message-buffers leaf enable { type empty; description "Configure inbound update filtering"; } leaf update-in-filtering-attribute-filter-group { type string; description "Attribute-filter group name for update filtering"; } leaf update-in-filtering-syslog-disable { type empty; description "Disable inbound update filtering syslog messages"; } } // container update-in-filtering leaf ebgp-send-dmz-enable-modes { type Bgp-ebgp-send-dmz-enable-mode; description "Default mode, Cumulative mode or Disable to prevent inheritance from a parent"; } container msg-log-out { description "Message log outbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Outbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a outbound message logging if parent has one"; } } // container msg-log-out leaf suppress-all-capabilities { type boolean; description "TRUE to suppress all capabilities. FALSE to not suppress and to prevent inheritance from a parent"; } leaf max-peers { type uint32 { range "1..4096"; } description "Set Maximum Peers in Dynamic Range"; } container ao-keychain { description "Set or disable AO based authentication"; leaf ao-keychain-disable { type boolean; description "TRUE to prevent this entity from having AO keychain based authentication even if the parent has one.FALSE to enable AO keychain based authentication"; } leaf ao-keychain-name { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type string; description "Name of the AO keychain associated with this neighbor"; } leaf ao-include-tcp-options { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Include TCP options header with AO"; } leaf ao-accept-mismatch-connection { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Accept new connections even though AO mismatched"; } } // container ao-keychain leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } container receive-buffer-size { description "Set socket receive buffer size and BGP read buffer size"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP read buffer size in bytes"; } } // container receive-buffer-size container msg-log-in { description "Message log inbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Inbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a inbound message logging if parent has one"; } } // container msg-log-in leaf additional-paths-send-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Send capability"; } leaf propagate-dmz-link-bandwidth { type boolean; description "TRUE to propagate DMZ link bandwidth. FALSE to not propagate and to prevent inheritance from a parent"; } container epe-peer-set-identities { description "Assign this neighbor to following peer-sets, used for egress peer engineering"; list epe-peer-set-identity { key "set-identity"; description "Assign this neighbor to mentioned peer-set"; leaf set-identity { type uint32 { range "1..255"; } description "Identity of this EPE Peer-set"; } } // list epe-peer-set-identity } // container epe-peer-set-identities leaf bfd-enable-modes { type Bgp-bfd-enable-mode; description "Strict mode, Default mode or Disable to prevent inheritance from a parent"; } container send-buffer-size { description "Set socket send buffer size and BGP write buffer size"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP write buffer size in bytes"; } } // container send-buffer-size leaf ttl-security { type boolean; description "TRUE to enable BGP TTL Security. FALSE to not enable it and to prevent inheritance from a parent"; } leaf neighbor-graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbor"; } container timers { description "BGP per neighbor timers."; leaf keepalive-interval { type uint32 { range "0..65535"; } default "60"; description "Keepalive interval"; } leaf hold-time { type uint32 { range "0..65535"; } default "180"; description "Hold time. Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } default "3"; description "Minimum acceptable hold time. Specify 0 to disable keepalives/hold time"; } } // container timers leaf bfd-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf bfd-minimum-interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } leaf remote-as-list { type string; description "Remote-as-list group name"; } leaf labeled-unicast-equivalent-for-inbound-updates { type boolean; description "TRUE to merge updates FALSE to not merge updates and to prevent inheritance from a parent"; } leaf additional-paths-receive-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Receive capability"; } container keychain { description "Set or disable keychain based authentication"; leaf keychain-disable { type boolean; description "TRUE to prevent this entity from having a keychain based authentication even if the parent has one.FALSE to specify a keychain name"; } leaf keychain-name { when "../keychain-disable = 'false'" { description "../KeychainDisable = false"; } type string; description "Name of the keychain associated with neighbor"; } } // container keychain leaf ignore-connected-check-ebgp { type boolean; description "TRUE to disable the connected nexthop check for this peer.FALSE to enable the connected nexthop check for this peer."; } leaf suppress-four-byte-as-capability { type boolean; description "TRUE to suppress BGP 4-byte-as capability. FALSE to not suppress it and to prevent inheritance from a parent"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } container graceful-maintenance { description "Graceful Maintenance mode"; container graceful-maintenance-local-preference { description "Set Local Preference to advertise routes with"; leaf gshut-loc-pref-disable { type boolean; description "TRUE, to prevent inheritance of Local Pref value from its parents.FALSE, otherwise"; } leaf local-preference { type uint32 { range "0..4294967295"; } description "Local Preference Value"; } } // container graceful-maintenance-local-preference container graceful-maintenance-as-prepends { description "Number of times to prepend local AS number to the AS path"; leaf gshut-prepends-disable { type boolean; description "TRUE, to prevent inheritance of AS Prepends value from its parents.FALSE, otherwise"; } leaf as-prepends { type uint32 { range "0..6"; } description "number of times AS prepends"; } } // container graceful-maintenance-as-prepends leaf enable { type empty; description "Enter Graceful Maintenance mode to configure parametrs"; } leaf graceful-maintenance-activate { type boolean; description "Initiate the graceful shutdown procedure"; } } // container graceful-maintenance } // list neighbor-prefix-length } // container neighbors container neighbor-groups { description "Neighbor-group configuration"; list neighbor-group { key "neighbor-group-name"; description "A particular BGP neighbor group"; container neighbor-group-afs { description "BGP neighbor-group AF configuration table"; list neighbor-group-af { key "af-name"; description "Address family type of neighbor group"; leaf af-name { type dt1:Bgp-address-family; description "BGP neighbor group address family"; } leaf neighbor-af-long-lived-graceful-restart-capable { type boolean; default "false"; description "TRUE to treat neighbor as Long-lived Graceful-restart capable. FALSE to rely on capability negotiation."; } leaf l2vpn-signalling { type Bgp-signal; description "Disable signalling type on the peer"; } leaf send-ext-community-ebgp { type boolean; description "TRUE to send extended communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf accept-route-legacy-rt { type boolean; description "TRUE to configure as a accept-route-legacy-RT. FALSE to prevent accept-route-legacy-RT from being inherited."; } container aigp-cost-community { description "Send AIGP value in Cost Community. "; leaf enable { type boolean; description "TRUE to enable sending cost community, FALSE otherwise "; } leaf cost-community-id { when "../enable = 'true'" { description "../Enable = 'true'"; } type uint32 { range "0..255"; } description "Cost Community ID"; } leaf transitive { when "../enable = 'true'" { description "../Enable = 'true'"; } type boolean; description "True to send transitive cost community FALSE otherwise"; } leaf cost-community-poi-type { when "../enable = 'true'" { description "../Enable = 'true'"; } type Bgp-aigp-cfg-poi; description "Cost Community POI"; } } // container aigp-cost-community leaf cluster-id-allow-equal { type boolean; description "TRUE to disable cluster-id check for first id in the cluster-id-list. FALSE to enable check for all cluster-ids in the list."; } leaf send-community-ebgp { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } container advertise-def-imp-disable-v6 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v6 container advertise-disable { description "Disable Advertise Of Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-disable leaf send-multicast-attr { type Bgp-send-mcast-attr-cfg; description "Config send multicast attribute for this neighbor"; } container maximum-prefixes { presence "Indicates a maximum-prefixes node is configured."; description "Maximum number of prefixes to accept from this peer"; leaf prefix-limit { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum prefixes limit"; } leaf warning-percentage { type uint32 { range "1..100"; } mandatory true; description "Threshold value (%) at which to generate a warning message."; } leaf warning-only { type boolean; mandatory true; description "TRUE to only give a warning message when limit is exceeded. FALSE to accept max prefix limit only."; } leaf restart-time { type uint32 { range "0..65535"; } mandatory true; description "Restart interval"; } leaf discard-extra-paths { type boolean; mandatory true; description "Discard extra paths when limit is exceeded"; } } // container maximum-prefixes container advertise-bridge-domain-imp-disable-v6 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v6 container remove-private-as-entire-as-path-inbound { presence "Indicates a remove-private-as-entire-as-path-inbound node is configured."; description "Remove private AS number from inbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from inbound updates. FALSE to prevent remove-private-AS from being inherited."; } leaf entire { type boolean; description "TRUE to remove private AS from inbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path-inbound leaf next-hop-unchanged { type boolean; description "TRUE to disable overwriting of next hop before advertising to eBGP peers. FALSE to prevent next-hop-unchanged from being inherited."; } leaf advertise-local-labeled-route { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label"; } container advertise-def-imp-disable-v4 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v4 leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container advertise-bridge-domain-imp-disable-v4 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v4 leaf flowspec-validation { type Bgp-flowspec-validation-cfg; description "Config Flowspec validation for this neighbor"; } container advertise-l2vpn-evpn { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-l2vpn-evpn container advertise-local-l2vpn-evpn { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-l2vpn-evpn leaf encapsulation-type { type Bgp-af-encapsulation; description "Encapsulation type for this neighbor"; } leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf enforce-multiple-labels { type boolean; description "TRUE to enforce multiple labels support."; } leaf as-override { type boolean; default "true"; description "TRUE to override matching AS-number while sending update. FALSE to prevent as-override from being inherited from the parent"; } leaf multipath { type empty; description "Allow paths from this neighbor to be eligible for selective multipath"; } leaf send-community-ebgp-graceful-shutdown { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf activate { type empty; description "Activate an address family for this neighbor. Deletion of this object causes deletion of all the objects under NeighborAF/VRFNeighborAF/NeighborGroupAF associated with this object."; } leaf prefix-orf-policy { type string; description "Prefix ORF policy name for incoming updates"; } container neighbor-af-long-lived-graceful-restart-stale-time { description "Maximum time to wait before purging long lived routes"; leaf stale-time-send { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } leaf stale-time-accept { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } } // container neighbor-af-long-lived-graceful-restart-stale-time container site-of-origin { description "Site-of-Origin extended community associated with the neighbor"; leaf type { type Bgp-site-of-origin; description "Type of Extended community"; } leaf as-xx { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as-index { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-extcomm-asn-index; description "AS number Index"; } leaf address { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type inet:ipv4-address-no-zone; description "IP address"; } leaf address-index { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type dt1:Bgp-extcomm-v4-addr-index; description "IP address Index"; } } // container site-of-origin leaf update-out-orig-loop-chk-disable { type empty; description "Enable/disable Originator loop check for this neighbor-group/af-group"; } leaf aigp { type Bgp-aigp-cfg; description "Enable Accumulated IGP Metric for this neighbor."; } leaf aigp-send-med { type Bgp-aigp-cfg; description "Enable/Disable sending AIGP in MED "; } container advertise-v6 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v6 leaf allow-as-in { type uint32 { range "1..10"; } default "3"; description "Allow as-path with my AS present in it"; } leaf advertise-orf { type Bgp-orf; default "none"; description "Advertise ORF capability to the peer"; } leaf route-reflector-client { type boolean; description "TRUE to configure as a route-reflector-client. FALSE to prevent route-reflector-client from being inherited."; } leaf next-hop-self { type boolean; description "Disable the next hop calculation and insert your own address in the nexthop field of advertised routes you learned from the neighbor."; } container advertise-local-v6 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v6 leaf srv6version4 { type boolean; description "TRUE to enable SRv6 version 4,FALSE to disable SRv6 version 4"; } container slow-peer { description "Slow peer detection and update group splitting"; leaf detection { when "../static = 'true' or ../static = 'false'" { description "../Static = 'true' or ../Static = false"; } type boolean; description "Detection enable or disable"; } leaf static { type boolean; description "Static or dynamic split"; } leaf dynamic-type { when "../static = 'false'" { description "../Static = false"; } type Bgp-upd-dynamic; description "Dynamic or Permanent"; } } // container slow-peer leaf route-policy-in { type string; description "Route policy name to apply to inbound routes"; } container import { description "Import Reorigination options for Routes from the peer"; leaf import-stitching { type boolean; description "TRUE to Import with Stitching RTs, FALSE to Import with normal RTs"; } leaf import-reoriginate { type boolean; description "TRUE to Reoriginate imported routes, FALSE to not Reoriginate imported routes - not supported"; } leaf import-reoriginate-stitching { type boolean; description "TRUE to Reoriginate imported routes with Stitching RTs, FALSE to Reoriginate imported routes with normal RTs"; } } // container import container default-originate { description "Originate default route to this neighbor"; leaf enable { type boolean; default "false"; description "FALSE to prevent default-originate from, being inherited from a parent. TRUE otherwise."; } leaf route-policy-name { type string; description "Route policy name to specify criteria to originate default."; } } // container default-originate container soft-reconfiguration { description "Enable/disable inbound soft reconfiguration for this neighbor/neighbor-group/af-group"; leaf inbound-soft { type boolean; default "false"; description "FALSE to prohibit inbound soft reconfiguration. TRUE otherwise."; } leaf soft-always { type boolean; default "false"; description "TRUE to always use soft reconfig, even if route refresh is supported. FALSE otherwise."; } leaf rpki-options { type Bgp-rpki-soft-reconf-cfg; default "rpki-default-option"; description "Rpki tested ordropped paths should be stored"; } } // container soft-reconfiguration container advertise-vrf-imp-disable-v6 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v6 leaf default-weight { type uint32 { range "0..65535"; } description "Set default weight for routes from this neighbor/neighbor-group/af-group"; } leaf af-group { type string; description "Inherit configuration for this address-family from an AF-group"; } container advertise-v4 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v4 leaf next-hop-unchanged-multipath { type boolean; description "TRUE to disable overwriting of next hop for multipaths. FALSE to prevent next-hop-unchanged for multipaths."; } leaf optimal-route-reflection-group { type string; description "Name of the ORR group this neighbor is going to be part of"; } leaf accept-own { type boolean; description "Handle self-originated routes with Accept-Own community. Valid for following neighbor address-families: VPNv4Unicast, VPNv6Unicast."; } leaf route-policy-out { type string; description "Route policy name to apply to outbound routes"; } container advertise-local-v4 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v4 leaf advertise-permanent-network { type empty; description "Advertise Permanent Networks to the peer"; } container remove-private-as-entire-as-path { presence "Indicates a remove-private-as-entire-as-path node is configured."; description "Remove private AS number from outbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from outbound updates . FALSE to prevent remove-private-AS from being inherited."; } leaf internal { type boolean; description "TRUE if we need to remove private AS from internal neighbors only. False to disable this knob"; } leaf entire { type boolean; description "TRUE to remove private AS from outbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path container advertise-vrf-imp-disable-v4 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v4 } // list neighbor-group-af } // container neighbor-group-afs leaf neighbor-group-add-member { type string; description "Inherit configuration from a neighbor-group"; } leaf neighbor-group-name { type xr:Cisco-ios-xr-string; description "BGP neighbor group name"; } container local-address-sub-net { description "Local Address subnet of routing updates"; leaf local-addresss-subnet { type inet:ip-address-no-zone; description "local address subnet ip address "; } leaf prefix-len { type uint32 { range "0..128"; } description "prefix length"; } } // container local-address-sub-net leaf internal-vpn-client-ibgp-ce { type boolean; description "TRUE to preserve the CE path attributes.FALSE to override CE path attributes."; } container local-address { description "Local ip address"; leaf local-address-disable { type boolean; description "TRUE to prevent this entity from having a local address if the parent has one.FALSE to specify local ip address"; } leaf local-ip-address { when "../local-address-disable = 'false'" { description "../LocalAddressDisable = false"; } type inet:ip-address-no-zone; description "Local ip address for neighbor"; } } // container local-address container bmp-activates { description "Enable BMP logging for this neighbor"; list bmp-activate { key "server-id"; description "Enable BMP logging for this particular server"; leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-activate } // container bmp-activates container ebgp-multihop { presence "Contains mandatory nodes that used to set default values"; description "Allow EBGP neighbors not on directly connected networks"; leaf max-hop-count { type uint32 { range "1..255"; } mandatory true; description "Maximum hop count"; } leaf mpls-deactivation { type boolean; mandatory true; description "TRUE to not enable MPLS and NULL rewrite."; } } // container ebgp-multihop leaf session-group-add-member { type string; description "Inherit address-family independent config from a session-group"; } leaf egress-peer-engineering { type boolean; description "TRUE to enable egress peer engineering FALSE to disable egress peer engineering and to prevent inheritance from a parent"; } container remote-as { description "Set remote AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container remote-as container local-as { description "Specify a local-as number"; leaf as-xx { type dt1:Bgp-as-range; must "../as-yy and not(../disable)"; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; must "../as-xx and not(../disable)"; description "yy of AS number xx.yy"; } leaf no-prepend { type empty; must "../as-xx and ../as-yy and not(../disable)"; description "Do not prepend Local AS to announcements from this neighbor"; } leaf disable { type empty; must "not(../as-xx or ../as-yy or ../no-prepend or ../replace-as or ../dual-as)"; description "Disable Local AS and prevent it from being inherited from a parent"; } leaf replace-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and not(../disable)"; description "Prepend only Local AS to announcements from this neighbor"; } leaf dual-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and ../replace-as and not(../disable)"; description "Dual-AS mode"; } } // container local-as leaf neighbor-graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peer"; } leaf shutdown { type boolean; description "TRUE to shutdown this entity, FALSE to prevent this entity from being shutdown even if the parent is."; } leaf description { type string; description "Up to 80 characters describing this neighbor"; } leaf suppress-extended-nexthop-encoding-capability { type boolean; description "TRUE to suppress Extended Nexthop encoding capability. FALSE to not suppress and to prevent inheritance from a parent"; } container password { description "Set or disable a password"; leaf password-disable { type boolean; description "TRUE to prevent this entity from having a password even if the parent has one. FALSEto specify a password"; } leaf password { when "../password-disable = 'false'" { description "../PasswordDisable = false"; } type xr:Proprietary-password; description "The neighbor password. Leave unspecified when disabling the password."; } } // container password leaf ebgp-recv-dmz { type boolean; description "TRUE to receive DMZ link bandwidth from ebgp peer. FALSE to not receive from ebgp peer and to prevent inheritance from a parent"; } container advertisement-interval { presence "Indicates a advertisement-interval node is configured."; description "Minimum interval between sending BGP routing updates"; leaf minimum-interval { type uint32 { range "0..600"; } units "second"; mandatory true; description "Minimum advertisement interval time, secs part"; } leaf minimum-interval-msecs { type uint32 { range "0..999"; } units "millisecond"; description "Minimum advertisement interval time, msecs part"; } } // container advertisement-interval container neighbor-cluster-id { description "Neighbor Cluster-id"; leaf cluster-id-number { type uint32 { range "1..4294967295"; } description "Route-Reflector Cluster ID as 32 bit quantity"; } leaf cluster-id-address { type inet:ipv4-address-no-zone; description "Route-Reflector Cluster ID in IPV4 address format"; } } // container neighbor-cluster-id leaf neighbor-graceful-restart { type Bgp-nbrgr; description "TRUE to Enable graceful restart supportfor neighbor. FALSE to disable graceful restart support for neighbor."; } leaf enforce-first-as { type boolean; description "TRUE to enforce first AS; FALSE to not enforce first AS."; } leaf idle-watch-time { type uint32 { range "30..1800"; } units "second"; description "Time to wait for deleteing IDLE state Dynamic peer"; } container tcpmss { description "TCP Maximum segment size"; leaf tcpmss-disable { type boolean; description "TRUE, to prevent inheritance ofTCP MSS valuefrom its parents.FALSE, otherwise"; } leaf mss { type uint32 { range "68..10000"; } description "Maximum Segment Size"; } } // container tcpmss leaf session-open-mode { type Bgp-tcp-mode; default "either"; description "TCP mode to be used to establish BGP session"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos container update-in-filtering { description "Inbound update filtering"; container update-in-filtering-message-buffers { presence "Indicates a update-in-filtering-message-buffers node is configured."; description "Message buffers to store filtered updates"; leaf number-of-buffers { type uint32 { range "0..25"; } mandatory true; description "Number of message buffers"; } leaf non-circular-buffer { type boolean; mandatory true; description "TRUE to configure non-circular buffer"; } } // container update-in-filtering-message-buffers leaf enable { type empty; description "Configure inbound update filtering"; } leaf update-in-filtering-attribute-filter-group { type string; description "Attribute-filter group name for update filtering"; } leaf update-in-filtering-syslog-disable { type empty; description "Disable inbound update filtering syslog messages"; } } // container update-in-filtering leaf ebgp-send-dmz-enable-modes { type Bgp-ebgp-send-dmz-enable-mode; description "Default mode, Cumulative mode or Disable to prevent inheritance from a parent"; } container msg-log-out { description "Message log outbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Outbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a outbound message logging if parent has one"; } } // container msg-log-out leaf suppress-all-capabilities { type boolean; description "TRUE to suppress all capabilities. FALSE to not suppress and to prevent inheritance from a parent"; } leaf max-peers { type uint32 { range "1..4096"; } description "Set Maximum Peers in Dynamic Range"; } container ao-keychain { description "Set or disable AO based authentication"; leaf ao-keychain-disable { type boolean; description "TRUE to prevent this entity from having AO keychain based authentication even if the parent has one.FALSE to enable AO keychain based authentication"; } leaf ao-keychain-name { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type string; description "Name of the AO keychain associated with this neighbor"; } leaf ao-include-tcp-options { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Include TCP options header with AO"; } leaf ao-accept-mismatch-connection { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Accept new connections even though AO mismatched"; } } // container ao-keychain leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } container receive-buffer-size { description "Set socket receive buffer size and BGP read buffer size"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP read buffer size in bytes"; } } // container receive-buffer-size container msg-log-in { description "Message log inbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Inbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a inbound message logging if parent has one"; } } // container msg-log-in leaf additional-paths-send-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Send capability"; } leaf propagate-dmz-link-bandwidth { type boolean; description "TRUE to propagate DMZ link bandwidth. FALSE to not propagate and to prevent inheritance from a parent"; } container epe-peer-set-identities { description "Assign this neighbor to following peer-sets, used for egress peer engineering"; list epe-peer-set-identity { key "set-identity"; description "Assign this neighbor to mentioned peer-set"; leaf set-identity { type uint32 { range "1..255"; } description "Identity of this EPE Peer-set"; } } // list epe-peer-set-identity } // container epe-peer-set-identities leaf bfd-enable-modes { type Bgp-bfd-enable-mode; description "Strict mode, Default mode or Disable to prevent inheritance from a parent"; } container send-buffer-size { description "Set socket send buffer size and BGP write buffer size"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP write buffer size in bytes"; } } // container send-buffer-size leaf ttl-security { type boolean; description "TRUE to enable BGP TTL Security. FALSE to not enable it and to prevent inheritance from a parent"; } leaf neighbor-graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbor"; } container timers { description "BGP per neighbor timers."; leaf keepalive-interval { type uint32 { range "0..65535"; } default "60"; description "Keepalive interval"; } leaf hold-time { type uint32 { range "0..65535"; } default "180"; description "Hold time. Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } default "3"; description "Minimum acceptable hold time. Specify 0 to disable keepalives/hold time"; } } // container timers leaf bfd-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf bfd-minimum-interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } leaf remote-as-list { type string; description "Remote-as-list group name"; } leaf labeled-unicast-equivalent-for-inbound-updates { type boolean; description "TRUE to merge updates FALSE to not merge updates and to prevent inheritance from a parent"; } leaf additional-paths-receive-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Receive capability"; } container keychain { description "Set or disable keychain based authentication"; leaf keychain-disable { type boolean; description "TRUE to prevent this entity from having a keychain based authentication even if the parent has one.FALSE to specify a keychain name"; } leaf keychain-name { when "../keychain-disable = 'false'" { description "../KeychainDisable = false"; } type string; description "Name of the keychain associated with neighbor"; } } // container keychain leaf ignore-connected-check-ebgp { type boolean; description "TRUE to disable the connected nexthop check for this peer.FALSE to enable the connected nexthop check for this peer."; } leaf suppress-four-byte-as-capability { type boolean; description "TRUE to suppress BGP 4-byte-as capability. FALSE to not suppress it and to prevent inheritance from a parent"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } leaf create { type empty; description "Create this group. Deletion of this object causes deletion of all the objects under NeighborGroup/SessionGroup associated with this object."; } container graceful-maintenance { description "Graceful Maintenance mode"; container graceful-maintenance-local-preference { description "Set Local Preference to advertise routes with"; leaf gshut-loc-pref-disable { type boolean; description "TRUE, to prevent inheritance of Local Pref value from its parents.FALSE, otherwise"; } leaf local-preference { type uint32 { range "0..4294967295"; } description "Local Preference Value"; } } // container graceful-maintenance-local-preference container graceful-maintenance-as-prepends { description "Number of times to prepend local AS number to the AS path"; leaf gshut-prepends-disable { type boolean; description "TRUE, to prevent inheritance of AS Prepends value from its parents.FALSE, otherwise"; } leaf as-prepends { type uint32 { range "0..6"; } description "number of times AS prepends"; } } // container graceful-maintenance-as-prepends leaf enable { type empty; description "Enter Graceful Maintenance mode to configure parametrs"; } leaf graceful-maintenance-activate { type boolean; description "Initiate the graceful shutdown procedure"; } } // container graceful-maintenance } // list neighbor-group } // container neighbor-groups container af-groups { description "AF-group configuration"; list af-group { key "af-group-name"; description "A particular BGP AF group"; container af-group-afs { description "AF group configuration table"; list af-group-af { key "af-name"; description "Address family type of an AF group"; leaf af-group { type string; description "Inherit configuration for this address-family from an AF-group"; } leaf create { type empty; description "Create this address family group. Deletion of this object causes deletion of all the objects under AFGroup associated with this object."; } leaf af-name { type dt1:Bgp-address-family; description "BGP AF group address family"; } leaf neighbor-af-long-lived-graceful-restart-capable { type boolean; default "false"; description "TRUE to treat neighbor as Long-lived Graceful-restart capable. FALSE to rely on capability negotiation."; } leaf l2vpn-signalling { type Bgp-signal; description "Disable signalling type on the peer"; } leaf send-ext-community-ebgp { type boolean; description "TRUE to send extended communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf accept-route-legacy-rt { type boolean; description "TRUE to configure as a accept-route-legacy-RT. FALSE to prevent accept-route-legacy-RT from being inherited."; } container aigp-cost-community { description "Send AIGP value in Cost Community. "; leaf enable { type boolean; description "TRUE to enable sending cost community, FALSE otherwise "; } leaf cost-community-id { when "../enable = 'true'" { description "../Enable = 'true'"; } type uint32 { range "0..255"; } description "Cost Community ID"; } leaf transitive { when "../enable = 'true'" { description "../Enable = 'true'"; } type boolean; description "True to send transitive cost community FALSE otherwise"; } leaf cost-community-poi-type { when "../enable = 'true'" { description "../Enable = 'true'"; } type Bgp-aigp-cfg-poi; description "Cost Community POI"; } } // container aigp-cost-community leaf cluster-id-allow-equal { type boolean; description "TRUE to disable cluster-id check for first id in the cluster-id-list. FALSE to enable check for all cluster-ids in the list."; } leaf send-community-ebgp { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } container advertise-def-imp-disable-v6 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v6 container advertise-disable { description "Disable Advertise Of Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-disable leaf send-multicast-attr { type Bgp-send-mcast-attr-cfg; description "Config send multicast attribute for this neighbor"; } container maximum-prefixes { presence "Indicates a maximum-prefixes node is configured."; description "Maximum number of prefixes to accept from this peer"; leaf prefix-limit { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum prefixes limit"; } leaf warning-percentage { type uint32 { range "1..100"; } mandatory true; description "Threshold value (%) at which to generate a warning message."; } leaf warning-only { type boolean; mandatory true; description "TRUE to only give a warning message when limit is exceeded. FALSE to accept max prefix limit only."; } leaf restart-time { type uint32 { range "0..65535"; } mandatory true; description "Restart interval"; } leaf discard-extra-paths { type boolean; mandatory true; description "Discard extra paths when limit is exceeded"; } } // container maximum-prefixes container advertise-bridge-domain-imp-disable-v6 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v6 container remove-private-as-entire-as-path-inbound { presence "Indicates a remove-private-as-entire-as-path-inbound node is configured."; description "Remove private AS number from inbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from inbound updates. FALSE to prevent remove-private-AS from being inherited."; } leaf entire { type boolean; description "TRUE to remove private AS from inbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path-inbound leaf next-hop-unchanged { type boolean; description "TRUE to disable overwriting of next hop before advertising to eBGP peers. FALSE to prevent next-hop-unchanged from being inherited."; } leaf advertise-local-labeled-route { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label"; } container advertise-def-imp-disable-v4 { description "Disable Advertise Of Default VRF Imported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-def-imp-disable-v4 leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container advertise-bridge-domain-imp-disable-v4 { description "Disable Advertise Of VRF EVPN Extranet Imported Routes"; leaf af-name { type dt1:Bgp-address-family; must "../adv-option and ../rt-type"; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; must "../af-name and ../rt-type"; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; must "../af-name and ../adv-option"; description "RT type"; } } // container advertise-bridge-domain-imp-disable-v4 leaf flowspec-validation { type Bgp-flowspec-validation-cfg; description "Config Flowspec validation for this neighbor"; } container advertise-l2vpn-evpn { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-l2vpn-evpn container advertise-local-l2vpn-evpn { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-l2vpn-evpn leaf encapsulation-type { type Bgp-af-encapsulation; description "Encapsulation type for this neighbor"; } leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf enforce-multiple-labels { type boolean; description "TRUE to enforce multiple labels support."; } leaf as-override { type boolean; default "true"; description "TRUE to override matching AS-number while sending update. FALSE to prevent as-override from being inherited from the parent"; } leaf multipath { type empty; description "Allow paths from this neighbor to be eligible for selective multipath"; } leaf send-community-ebgp-graceful-shutdown { type boolean; description "TRUE to send communities to the external neighbor/neighbor-group/af-group. FALSE not to send and to prevent inheritance from a parent"; } leaf prefix-orf-policy { type string; description "Prefix ORF policy name for incoming updates"; } container neighbor-af-long-lived-graceful-restart-stale-time { description "Maximum time to wait before purging long lived routes"; leaf stale-time-send { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } leaf stale-time-accept { type uint32 { range "0..16777215"; } units "second"; default "0"; description "Max time (seconds)"; } } // container neighbor-af-long-lived-graceful-restart-stale-time container site-of-origin { description "Site-of-Origin extended community associated with the neighbor"; leaf type { type Bgp-site-of-origin; description "Type of Extended community"; } leaf as-xx { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-as-range; description "AS number"; } leaf as-index { when "../type = 'as' or ../type = 'four-byte-as'" { description "../Type = AS or ../Type = FourByteAS"; } type dt1:Bgp-extcomm-asn-index; description "AS number Index"; } leaf address { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type inet:ipv4-address-no-zone; description "IP address"; } leaf address-index { when "../type = 'ipv4-address'" { description "../Type = IPV4Address"; } type dt1:Bgp-extcomm-v4-addr-index; description "IP address Index"; } } // container site-of-origin leaf update-out-orig-loop-chk-disable { type empty; description "Enable/disable Originator loop check for this neighbor-group/af-group"; } leaf aigp { type Bgp-aigp-cfg; description "Enable Accumulated IGP Metric for this neighbor."; } leaf aigp-send-med { type Bgp-aigp-cfg; description "Enable/Disable sending AIGP in MED "; } container advertise-v6 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v6 leaf allow-as-in { type uint32 { range "1..10"; } default "3"; description "Allow as-path with my AS present in it"; } leaf advertise-orf { type Bgp-orf; default "none"; description "Advertise ORF capability to the peer"; } leaf route-reflector-client { type boolean; description "TRUE to configure as a route-reflector-client. FALSE to prevent route-reflector-client from being inherited."; } leaf next-hop-self { type boolean; description "Disable the next hop calculation and insert your own address in the nexthop field of advertised routes you learned from the neighbor."; } container advertise-local-v6 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v6 leaf srv6version4 { type boolean; description "TRUE to enable SRv6 version 4,FALSE to disable SRv6 version 4"; } container slow-peer { description "Slow peer detection and update group splitting"; leaf detection { when "../static = 'true' or ../static = 'false'" { description "../Static = 'true' or ../Static = false"; } type boolean; description "Detection enable or disable"; } leaf static { type boolean; description "Static or dynamic split"; } leaf dynamic-type { when "../static = 'false'" { description "../Static = false"; } type Bgp-upd-dynamic; description "Dynamic or Permanent"; } } // container slow-peer leaf route-policy-in { type string; description "Route policy name to apply to inbound routes"; } container import { description "Import Reorigination options for Routes from the peer"; leaf import-stitching { type boolean; description "TRUE to Import with Stitching RTs, FALSE to Import with normal RTs"; } leaf import-reoriginate { type boolean; description "TRUE to Reoriginate imported routes, FALSE to not Reoriginate imported routes - not supported"; } leaf import-reoriginate-stitching { type boolean; description "TRUE to Reoriginate imported routes with Stitching RTs, FALSE to Reoriginate imported routes with normal RTs"; } } // container import container default-originate { description "Originate default route to this neighbor"; leaf enable { type boolean; default "false"; description "FALSE to prevent default-originate from, being inherited from a parent. TRUE otherwise."; } leaf route-policy-name { type string; description "Route policy name to specify criteria to originate default."; } } // container default-originate container soft-reconfiguration { description "Enable/disable inbound soft reconfiguration for this neighbor/neighbor-group/af-group"; leaf inbound-soft { type boolean; default "false"; description "FALSE to prohibit inbound soft reconfiguration. TRUE otherwise."; } leaf soft-always { type boolean; default "false"; description "TRUE to always use soft reconfig, even if route refresh is supported. FALSE otherwise."; } leaf rpki-options { type Bgp-rpki-soft-reconf-cfg; default "rpki-default-option"; description "Rpki tested ordropped paths should be stored"; } } // container soft-reconfiguration container advertise-vrf-imp-disable-v6 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v6 leaf default-weight { type uint32 { range "0..65535"; } description "Set default weight for routes from this neighbor/neighbor-group/af-group"; } container advertise-v4 { description "Advertise Translated Routes to the peer"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-v4 leaf next-hop-unchanged-multipath { type boolean; description "TRUE to disable overwriting of next hop for multipaths. FALSE to prevent next-hop-unchanged for multipaths."; } leaf optimal-route-reflection-group { type string; description "Name of the ORR group this neighbor is going to be part of"; } leaf accept-own { type boolean; description "Handle self-originated routes with Accept-Own community. Valid for following neighbor address-families: VPNv4Unicast, VPNv6Unicast."; } leaf route-policy-out { type string; description "Route policy name to apply to outbound routes"; } container advertise-local-v4 { description "Advertise Of Local Routes to the peer with different RT"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf reorg-option { type Bgp-reorg-opt; description "Reorigination option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-local-v4 leaf advertise-permanent-network { type empty; description "Advertise Permanent Networks to the peer"; } container remove-private-as-entire-as-path { presence "Indicates a remove-private-as-entire-as-path node is configured."; description "Remove private AS number from outbound updates"; leaf enable { type boolean; mandatory true; description "TRUE to remove private AS from outbound updates . FALSE to prevent remove-private-AS from being inherited."; } leaf internal { type boolean; description "TRUE if we need to remove private AS from internal neighbors only. False to disable this knob"; } leaf entire { type boolean; description "TRUE to remove private AS from outbound updates if all ASes in aspath areprivate. FALSE to prevent remove-private-ASfrom being inherited."; } } // container remove-private-as-entire-as-path container advertise-vrf-imp-disable-v4 { description "Disable Advertise Of VRF ReImported Routes"; leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf adv-option { type Bgp-reorg-opt; description "Advertise option"; } leaf rt-type { type Bgp-adv-rt; description "RT type"; } } // container advertise-vrf-imp-disable-v4 } // list af-group-af } // container af-group-afs leaf af-group-name { type xr:Cisco-ios-xr-string; description "BGP AF group name"; } } // list af-group } // container af-groups container session-groups { description "Session group configuration"; list session-group { key "session-group-name"; description "A particular BGP session group"; leaf session-group-add-member { type string; description "Inherit address-family independent config from a session-group"; } leaf session-group-name { type xr:Cisco-ios-xr-string; description "BGP session group name"; } container local-address-sub-net { description "Local Address subnet of routing updates"; leaf local-addresss-subnet { type inet:ip-address-no-zone; description "local address subnet ip address "; } leaf prefix-len { type uint32 { range "0..128"; } description "prefix length"; } } // container local-address-sub-net leaf internal-vpn-client-ibgp-ce { type boolean; description "TRUE to preserve the CE path attributes.FALSE to override CE path attributes."; } container local-address { description "Local ip address"; leaf local-address-disable { type boolean; description "TRUE to prevent this entity from having a local address if the parent has one.FALSE to specify local ip address"; } leaf local-ip-address { when "../local-address-disable = 'false'" { description "../LocalAddressDisable = false"; } type inet:ip-address-no-zone; description "Local ip address for neighbor"; } } // container local-address container bmp-activates { description "Enable BMP logging for this neighbor"; list bmp-activate { key "server-id"; description "Enable BMP logging for this particular server"; leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-activate } // container bmp-activates container ebgp-multihop { presence "Contains mandatory nodes that used to set default values"; description "Allow EBGP neighbors not on directly connected networks"; leaf max-hop-count { type uint32 { range "1..255"; } mandatory true; description "Maximum hop count"; } leaf mpls-deactivation { type boolean; mandatory true; description "TRUE to not enable MPLS and NULL rewrite."; } } // container ebgp-multihop leaf egress-peer-engineering { type boolean; description "TRUE to enable egress peer engineering FALSE to disable egress peer engineering and to prevent inheritance from a parent"; } container remote-as { description "Set remote AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container remote-as container local-as { description "Specify a local-as number"; leaf as-xx { type dt1:Bgp-as-range; must "../as-yy and not(../disable)"; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; must "../as-xx and not(../disable)"; description "yy of AS number xx.yy"; } leaf no-prepend { type empty; must "../as-xx and ../as-yy and not(../disable)"; description "Do not prepend Local AS to announcements from this neighbor"; } leaf disable { type empty; must "not(../as-xx or ../as-yy or ../no-prepend or ../replace-as or ../dual-as)"; description "Disable Local AS and prevent it from being inherited from a parent"; } leaf replace-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and not(../disable)"; description "Prepend only Local AS to announcements from this neighbor"; } leaf dual-as { type empty; must "../as-xx and ../as-yy and ../no-prepend and ../replace-as and not(../disable)"; description "Dual-AS mode"; } } // container local-as leaf neighbor-graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peer"; } leaf shutdown { type boolean; description "TRUE to shutdown this entity, FALSE to prevent this entity from being shutdown even if the parent is."; } leaf description { type string; description "Up to 80 characters describing this neighbor"; } leaf suppress-extended-nexthop-encoding-capability { type boolean; description "TRUE to suppress Extended Nexthop encoding capability. FALSE to not suppress and to prevent inheritance from a parent"; } container password { description "Set or disable a password"; leaf password-disable { type boolean; description "TRUE to prevent this entity from having a password even if the parent has one. FALSEto specify a password"; } leaf password { when "../password-disable = 'false'" { description "../PasswordDisable = false"; } type xr:Proprietary-password; description "The neighbor password. Leave unspecified when disabling the password."; } } // container password leaf ebgp-recv-dmz { type boolean; description "TRUE to receive DMZ link bandwidth from ebgp peer. FALSE to not receive from ebgp peer and to prevent inheritance from a parent"; } container advertisement-interval { presence "Indicates a advertisement-interval node is configured."; description "Minimum interval between sending BGP routing updates"; leaf minimum-interval { type uint32 { range "0..600"; } units "second"; mandatory true; description "Minimum advertisement interval time, secs part"; } leaf minimum-interval-msecs { type uint32 { range "0..999"; } units "millisecond"; description "Minimum advertisement interval time, msecs part"; } } // container advertisement-interval container neighbor-cluster-id { description "Neighbor Cluster-id"; leaf cluster-id-number { type uint32 { range "1..4294967295"; } description "Route-Reflector Cluster ID as 32 bit quantity"; } leaf cluster-id-address { type inet:ipv4-address-no-zone; description "Route-Reflector Cluster ID in IPV4 address format"; } } // container neighbor-cluster-id leaf neighbor-graceful-restart { type Bgp-nbrgr; description "TRUE to Enable graceful restart supportfor neighbor. FALSE to disable graceful restart support for neighbor."; } leaf enforce-first-as { type boolean; description "TRUE to enforce first AS; FALSE to not enforce first AS."; } leaf idle-watch-time { type uint32 { range "30..1800"; } units "second"; description "Time to wait for deleteing IDLE state Dynamic peer"; } container tcpmss { description "TCP Maximum segment size"; leaf tcpmss-disable { type boolean; description "TRUE, to prevent inheritance ofTCP MSS valuefrom its parents.FALSE, otherwise"; } leaf mss { type uint32 { range "68..10000"; } description "Maximum Segment Size"; } } // container tcpmss leaf session-open-mode { type Bgp-tcp-mode; default "either"; description "TCP mode to be used to establish BGP session"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos container update-in-filtering { description "Inbound update filtering"; container update-in-filtering-message-buffers { presence "Indicates a update-in-filtering-message-buffers node is configured."; description "Message buffers to store filtered updates"; leaf number-of-buffers { type uint32 { range "0..25"; } mandatory true; description "Number of message buffers"; } leaf non-circular-buffer { type boolean; mandatory true; description "TRUE to configure non-circular buffer"; } } // container update-in-filtering-message-buffers leaf enable { type empty; description "Configure inbound update filtering"; } leaf update-in-filtering-attribute-filter-group { type string; description "Attribute-filter group name for update filtering"; } leaf update-in-filtering-syslog-disable { type empty; description "Disable inbound update filtering syslog messages"; } } // container update-in-filtering leaf ebgp-send-dmz-enable-modes { type Bgp-ebgp-send-dmz-enable-mode; description "Default mode, Cumulative mode or Disable to prevent inheritance from a parent"; } container msg-log-out { description "Message log outbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Outbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a outbound message logging if parent has one"; } } // container msg-log-out leaf suppress-all-capabilities { type boolean; description "TRUE to suppress all capabilities. FALSE to not suppress and to prevent inheritance from a parent"; } leaf max-peers { type uint32 { range "1..4096"; } description "Set Maximum Peers in Dynamic Range"; } container ao-keychain { description "Set or disable AO based authentication"; leaf ao-keychain-disable { type boolean; description "TRUE to prevent this entity from having AO keychain based authentication even if the parent has one.FALSE to enable AO keychain based authentication"; } leaf ao-keychain-name { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type string; description "Name of the AO keychain associated with this neighbor"; } leaf ao-include-tcp-options { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Include TCP options header with AO"; } leaf ao-accept-mismatch-connection { when "../ao-keychain-disable = 'false'" { description "../AOKeychainDisable = false"; } type boolean; description "Accept new connections even though AO mismatched"; } } // container ao-keychain leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } container receive-buffer-size { description "Set socket receive buffer size and BGP read buffer size"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP read buffer size in bytes"; } } // container receive-buffer-size container msg-log-in { description "Message log inbound"; leaf msg-buf-count { type uint32 { range "1..500"; } description "Inbound message log buffer size"; } leaf msg-log-disable { type boolean; description "Disable inbound message logging"; } leaf msg-log-inherit-disable { type boolean; description "TRUE, to prevent this entity from having a inbound message logging if parent has one"; } } // container msg-log-in leaf additional-paths-send-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Send capability"; } leaf propagate-dmz-link-bandwidth { type boolean; description "TRUE to propagate DMZ link bandwidth. FALSE to not propagate and to prevent inheritance from a parent"; } container epe-peer-set-identities { description "Assign this neighbor to following peer-sets, used for egress peer engineering"; list epe-peer-set-identity { key "set-identity"; description "Assign this neighbor to mentioned peer-set"; leaf set-identity { type uint32 { range "1..255"; } description "Identity of this EPE Peer-set"; } } // list epe-peer-set-identity } // container epe-peer-set-identities leaf bfd-enable-modes { type Bgp-bfd-enable-mode; description "Strict mode, Default mode or Disable to prevent inheritance from a parent"; } container send-buffer-size { description "Set socket send buffer size and BGP write buffer size"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP write buffer size in bytes"; } } // container send-buffer-size leaf ttl-security { type boolean; description "TRUE to enable BGP TTL Security. FALSE to not enable it and to prevent inheritance from a parent"; } leaf neighbor-graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbor"; } container timers { description "BGP per neighbor timers."; leaf keepalive-interval { type uint32 { range "0..65535"; } default "60"; description "Keepalive interval"; } leaf hold-time { type uint32 { range "0..65535"; } default "180"; description "Hold time. Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } default "3"; description "Minimum acceptable hold time. Specify 0 to disable keepalives/hold time"; } } // container timers leaf bfd-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf bfd-minimum-interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } leaf remote-as-list { type string; description "Remote-as-list group name"; } leaf labeled-unicast-equivalent-for-inbound-updates { type boolean; description "TRUE to merge updates FALSE to not merge updates and to prevent inheritance from a parent"; } leaf additional-paths-receive-capability { type dt1:Bgp-nbr-cap-additional-paths-cfg; description "Advertise additional paths Receive capability"; } container keychain { description "Set or disable keychain based authentication"; leaf keychain-disable { type boolean; description "TRUE to prevent this entity from having a keychain based authentication even if the parent has one.FALSE to specify a keychain name"; } leaf keychain-name { when "../keychain-disable = 'false'" { description "../KeychainDisable = false"; } type string; description "Name of the keychain associated with neighbor"; } } // container keychain leaf ignore-connected-check-ebgp { type boolean; description "TRUE to disable the connected nexthop check for this peer.FALSE to enable the connected nexthop check for this peer."; } leaf suppress-four-byte-as-capability { type boolean; description "TRUE to suppress BGP 4-byte-as capability. FALSE to not suppress it and to prevent inheritance from a parent"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } leaf create { type empty; description "Create this group. Deletion of this object causes deletion of all the objects under NeighborGroup/SessionGroup associated with this object."; } container graceful-maintenance { description "Graceful Maintenance mode"; container graceful-maintenance-local-preference { description "Set Local Preference to advertise routes with"; leaf gshut-loc-pref-disable { type boolean; description "TRUE, to prevent inheritance of Local Pref value from its parents.FALSE, otherwise"; } leaf local-preference { type uint32 { range "0..4294967295"; } description "Local Preference Value"; } } // container graceful-maintenance-local-preference container graceful-maintenance-as-prepends { description "Number of times to prepend local AS number to the AS path"; leaf gshut-prepends-disable { type boolean; description "TRUE, to prevent inheritance of AS Prepends value from its parents.FALSE, otherwise"; } leaf as-prepends { type uint32 { range "0..6"; } description "number of times AS prepends"; } } // container graceful-maintenance-as-prepends leaf enable { type empty; description "Enter Graceful Maintenance mode to configure parametrs"; } leaf graceful-maintenance-activate { type boolean; description "Initiate the graceful shutdown procedure"; } } // container graceful-maintenance } // list session-group } // container session-groups } // container bgp-entity container global { description "Global default config"; container cluster-id { description "Configure Route-Reflector Cluster-id"; leaf cluster-id-number { type uint32 { range "1..4294967295"; } description "Route-Reflector Cluster ID as 32 bit quantity"; } leaf cluster-id-address { type inet:ipv4-address-no-zone; description "Route-Reflector Cluster ID in IPV4 address format"; } } // container cluster-id container write-limit { description "Set write-queue limit for each update group"; leaf formatted-messages { type uint32 { range "500..100000000"; } default "50000"; description "Number of messages to be formatted per update group"; } leaf enqueued-messages { type uint32 { range "500..100000000"; } default "250000"; description "Number of messages that can be enqueued in total"; } leaf desynchronize { type boolean; default "false"; description "TRUE to enable desynchronization, FALSE otherwise."; } } // container write-limit container update-delay { description "Set the max initial delay for sending updates"; leaf delay { type uint32 { range "0..3600"; } units "second"; default "120"; description "Delay value (seconds)"; } leaf always { type boolean; must "../delay"; default "false"; description "Set to TRUE to disable keepalive trigger bestpath and delay is enforced."; } } // container update-delay container optimal-route-reflection-group-global-afis { description "Global table of multiple ORR groups"; list optimal-route-reflection-group-global-afi { key "afi"; description "The afi of the ORR group"; leaf afi { type Bgp-orrafi; description "The AFI corresponds to root address"; } list optimal-route-reflection-group-global { key "group-name"; description "Global Optimal Route Reflector group. Each such group is equivalent to an IGP area"; leaf group-name { type xr:Cisco-ios-xr-string; description "Name of the ORR group"; } leaf primary-root-address { type inet:ip-address-no-zone; description "Primary Root for the ORR group"; } leaf secondary-root-address { type inet:ip-address-no-zone; description "Secondary Root for the ORR group"; } leaf tertiary-root-address { type inet:ip-address-no-zone; description "Tertiary Root for the ORR group"; } } // list optimal-route-reflection-group-global } // list optimal-route-reflection-group-global-afi } // container optimal-route-reflection-group-global-afis container as-league { description "AS League"; container peers { description "AS League Peers"; list peer { key "as-xx as-yy"; description "AS League Peer AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of peer AS xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of peer AS xx.yy"; } } // list peer } // container peers leaf enable { type empty; description "AS League creation"; } } // container as-league container rpki-servers { description "RPKI server configuration"; list rpki-server { key "server"; description "RPKI server configuration"; container bindsrc { description "RPKI server transport bind source"; leaf bindsrc-type { type Bgp-rpki-binssrc; description "Bind source type"; } leaf bind-src { type string; description "server bind source interface"; } } // container bindsrc container transport { description "RPKI server transport"; leaf transport { type Bgp-rpki-transport; default "ssh"; description "RPKI server transport"; } leaf port { type xr:Cisco-ios-xr-port-number; default "22"; description "port"; } } // container transport leaf enable { type empty; description "RPKI server configuration"; } leaf shutdown { type empty; description "RPKI server shutdown"; } leaf password { type xr:Proprietary-password; description "RPKI server password"; } leaf response-time { type Bgp-rpki-time-config; units "second"; description "RPKI server response-time(15-3600 seconds) or off"; } leaf username { type string; description "RPKI server username"; } leaf refresh-time { type Bgp-rpki-time-config; units "second"; description "RPKI server refresh-time(15-3600 seconds) or off"; } leaf purge-time { type uint32 { range "30..65535"; } units "second"; description "RPKI server purge-time (in seconds)"; } leaf server { type xr:Cisco-ios-xr-string; description "Server address (opaque string)"; } } // list rpki-server } // container rpki-servers container as-list-groups { description "AS-list group lists"; list as-list-group { key "as-list-group-name"; description "AS-List group"; container ases { description "AS list"; list as { key "as-xx as-yy"; description "AS-List group"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number/confed peer xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number/confed peer xx.yy"; } } // list as } // container ases leaf enable { type empty; description "AS-List group creation"; } leaf as-list-group-name { type xr:Cisco-ios-xr-string; description "Group name"; } } // list as-list-group } // container as-list-groups container limits { description "Maximum number that can be configured"; leaf maximum-neighbors { type uint32 { range "1..15000"; } default "10000"; description "Maximum number of neighbors that can be configured"; } } // container limits container confederation-domain { description "Set routing domain confederation AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number xx.yy"; } } // container confederation-domain container confederation-peer-ases { description "Define peer ASes in BGP confederation"; list confederation-peer-as { key "as-xx as-yy"; description "Confederation peer AS"; leaf as-xx { type dt1:Bgp-as-range; description "xx of AS number/confed peer xx.yy"; } leaf as-yy { type dt1:Bgp-as-range; description "yy of AS number/confed peer xx.yy"; } } // list confederation-peer-as } // container confederation-peer-ases container attribute-filter-groups { description "Attribute-filter groups list"; list attribute-filter-group { key "attribute-filter-group-name"; description "Attribute-filter group"; container attribute-filters { description "Attribute-filter group attributes list"; list attribute-filter { key "attribute-start attribute-end"; description "Attribute-filter group attribute"; leaf attribute-start { type dt1:Bgp-attribute-range; description "Start of attribute range"; } leaf attribute-end { type dt1:Bgp-attribute-range; description "End of attribute range"; } leaf filter-action { type dt1:Bgp-update-filter-action; mandatory true; description "Filtering action"; } } // list attribute-filter } // container attribute-filters leaf enable { type empty; description "Attribute-filter group creation"; } leaf attribute-filter-group-name { type xr:Cisco-ios-xr-string; description "Group name"; } } // list attribute-filter-group } // container attribute-filter-groups container segment-routing-global { description "Segment-routing Gbl Configurations"; container srv6-global { description "SRv6 Configurations"; leaf enable { type empty; description "Enable SRv6 configuration submode"; } leaf locator-name { type string; description "Configure Locator name for SID allocation"; } } // container srv6-global } // container segment-routing-global container global-afs { description "Global AF-specific configuration"; list global-af { key "af-name"; description "Global AF-specific configuration"; container isis-routes { description "Redistribute information for IS-IS routes ."; list isis-route { key "instance-name"; description "Redistribute IS-IS routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "IS-IS instance name"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf redist-type { type xr:Hex-integer; description "Redistribution type: 01 for level 1 routes, 02 for level 2 routes, 04 for level 1 inter-area routes. Logical combinations permitted. 00 for all options together"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list isis-route } // container isis-routes container domain-distinguisher { presence "Indicates a domain-distinguisher node is configured."; description "<ASN, router-id> tuple to use to identify the link-state domain"; leaf as { type dt1:Bgp-as-range; mandatory true; description "AS Number"; } leaf router-id { type inet:ipv4-address-no-zone; mandatory true; description "Router ID"; } } // container domain-distinguisher container vrf-all { description "Configurations to be inherited to all vrfs"; container segment-routing-vrf-all { description "Segment-routing Vrf All Configurations"; container srv6-vrf-all { description "SRv6 Configurations"; leaf enable { type empty; description "Enable SRv6 configuration submode"; } leaf srv6sid-allocation-mode { type string; description "SID allocation mode: per-ce Set per CE SID mode,per-vrf Set per VRF SID mode"; } leaf locator-name { type string; description "Configure Locator name for SID allocation"; } } // container srv6-vrf-all } // container segment-routing-vrf-all container label-mode { presence "Contains mandatory nodes that used to set default values"; description "MPLS-VPN label allocation mode"; leaf label-allocation-mode { type string; description "Label allocation mode: per-ce Set per CE label mode, per-vrf Set per VRF label mode"; } leaf route-policy-name { type string; description "Label mode route policy name"; } } // container label-mode leaf rnh-install-format { type Bgp-rnh-install-format; description "RNH install format type: extcomm - install rnh as opaque and extcomms, extcomm-only - install rnh as extcomms only"; } leaf enable { type empty; description "Enable vrf all configuration submode"; } leaf table-policy { type string; description "Configure policy for installation of routes to RIB"; } leaf source-rt-import-policy { type empty; description "Enable sourcing of import route-targets from import-policy"; } } // container vrf-all container export-vrf-allow { description "Allow export/leak to Vrf based on path-type"; leaf export-allow-backup { type boolean; description "TRUE Enable Leaking(export) of backup path, FALSE Disable Leaking(export) of backup path"; } } // container export-vrf-allow container disable-cluster-client-to-client-rrs { description "Disable client-to-client reflection for a cluster"; list disable-cluster-client-to-client-rr { must "number or ipv4-address" { description "Number or IPV4Address must be present."; } key "cluster-type"; description "Cluster ID for which reflection is to be disbled"; leaf cluster-type { type Bgp-cluster-id; description "Type of cluster-id"; } list number { when "../cluster-type = 'number'" { description "../ClusterType = Number"; } key "cluster-id-number"; description "number"; leaf cluster-id-number { type uint32 { range "0..4294967295"; } description "Cluster ID: if configured as a number"; } } // list number list ipv4-address { when "../cluster-type = 'ipv4-address'" { description "../ClusterType = IPV4Address"; } key "cluster-id-address"; description "ipv4 address"; leaf cluster-id-address { type inet:ip-address-no-zone; description "Cluster ID: if configured as an IP Address"; } } // list ipv4-address } // list disable-cluster-client-to-client-rr } // container disable-cluster-client-to-client-rrs container label-delay { presence "Indicates a label-delay node is configured."; description "Delay timer to batch label processing."; leaf seconds { type uint32 { range "0..10"; } units "second"; mandatory true; description "Delay, seconds part"; } leaf milliseconds { type uint32 { range "0..999"; } units "millisecond"; mandatory true; description "Delay, milliseconds part"; } } // container label-delay container ebgp { presence "Indicates a ebgp node is configured."; description "Use eBGP multipaths"; leaf paths-value { type uint32 { range "2..128"; } mandatory true; description "Number of paths"; } leaf unequal-cost { type boolean; mandatory true; description "UNUSED"; } leaf selective { type boolean; mandatory true; description "Allow multipaths only from marked neighbors"; } leaf order-by-igp-metric { type boolean; mandatory true; description "Order candidate multipaths by IGP metric"; } } // container ebgp container eibgp { presence "Indicates a eibgp node is configured."; description "Use eiBGP multipaths"; leaf paths-value { type uint32 { range "2..128"; } mandatory true; description "Number of paths"; } leaf unequal-cost { type boolean; mandatory true; description "UNUSED"; } leaf selective { type boolean; mandatory true; description "Allow multipaths only from marked neighbors"; } leaf order-by-igp-metric { type boolean; mandatory true; description "Order candidate multipaths by IGP metric"; } } // container eibgp container retain-rt { description "Accept received updates with the specified attributes"; leaf all { type boolean; description "Whether all RTs are to be retained, default is FALSE"; } leaf route-policy-name { type string; description "Route policy name"; } } // container retain-rt container ibgp { presence "Indicates a ibgp node is configured."; description "Use iBGP multipaths"; leaf paths-value { type uint32 { range "2..128"; } mandatory true; description "Number of paths"; } leaf unequal-cost { type boolean; mandatory true; description "Allow multipaths to have different IGP metrics"; } leaf selective { type boolean; mandatory true; description "Allow multipaths only from marked neighbors"; } leaf order-by-igp-metric { type boolean; mandatory true; description "Order candidate multipaths by IGP metric"; } } // container ibgp container import-delay { presence "Indicates a import-delay node is configured."; description "Delay timer to batch import processing."; leaf seconds { type uint32 { range "0..10"; } units "second"; mandatory true; description "Delay, seconds part"; } leaf milliseconds { type uint32 { range "0..999"; } units "millisecond"; mandatory true; description "Delay, milliseconds part"; } } // container import-delay container peer-set-ids { description "Table of Peer Set Identifiers"; list peer-set-id { key "peer-set"; description "Create Identifier for a Peer Set"; leaf peer-set-sid { type uint32 { range "0..1033575"; } description "Peer Set Label Index off SRLB to be assigned to this Peer Set"; } leaf enable { type empty; description "Peer Set Identifier creation"; } leaf peer-set { type uint32 { range "1..255"; } description "Identifier value"; } } // list peer-set-id } // container peer-set-ids leaf rnh-install-format { type Bgp-rnh-install-format; description "RNH install format type: extcomm - install rnh as opaque and extcomms, extcomm-only - install rnh as extcomms only"; } leaf option-basbr-only { type empty; description "This option makes the router an Option B ASBR for EVPN. Its assumed no DCI configs are present"; } leaf inter-as-install { type empty; description "Enable install remote MVPN routes to PIM in default VRF"; } leaf segmented-mcast { type empty; description "Enable segmented multicast"; } leaf implicit-import { type empty; description "Implicit import configuration"; } leaf disable-default-martian-check { type empty; description "Disable default Martian Check"; } leaf next-hop-critical-trigger-delay { type uint32 { range "0..4294967295"; } units "millisecond"; default "3000"; description "Next hop Critical Trigger Delay"; } leaf next-hop-non-critical-trigger-delay { type uint32 { range "0..4294967295"; } units "millisecond"; default "10000"; description "Next hop Non-critical Trigger Delay"; } leaf label-security-rpf { type empty; description "Calculate label-security RPF lists and install to RIB/LSD"; } leaf use-igpsr-label { type empty; description "Use IGP SR label for resolution configuration"; } leaf label-retain { type uint32 { range "3..60"; } units "minute"; description "Label retention time in minutes"; } leaf scan-time { type uint32 { range "5..3600"; } units "second"; default "60"; description "Configure background scanner interval for this address family"; } leaf source-route-target-policy { type string; description "Route policy name to apply to configure source route-target"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } leaf update-limit-sub-group-ebgp { type uint32 { range "1..512"; } units "megabyte"; default "32"; description "Upper bound on update generation transient memory usage for every EBGP Sub-group"; } leaf update-limit-address-family { type uint32 { range "4..2048"; } units "megabyte"; default "256"; description "Upper bound on update generation transient memory usage for the address-family"; } leaf update-limit-sub-group-ibgp { type uint32 { range "1..512"; } units "megabyte"; default "32"; description "Upper bound on update generation transient memory usage for every IBGP Sub-group"; } leaf optimal-route-reflection-default-bestpath { type boolean; description "Enable fallback to default table's bestpath when ORR bestpath is not available"; } leaf disable-client-to-client-rr { type empty; description "Disable client-to-client reflection"; } leaf next-hop-route-policy { type string; description "Next hop policy to filter out nexthop notification"; } leaf global-table-mcast { type empty; description "Enable global table multicast"; } leaf wait-rib-install { type empty; description "Wait for route install before sending updates to neighbors"; } leaf prefix-sid-map { type empty; description "Retrieve prefix sid mapping from SRMS"; } leaf af-name { type dt1:Bgp-address-family; description "Address family"; } leaf rpki-origin-as-validation-enable { type empty; description "RPKI origin-AS validation enable"; } container aggregate-addresses { description "Configure BGP aggregate entries"; list aggregate-address { key "aggregate-addr aggregate-prefix"; description "Aggregate address configuration"; leaf aggregate-addr { type inet:ip-address; description "Aggregate in prefix/length format (address part)"; } leaf aggregate-prefix { type uint16 { range "0..128"; } description "Aggregate in prefix/length format (prefix part)"; } leaf generate-set-info { type boolean; description "TRUE to generate AS set path information, FALSE otherwise"; } leaf generate-confederation-set-info { type boolean; description "TRUE to generate AS confederation set path information, FALSE otherwise"; } leaf summary-only { type boolean; description "TRUE to filter more specific routes from updates, FALSEotherwise"; } leaf route-policy-name { type string; description "Route policy on which to condition advertisement, suppression, and attributes"; } } // list aggregate-address } // container aggregate-addresses leaf dynamic-med-interval { type uint32 { range "0..10"; } units "minute"; default "10"; description "Update generation delay (in minutes) after a MED change"; } leaf event-prefix-route-policy { type string; description "Route Policy to mark prefixes to be traced"; } container dampening { presence "enable dampening"; description "Enable route-flap dampening"; leaf half-life { type uint32 { range "1..45"; } units "minute"; description "Half-life time for the penalty (minutes)."; } leaf reuse-threshold { type uint32 { range "1..20000"; } description "Value to start reusing a route."; } leaf suppress-threshold { type uint32 { range "1..20000"; } description "Value to start suppressing a route."; } leaf suppress-time { type uint32 { range "1..255"; } units "second"; description "Maximum duration to suppress a stable route (seconds)."; } leaf route-policy-name { type string; description "Route policy to specify criteria for dampening. This cannot be specified if any other parameters are specified."; } } // container dampening leaf enable { type empty; description "Enable the address family. Deletion of this object causes deletion of all the objects under GlobalAF/VRFGlobalAF associated with this object ."; } container rip-routes { presence "enable rip-routes"; description "Redistribute RIP routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container rip-routes container lisp-routes { presence "enable lisp-routes"; description "Redistribute lisp routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container lisp-routes container static-routes { presence "enable static-routes"; description "Redistribute static routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container static-routes container distance { presence "Indicates a distance node is configured."; description "Define an administrative distance"; leaf external-routes { type uint32 { range "1..255"; } mandatory true; description "Distance for routes external to the AS"; } leaf internal-routes { type uint32 { range "1..255"; } mandatory true; description "Distance for routes internal to the AS"; } leaf local-routes { type uint32 { range "1..255"; } mandatory true; description "Distance for local routes"; } } // container distance leaf table-policy { type string; description "Configure policy for installation of routes to RIB"; } container application-routes { description "Redistribute information for Application routes."; list application-route { key "instance-name"; description "Redistribute application routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "OnePK application name"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list application-route } // container application-routes leaf attribute-download { type empty; description "Attribute download configuration"; } container label-mode { presence "enable label-mode"; description "BGP 6PE/MPLS-VPN label allocation mode"; leaf label-allocation-mode { type string; description "Label allocation mode: per-ce Set per CE label mode, per-vrf Set per VRF label mode, per-prefix Set per Prefix label mode (for MPLS-VPN only)"; } leaf route-policy-name { type string; description "Label mode route policy name"; } } // container label-mode container eigrp-routes { description "Redistribute information for EIGRP routes."; list eigrp-route { key "instance-name"; description "Redistribute EIGRP routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "EIGRP router tag"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf redist-type { type xr:Hex-integer; description "Redistribution type: 01 for internal routes, 02 for external routes, Logical combinations permitted."; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list eigrp-route } // container eigrp-routes container best-external { description "Enable Bestexternal config"; leaf enable { type boolean; description "TRUE to enable BE FALSE to disable BE inheritance from a parent"; } leaf labeled-unicast { type boolean; description "Limit Best-External to Labeled-Unicast"; } } // container best-external container sourced-networks { description "Specify a network to announce via BGP"; list sourced-network { key "network-addr network-prefix"; description "Sourced network configuration"; leaf network-addr { type inet:ip-address; description "Network in prefix/length format (address part)"; } leaf network-prefix { type uint16 { range "0..128"; } description "Network in prefix/length format (prefix part)"; } leaf backdoor { type boolean; description "Specify a BGP backdoor route, default is FALSE"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list sourced-network } // container sourced-networks leaf rpki-origin-as-validity-signal-ibgp { type empty; description "RPKI origin-AS validity signal ibgp"; } container connected-routes { presence "enable connected-routes"; description "Redistribute connected routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container connected-routes leaf additional-paths-receive { type dt1:Bgp-af-additional-paths-cfg; description "Advertise additional paths Receive capability"; } leaf permanent-network { type string; description "Route policy for permanent networks"; } leaf rpki-bestpath-use-origin-as-validity { type empty; description "RPKI bestpath use origin-AS validity"; } container allocate-label { presence "enable allocate-label"; description "Label allocation policy"; leaf all { type boolean; description "Whether all nets should be labeled, default is FALSE"; } leaf route-policy-name { type string; description "Route policy name"; } leaf un-labeled-path { type boolean; must "../all or ../route-policy-name"; description "Allocate label for unlabeled paths too"; } } // container allocate-label container additional-paths-selection { description "Configure additional paths selection"; leaf selection { type dt1:Bgp-af-additional-paths-cfg; description "Enable/disable selection "; } leaf route-policy-name { type string; description "Route policy for selection"; } } // container additional-paths-selection leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf next-hop-resolution-prefix-length-minimum { type uint32 { range "0..128"; } default "0"; description "Minimum prefix-length for nexthop resolution"; } leaf reset-weight-on-import { type boolean; description "TRUE to reset weight on import. FALSE to not reset and to prevent inheritance from a parent"; } container ospf-routes { description "Redistribute information for OSPF routes."; list ospf-route { key "instance-name"; description "Redistribute OSPF routes"; leaf instance-name { type xr:Cisco-ios-xr-string; description "OSPF router tag"; } leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf redist-type { type xr:Hex-integer; description "Redistribution type: 01 for internal routes, 02 for external routes of type 1, 04 for external routes of type 2, 08 for NSSA external routes of type 1, 10 for NSSA external routes of type 2, 20 for external routes, 40 for NSSA external routes. Logical combinations permitted."; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // list ospf-route } // container ospf-routes leaf additional-paths-send { type dt1:Bgp-af-additional-paths-cfg; description "Advertise additional paths Send capability"; } container optimal-route-reflection-group-applies { description "Table of multiple ORR groups"; list optimal-route-reflection-group-apply { key "group-name"; description "Optimal Route Reffelction group. Each such group is equivalent to an IGP area"; leaf group-name { type xr:Cisco-ios-xr-string; description "Name of the ORR group"; } } // list optimal-route-reflection-group-apply } // container optimal-route-reflection-group-applies leaf advertise-local-labeled-route-safi-unicast { type dt1:Bgp-advertise-local-labeled-route-cfg; description "Enable/disable advertisement of routes with local-label via Unicast SAFI"; } container mobile-routes { presence "enable mobile-routes"; description "Redistribute mobile routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container mobile-routes leaf disable-as-path-loop-check { type empty; description "Disable outbound AS Path loop check"; } leaf next-hop-resolution-prefix-length-minimum-ipv6 { type uint32 { range "0..128"; } default "0"; description "Minimum prefix-length for nexthop resolution"; } container optimal-route-reflection-groups { description "Table of multiple ORR Groups"; list optimal-route-reflection-group { key "group-name"; description "Optimal Route Reffelction group. Each such group is equivalent to an IGP area"; leaf group-name { type xr:Cisco-ios-xr-string; description "Name of the ORR group"; } leaf primary-root-address { type inet:ip-address-no-zone; description "Primary Root for the ORR group"; } leaf secondary-root-address { type inet:ip-address-no-zone; description "Secondary Root for the ORR group"; } leaf tertiary-root-address { type inet:ip-address-no-zone; description "Tertiary Root for the ORR group"; } } // list optimal-route-reflection-group } // container optimal-route-reflection-groups container subscriber-routes { presence "enable subscriber-routes"; description "Redistribute subscriber routes"; leaf default-metric { type Bgp-default-metric-range; description "Default metric"; } leaf route-policy-name { type string; description "Route policy name"; } leaf multipath { type boolean; description "Specify if Multipath, default is FALSE"; } } // container subscriber-routes container segment-routing { description "Segment-routing Configurations"; container srv6 { description "SRv6 Configurations"; leaf enable { type empty; description "Enable SRv6 configuration submode"; } leaf srv6sid-allocation-mode { type string; description "SID allocation mode: per-ce Set per CE SID mode,per-vrf Set per VRF SID mode"; } leaf locator-name { type string; description "Configure Locator name for SID allocation"; } } // container srv6 } // container segment-routing } // list global-af } // container global-afs container global-graceful-maintenance-activate { description "Graceful maintenance activate configurations"; container interfaces { description "BGP graceful maintenance interface table"; list interface { key "interface-name"; description "Enable graceful maintenance for e-bgp directly connected neighbors going over this interface"; leaf interface-name { type xr:Interface-name; description "Name of Interface"; } } // list interface } // container interfaces container locations { description "BGP graceful maintenance location table"; list location { key "location"; description "Enable graceful maintenance for e-bgp directly connected neighbors going over this line-card (location)"; leaf location { type xr:Node-id; description "Name of Location"; } } // list location } // container locations leaf retain-routes { type boolean; description "BGP graceful maintenance retain routes "; } leaf enable { type empty; description "Enable graceful maintenance activate configuration submode"; } leaf all-neighbors { type boolean; description "Enable graceful maintenance for all neighbors without graceful maintenance config"; } } // container global-graceful-maintenance-activate container rpki-static-routes { description "RPKI static route configuration"; list rpki-static-route { key "address minimum maximum as"; description "RPKI static route"; leaf address { type inet:ip-address-no-zone; description "Address"; } leaf minimum { type uint32 { range "0..128"; } description "Minimum Prefix Length"; } leaf maximum { type uint32 { range "1..128"; } description "Maximum Prefix Length"; } leaf as { type uint32 { range "1..4294967295"; } description "AS Number"; } } // list rpki-static-route } // container rpki-static-routes container adjacency-table { description "Table of Local Adjacencies"; container adjacency-first-hops { description "Table of Firsthop addresses that form the adjacencies"; list adjacency-first-hop { key "first-hop-address"; description "Configuration for a single adjacency"; container associated-peer-sets { description "Table of Peer sets this adjacency can be part of"; list associated-peer-set { key "peer-set"; description "Associate this peer-set with the adjacency"; leaf peer-set { type uint32 { range "1..255"; } description "Identifier value"; } } // list associated-peer-set } // container associated-peer-sets leaf adjacency-sid { type uint32 { range "0..1033575"; } description "Configure Segment Index value for this adjacency"; } leaf adjacency-first-hop-enable { type empty; description "Enable creation of this firsthop adjacency"; } leaf first-hop-address { type inet:ip-address-no-zone; description "IP Address of Firsthop"; } } // list adjacency-first-hop } // container adjacency-first-hops } // container adjacency-table leaf graceful-restart { type empty; description "Enable graceful restart support"; } leaf update-out-logging { type empty; description "Enables logging of update generation events"; } leaf install-diversion { type empty; description "Install diversion path to RIB/CEF"; } leaf next-hop-trigger-delay { type uint32 { range "0..300"; } units "second"; default "5"; description "Set the delay for triggering nexthop recalculations"; } leaf nsr { type boolean; description "TRUE to Enable non-stop routing supportFALSE to Disable non-stop routing support"; } leaf neighbor-logging-detail { type empty; description "Include extra detail in neighbor change messages"; } leaf mvpn { type empty; description "Connect to PIM/PIM6"; } leaf rpki-origin-as-validation-disable { type empty; description "RPKI origin-AS validation disable"; } leaf global-scan-time { type uint32 { range "5..3600"; } units "second"; default "60"; description "Configure background scanner interval for generic scanner"; } leaf rpki-origin-as-validation-time { type uint32 { range "0..60"; } units "second"; description "Prefix validation time (in seconds). Range : 5 - 60. Specify 0 to disable the timer"; } leaf rpki-bestpath-origin-as-allow-invalid { type empty; description "RPKI bestpath origin-AS allow invalid"; } leaf graceful-restart-purge-time { type uint32 { range "0..6000"; } units "second"; default "600"; description "Time before stale routes are purged."; } leaf enforce-ibgp-out-policy { type empty; description "Allow all attributes to be modified by outbound policy for iBGP peers"; } leaf update-limit-process { type uint32 { range "16..2048"; } units "megabyte"; default "512"; description "Upper bound on update generation transient memory usage for the process"; } leaf graceful-restart-time { type uint32 { range "1..4095"; } units "second"; default "120"; description "Restart time advertised to neighbors"; } leaf update-error-handling-basic-ibgp-disable { type empty; description "Inbound update basic error-handling for IBGP neighbors"; } leaf read-only { type empty; description "Allow duplicate table config and disable update generation"; } leaf graceful-restart-stalepath-time { type uint32 { range "1..4095"; } units "second"; default "360"; description "Maximum time to wait for restart of GR capable peers"; } leaf graceful-restart-neighbor-retain-disable { type empty; description "Do not retain neighbor routes when neighbor session resets if neighbor also has graceful restart disabled"; } leaf update-error-handling-extended-ebgp { type empty; description "Inbound update extended error-handling for EBGP neighbors"; } leaf update-error-handling-basic-ebgp-disable { type empty; description "Inbound update basic error-handling for EBGP neighbors"; } leaf graceful-reset { type empty; description "Reset gracefully if configuration change forces a peer reset"; } leaf igp-loop-check { type empty; description "Enable AS-path loop checking for iBGP peers"; } leaf update-error-handling-extended-ibgp { type empty; description "Inbound update extended error-handling for IBGP neighbors"; } leaf router-id { type inet:ipv4-address-no-zone; default "0.0.0.0"; description "Configure Router-id"; } leaf slow-peer-detection-disable { type empty; description "Disable slow peer detection."; } leaf disable-enforce-first-as { type empty; description "Disable enforce the first AS for EBGP routes"; } leaf best-path-cost-community { type empty; description "Change default route selection criteria to ignore cost community comparison"; } leaf best-path-aigp-ignore { type empty; description "Change default route selection criteria to ignore AIGP unless both paths whichare compared have AIGP attribute"; } leaf best-path-igp-metric-sr-policy { type empty; description "Enable BGP next-hop metric inheritance from SR policy"; } leaf next-hop-val-srte { type empty; description "Enable BGP next-hop SR Policy reachability validation for Extcom color paths"; } leaf best-path-as-path-length { type empty; description "Change default route selection criteria to ignore AS path length"; } leaf next-hop-val-disable { type empty; description "Disable BGP next-hop RIB reachability validation for Extcomm color paths"; } leaf igp-redist-internal { type empty; description "Allow redistribution of iBGP into IGPs (dangerous)"; } leaf multi-path-as-path-ignore-onwards { type empty; description "Change default multi-route selection criteria to ignore everything onwards as-path check"; } leaf disable-fast-external-fallover { type empty; description "Disable immediate reset session if a link to a directly connected external peer goes down"; } leaf unsafe-ebgp-policy { type empty; description "If eBGP neighbor is configured without a route-policy,the routes from that neighbor are not accepted by default.This knob overrides the default behavior. When configured,routes from the eBGP neighbors with no policy are accepted."; } leaf default-metric { type uint32 { range "1..4294967295"; } description "Default redistributed metric"; } leaf default-info-originate { type empty; description "Control distribution of default information"; } leaf rpki-origin-as-validity-signal-ibgp { type empty; description "RPKI origin-AS validity signal ibgp"; } leaf rpki-bestpath-use-origin-as-validity { type empty; description "RPKI bestpath use origin-AS validity"; } leaf best-path-confederation-paths { type empty; description "Change default route selection criteria and allow the comparing of MED among confederation paths"; } leaf best-path-as-multipath-relax { type empty; description "Change default multi-route selection criteria to relax as-path checking - only require same aspath length"; } container mpls-activated-interfaces { description "Configure list of MPLS activated interfaces"; list mpls-activated-interface { key "interface-name"; description "Configure a MPLS activated interface"; leaf interface-name { type xr:Interface-name; description "Interface Name"; } } // list mpls-activated-interface } // container mpls-activated-interfaces leaf disable-auto-soft-reset { type empty; description "Disable automatic soft peer reset on policy reconfiguration"; } leaf disable-msg-log { type empty; description "Disable inbound and outbound messagelogging for all neighbors under the vrf"; } leaf multi-path-use-cluster-list-length { type empty; description "Change default multipath selection criteria to consider Cluster-list length"; } container global-timers { description "Adjust routing timers."; leaf keepalive { type uint32 { range "0..65535"; } units "second"; default "60"; description "Keepalive interval (seconds)"; } leaf hold-time { type uint32 { range "0..65535"; } units "second"; default "180"; description "Hold time (seconds). Specify 0 to disable keepalives/hold time"; } leaf min-accept-hold-time { type uint32 { range "0..65535"; } units "second"; default "3"; description "Minimum acceptable hold time (seconds). Specify 0 to disable keepalives/hold time"; } } // container global-timers leaf best-path-igp-metric-ignore { type empty; description "Change default route selection criteria to ignore IGP Metric "; } leaf next-hop-res-allow-default { type empty; description "Enable path resolution for nexthops using default route"; } leaf best-path-sr-policy-only-path { type empty; description "Consider only paths over SR Policy for bestpath selection"; } leaf next-hop-mpls-fwd-ibgp { type empty; description "Enable mpls forwarding path for ibgp learnt nexthops"; } container bfd { description "BFD configuration"; leaf detection-multiplier { type uint32 { range "2..16"; } description "Detection multiplier for BFD sessions created by BGP"; } leaf interval { type uint32 { range "3..30000"; } units "millisecond"; description "Hello interval for BFD sessions created by BGP"; } } // container bfd leaf disable-neighbor-logging { type empty; description "Disable neighbor change logging"; } container send-socket-buffer-sizes { description "set socket parameters"; leaf socket-send-size { type uint32 { range "4096..131072"; } units "byte"; default "24576"; description "Send socket buffer size in bytes"; } leaf bgp-send-size { type uint32 { range "4096..131072"; } units "byte"; default "4096"; description "BGP Write buffer size in bytes"; } } // container send-socket-buffer-sizes leaf best-path-med-always { type empty; description "Change default route selection criteria and allow comparing of MED from different neighbors"; } container receive-socket-buffer-sizes { description "Set socket and BGP receive buffer sizes"; leaf socket-receive-size { type uint32 { range "512..131072"; } units "byte"; default "32768"; description "Receive socket buffer size in bytes"; } leaf bgp-receive-size { type uint32 { range "512..131072"; } units "byte"; default "4096"; description "BGP Read buffer size in bytes"; } } // container receive-socket-buffer-sizes leaf best-path-router-id { type empty; description "Change default route selection criteria and compare router-id for identical EBGP paths"; } leaf best-path-med-missing { type empty; description "Treat missing MED as the least preferred one"; } leaf local-preference { type uint32 { range "0..4294967295"; } default "100"; description "Configure default local preference"; } } // container global } // container default-vrf leaf bgp-running { type empty; description "Enable BGP. Deletion of this object causes deletion of all the objects under FourByteAS associated with this object."; } leaf as { type dt1:Bgp-as-range; description "2-byte or 4-byte Autonomous system number"; } } // list four-byte-as } // list instance-as } // list instance } // container bgp container bmp-server-all { status deprecated; description "This model is deprecated and is replaced by Cisco-IOS-XR-um-router-bgp-cfg.yang which will provide the compatible functionalities. BGP BMP Server Common Configuration"; container route-monitoring { description "Enable Route Monitoring capability for the BMP servers. BGP update messages messages will be regenrated with a table walk "; leaf policy { type Bmp-policy-select; description "Specify if the routes packed in update messages should be before or after the application of route-policy"; } leaf direction { type Bmp-route-direction; description "Specify if the routes should be picked up at inbound or outbound direction"; } } // container route-monitoring leaf maximum-buffer-size { type uint32 { range "1..4294967295"; } units "megabyte"; description "Range in MegaBytes for the maximum buffer size of BMP message queue. The maximum buf-size is 20% and default buf-size is 15% of the platform virtual memory max-limit (aka rlimit). Please run show bgp process performance-statistics to see the individual values. Unit is in Megabytes"; } } // container bmp-server-all container bmp-servers { status deprecated; description "This model is deprecated and is replaced by Cisco-IOS-XR-um-router-bgp-cfg.yang which will provide the compatible functionalities. BGP BMP Server Configuration"; list bmp-server { key "server-id"; description "A particular BMP server"; container initial-refresh-delay { description "Initial refresh to generate BGP updates"; leaf delay { type uint32 { range "1..3600"; } units "second"; must "not(../skip)"; description "Delay in seconds before sending Refresh request to Peers"; } leaf spread { type uint32 { range "1..3600"; } must "../delay and not(../skip)"; description "Spread over which to send initial Refresh request to Peers"; } leaf skip { type empty; must "not(../delay or ../spread)"; description "Skip Route Refresh request to Peers"; } } // container initial-refresh-delay container host-port { description "Configure Host Name/Address and Port for BMP Server"; leaf host { type string; description "Name of the BMP server(accepts IPv4/IPv6 Address format too)"; } leaf port { type xr:Cisco-ios-xr-port-number; description "Port Number of listening BMP server"; } } // container host-port container tos { description "TOS (Type Of Service)"; leaf type { type dt1:Bgp-tos; description "Set type of service"; } leaf value { type dt1:Bgp-precedence-dscp; description "TOS value to set"; } } // container tos leaf create { type empty; description "BMP Server Creation"; } leaf maximum-buffer-size { type uint32 { range "1..4294967295"; } units "megabyte"; description "Range in MegaBytes for the maximum buffer size of BMP message queue. The maximum buf-size is 20% and default buf-size is 15% of the platform virtual memory max-limit (aka rlimit) . Please run show bgp process performance-statistics to see the individual values. Unit is in Megabytes"; } leaf initial-delay { type uint32 { range "1..3600"; } units "second"; description "Initial connect delay in seconds in sending updates"; } leaf flapping-delay { type uint32 { range "60..3600"; } units "second"; description "Delay in connecting to BMP Server after a flap had been detected."; } leaf status-report-interval { type uint32 { range "1..3600"; } units "second"; description "Stats reporting period for BMP server"; } leaf description { type string; description "String to describe the BMP server"; } leaf bmptcp-maximum-segment-size { type uint32 { range "68..10000"; } units "byte"; description "configure TCP maximum segment size. Default=16384."; } leaf bmptcp-keep-alive { type uint32 { range "0..7200"; } units "second"; description "configure TCP keep alives to be exchanged between client and server. Default=1000"; } leaf vrf { type string; description "VRF for BMP Server"; } leaf shutdown { type empty; description "Shutdown connection to BMP server"; } leaf update-source-interface { type xr:Interface-name; description "Select an interface to configure"; } leaf server-id { type uint32 { range "1..8"; } description "BMP Server ID"; } } // list bmp-server } // container bmp-servers } // module Cisco-IOS-XR-ipv4-bgp-cfg
© 2024 YumaWorks, Inc. All rights reserved.