Cisco-IOS-XR-ipv4-bgp-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR ipv4-bgp package configuration. This model is deprecated...

  • Version: 2021-03-05

    Cisco-IOS-XR-ipv4-bgp-cfg@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";
        }
    
        grouping ADVERTISE-DISABLE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-DISABLE
    
        grouping TABLE-POLICY {
          description
            "Common node of global-af, vrf-global-af";
          leaf table-policy {
            type string;
            description
              "Configure policy for installation of routes to
             RIB";
          }
        }  // grouping TABLE-POLICY
    
        grouping MAXIMUM-PREFIXES {
          description
            "Common node of global-af, vrf-global-afCommon
           node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping MAXIMUM-PREFIXES
    
        grouping DISTANCE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping DISTANCE
    
        grouping UPDATE-SOURCE-INTERFACE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf update-source-interface {
            type xr:Interface-name;
            description
              "Select an interface to configure";
          }
        }  // grouping UPDATE-SOURCE-INTERFACE
    
        grouping MULTI-PATH-AS-PATH-IGNORE-ONWARDS {
          description
            "Common node of global, vrf-global";
          leaf multi-path-as-path-ignore-onwards {
            type empty;
            description
              "Change default multi-route selection criteria to
             ignore everything onwards as-path check";
          }
        }  // grouping MULTI-PATH-AS-PATH-IGNORE-ONWARDS
    
        grouping PROPAGATE-DMZ-LINK-BANDWIDTH {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping PROPAGATE-DMZ-LINK-BANDWIDTH
    
        grouping DISABLE-AUTO-SOFT-RESET {
          description
            "Common node of global, vrf-global";
          leaf disable-auto-soft-reset {
            type empty;
            description
              "Disable automatic soft peer reset on policy
             reconfiguration";
          }
        }  // grouping DISABLE-AUTO-SOFT-RESET
    
        grouping MSG-LOG-IN {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping MSG-LOG-IN
    
        grouping DISABLE-ENFORCE-FIRST-AS {
          description
            "Common node of global, vrf-global";
          leaf disable-enforce-first-as {
            type empty;
            description
              "Disable enforce the first AS for EBGP routes";
          }
        }  // grouping DISABLE-ENFORCE-FIRST-AS
    
        grouping ROUTE-TARGET-TABLE {
          description
            "Common node of import-route-targets,
           export-route-targets";
          container route-targets {
            description "Route target table";
            list route-target {
              must
                "as-or-four-byte-as or ipv4-address" {
                description
                  "AS-or-FourByteAS or IPV4Address must be
                 present.";
              }
              key "type";
              description
                "Configured Route target Entry";
              leaf type {
                type Bgp-vrf-route-target;
                description "Type of RT";
              }
    
              list as-or-four-byte-as {
                when
                  "../type = 'as' or ../type = 'four-byte-as'" {
                  description
                    "../Type = AS or ../Type = FourByteAS";
                }
                key "as-xx as as-index stitching-rt";
                description "as or four byte as";
                leaf as-xx {
                  type uint32 {
                    range "0";
                  }
                  description "AS number";
                }
    
                leaf as {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description "AS number";
                }
    
                leaf as-index {
                  type Route-target-as-index;
                  description "AS number Index";
                }
    
                leaf stitching-rt {
                  type uint32 {
                    range "0..1";
                  }
                  description "Stitching RT";
                }
              }  // list as-or-four-byte-as
    
              list ipv4-address {
                when "../type = 'ipv4-address'" {
                  description
                    "../Type = IPV4Address";
                }
                key "address address-index stitching-rt";
                description "ipv4 address";
                leaf address {
                  type inet:ipv4-address-no-zone;
                  description "IP address";
                }
    
                leaf address-index {
                  type Route-target-addr-index;
                  description "IP address Index";
                }
    
                leaf stitching-rt {
                  type uint32 {
                    range "0..1";
                  }
                  description "Stitching RT";
                }
              }  // list ipv4-address
            }  // list route-target
          }  // container route-targets
        }  // grouping ROUTE-TARGET-TABLE
    
        grouping REMOTE-AS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping REMOTE-AS
    
        grouping ADDITIONAL-PATHS-SEND {
          description
            "Common node of global-af, vrf-global-af";
          leaf additional-paths-send {
            type dt1:Bgp-af-additional-paths-cfg;
            description
              "Advertise additional paths Send capability";
          }
        }  // grouping ADDITIONAL-PATHS-SEND
    
        grouping UPDATE-IN-FILTERING {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping UPDATE-IN-FILTERING
    
        grouping OPTIMAL-ROUTE-REFLECTION-GROUP-TABLE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-groupCommon node of
           global-af, vrf-global-af";
          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
        }  // grouping OPTIMAL-ROUTE-REFLECTION-GROUP-TABLE
    
        grouping SHUTDOWN {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf shutdown {
            type boolean;
            description
              "TRUE to shutdown this entity, FALSE to prevent
             this entity from being shutdown even if the
             parent is.";
          }
        }  // grouping SHUTDOWN
    
        grouping BMP-ACTIVATE-TABLE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping BMP-ACTIVATE-TABLE
    
        grouping SLOW-PEER {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping SLOW-PEER
    
        grouping ADVERTISE-VRF-IMP-DISABLE-V4 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-VRF-IMP-DISABLE-V4
    
        grouping ADVERTISE-VRF-IMP-DISABLE-V6 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-VRF-IMP-DISABLE-V6
    
        grouping SITE-OF-ORIGIN {
          description
            "Common node of neighbor-group-af, vrf-neighbor-af
           , af-group-af";
          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
        }  // grouping SITE-OF-ORIGIN
    
        grouping ROUTE-POLICY-OUT {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf route-policy-out {
            type string;
            description
              "Route policy name to apply to outbound routes";
          }
        }  // grouping ROUTE-POLICY-OUT
    
        grouping SEGMENT-ROUTING {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping SEGMENT-ROUTING
    
        grouping ADVERTISE-V4 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-V4
    
        grouping ADVERTISE-V6 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-V6
    
        grouping NEXT-HOP-VAL-SRTE {
          description
            "Common node of global, vrf-global";
          leaf next-hop-val-srte {
            type empty;
            description
              "Enable BGP next-hop SR Policy reachability
             validation for Extcom color paths";
          }
        }  // grouping NEXT-HOP-VAL-SRTE
    
        grouping DEFAULT-ORIGINATE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping DEFAULT-ORIGINATE
    
        grouping OPTIMAL-ROUTE-REFLECTION-GROUP-APPLY-TABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping OPTIMAL-ROUTE-REFLECTION-GROUP-APPLY-TABLE
    
        grouping IDLE-WATCH-TIME {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf idle-watch-time {
            type uint32 {
              range "30..1800";
            }
            units "second";
            description
              "Time to wait for deleteing IDLE state Dynamic
             peer";
          }
        }  // grouping IDLE-WATCH-TIME
    
        grouping TIMERS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping TIMERS
    
        grouping NEXT-HOP-MPLS-FWD-IBGP {
          description
            "Common node of global, vrf-global";
          leaf next-hop-mpls-fwd-ibgp {
            type empty;
            description
              "Enable mpls forwarding path for ibgp learnt
             nexthops";
          }
        }  // grouping NEXT-HOP-MPLS-FWD-IBGP
    
        grouping DISABLE-FAST-EXTERNAL-FALLOVER {
          description
            "Common node of global, vrf-global";
          leaf disable-fast-external-fallover {
            type empty;
            description
              "Disable immediate reset session if a link to a
             directly connected external peer goes down";
          }
        }  // grouping DISABLE-FAST-EXTERNAL-FALLOVER
    
        grouping SEND-COMMUNITY-EBGP {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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";
          }
        }  // grouping SEND-COMMUNITY-EBGP
    
        grouping ADDITIONAL-PATHS-RECEIVE-CAPABILITY {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf additional-paths-receive-capability {
            type dt1:Bgp-nbr-cap-additional-paths-cfg;
            description
              "Advertise additional paths Receive capability";
          }
        }  // grouping ADDITIONAL-PATHS-RECEIVE-CAPABILITY
    
        grouping SEND-EXT-COMMUNITY-EBGP {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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";
          }
        }  // grouping SEND-EXT-COMMUNITY-EBGP
    
        grouping AF-GROUP {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af";
          leaf af-group {
            type string;
            description
              "Inherit configuration for this address-family
             from an AF-group";
          }
        }  // grouping AF-GROUP
    
        grouping NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM-IPV6 {
          description
            "Common node of global-af, vrf-global-af";
          leaf next-hop-resolution-prefix-length-minimum-ipv6 {
            type uint32 {
              range "0..128";
            }
            default "0";
            description
              "Minimum prefix-length for nexthop resolution";
          }
        }  // grouping NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM-IPV6
    
        grouping ROUTE-POLICY-IN {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf route-policy-in {
            type string;
            description
              "Route policy name to apply to inbound routes";
          }
        }  // grouping ROUTE-POLICY-IN
    
        grouping LABEL-MODE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping LABEL-MODE
    
        grouping APP-ROUTE-TABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping APP-ROUTE-TABLE
    
        grouping NEXT-HOP-VAL-DISABLE {
          description
            "Common node of global, vrf-global";
          leaf next-hop-val-disable {
            type empty;
            description
              "Disable BGP next-hop RIB reachability validation
             for Extcomm color paths";
          }
        }  // grouping NEXT-HOP-VAL-DISABLE
    
        grouping DEFAULT-INFO-ORIGINATE {
          description
            "Common node of global, vrf-global";
          leaf default-info-originate {
            type empty;
            description
              "Control distribution of default information";
          }
        }  // grouping DEFAULT-INFO-ORIGINATE
    
        grouping ENFORCE-FIRST-AS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf enforce-first-as {
            type boolean;
            description
              "TRUE to enforce first AS; FALSE to not enforce
             first AS.";
          }
        }  // grouping ENFORCE-FIRST-AS
    
        grouping SOFT-RECONFIGURATION {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping SOFT-RECONFIGURATION
    
        grouping NEIGHBOR-GRACEFUL-RESTART {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf neighbor-graceful-restart {
            type Bgp-nbrgr;
            description
              "TRUE to Enable graceful restart supportfor
             neighbor.  FALSE to disable graceful restart
             support for neighbor.";
          }
        }  // grouping NEIGHBOR-GRACEFUL-RESTART
    
        grouping ADVERTISE-DEF-IMP-DISABLE-V4 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-DEF-IMP-DISABLE-V4
    
        grouping ADVERTISE-DEF-IMP-DISABLE-V6 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-DEF-IMP-DISABLE-V6
    
        grouping LOCAL-ADDRESS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping LOCAL-ADDRESS
    
        grouping EVENT-PREFIX-ROUTE-POLICY {
          description
            "Common node of global-af, vrf-global-af";
          leaf event-prefix-route-policy {
            type string;
            description
              "Route Policy to mark prefixes to be traced";
          }
        }  // grouping EVENT-PREFIX-ROUTE-POLICY
    
        grouping AS-OVERRIDE {
          description
            "Common node of global-af, vrf-global-afCommon
           node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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";
          }
        }  // grouping AS-OVERRIDE
    
        grouping IGNORE-CONNECTED-CHECK-EBGP {
          description
            "Common node of global-af, vrf-global-afCommon
           node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-afCommon node of
           neighbor-group, neighbor, vrf-neighbor,
           session-group";
          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.";
          }
        }  // grouping IGNORE-CONNECTED-CHECK-EBGP
    
        grouping REMOTE-AS-LIST {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf remote-as-list {
            type string;
            description
              "Remote-as-list group name";
          }
        }  // grouping REMOTE-AS-LIST
    
        grouping SEND-MULTICAST-ATTR {
          description
            "Common node of neighbor-group-af, neighbor-af,
           af-group-af";
          leaf send-multicast-attr {
            type Bgp-send-mcast-attr-cfg;
            description
              "Config send multicast attribute for this
             neighbor";
          }
        }  // grouping SEND-MULTICAST-ATTR
    
        grouping ENCAPSULATION-TYPE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           af-group-afCommon node of neighbor-group-af,
           neighbor-af, af-group-af";
          leaf encapsulation-type {
            type Bgp-af-encapsulation;
            description
              "Encapsulation type for this neighbor";
          }
        }  // grouping ENCAPSULATION-TYPE
    
        grouping LOCAL-ADDRESS-SUB-NET {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping LOCAL-ADDRESS-SUB-NET
    
        grouping ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V4 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V4
    
        grouping ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V6 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V6
    
        grouping ADVERTISE-PERMANENT-NETWORK {
          description
            "Common node of neighbor-group-af, neighbor-af,
           af-group-af";
          leaf advertise-permanent-network {
            type empty;
            description
              "Advertise Permanent Networks to the peer";
          }
        }  // grouping ADVERTISE-PERMANENT-NETWORK
    
        grouping BEST-PATH-COST-COMMUNITY {
          description
            "Common node of global, vrf-global";
          leaf best-path-cost-community {
            type empty;
            description
              "Change default route selection criteria to
             ignore cost community comparison";
          }
        }  // grouping BEST-PATH-COST-COMMUNITY
    
        grouping RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf rpki-bestpath-origin-as-allow-invalid {
            type empty;
            description
              "RPKI bestpath origin-AS allow invalid";
          }
        }  // grouping RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID
    
        grouping BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-afCommon node of
           neighbor-group, neighbor, vrf-neighbor,
           session-group";
          leaf rpki-bestpath-origin-as-allow-invalid {
            type empty;
            description
              "RPKI bestpath origin-AS allow invalid";
          }
        }  // grouping BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID
    
        grouping BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID-MP {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-afCommon node of
           neighbor-group, neighbor, vrf-neighbor,
           session-groupCommon node of global-af,
           vrf-global-af";
          leaf rpki-bestpath-origin-as-allow-invalid {
            type empty;
            description
              "RPKI bestpath origin-AS allow invalid";
          }
        }  // grouping BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID-MP
    
        grouping NEIGHBOR-GRACEFUL-RESTART-TIME {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf neighbor-graceful-restart-time {
            type uint32 {
              range "1..4095";
            }
            units "second";
            default "120";
            description
              "Restart time advertised to neighbor";
          }
        }  // grouping NEIGHBOR-GRACEFUL-RESTART-TIME
    
        grouping TOS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping TOS
    
        grouping NEIGHBOR-CLUSTER-ID {
          description
            "Common node of neighbor-group, neighbor,
           session-group";
          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
        }  // grouping NEIGHBOR-CLUSTER-ID
    
        grouping ACTIVATE {
          description
            "Common node of neighbor-af, vrf-neighbor-af,
           neighbor-group-af";
          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.";
          }
        }  // grouping ACTIVATE
    
        grouping NEXT-HOP-SELF {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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.";
          }
        }  // grouping NEXT-HOP-SELF
    
        grouping ALLOW-AS-IN {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf allow-as-in {
            type uint32 {
              range "1..10";
            }
            default "3";
            description
              "Allow as-path with my AS present in it";
          }
        }  // grouping ALLOW-AS-IN
    
        grouping ADVERTISE-LOCAL-V4 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-LOCAL-V4
    
        grouping ADVERTISE-LOCAL-V6 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-LOCAL-V6
    
        grouping BEST-EXTERNAL {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping BEST-EXTERNAL
    
        grouping ATTRIBUTE-DOWNLOAD {
          description
            "Common node of global-af, vrf-global-af";
          leaf attribute-download {
            type empty;
            description
              "Attribute download configuration";
          }
        }  // grouping ATTRIBUTE-DOWNLOAD
    
        grouping AO-KEYCHAIN {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping AO-KEYCHAIN
    
        grouping BEST-PATH-SR-POLICY-ONLY-PATH {
          description
            "Common node of global, vrf-global";
          leaf best-path-sr-policy-only-path {
            type empty;
            description
              "Consider only paths over SR Policy for bestpath
             selection";
          }
        }  // grouping BEST-PATH-SR-POLICY-ONLY-PATH
    
        grouping ADDITIONAL-PATHS-SELECTION {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping ADDITIONAL-PATHS-SELECTION
    
        grouping NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-CAPABLE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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.";
          }
        }  // grouping NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-CAPABLE
    
        grouping BEST-PATH-AS-MULTIPATH-RELAX {
          description
            "Common node of global, vrf-global";
          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";
          }
        }  // grouping BEST-PATH-AS-MULTIPATH-RELAX
    
        grouping UNSAFE-EBGP-POLICY {
          description
            "Common node of global, vrf-global";
          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.";
          }
        }  // grouping UNSAFE-EBGP-POLICY
    
        grouping GLOBAL-TIMERS {
          description
            "Common node of global, vrf-global";
          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
        }  // grouping GLOBAL-TIMERS
    
        grouping NEIGHBOR-GROUP-ADD-MEMBER {
          description
            "Common node of neighbor, vrf-neighbor";
          leaf neighbor-group-add-member {
            type string;
            description
              "Inherit configuration from a neighbor-group";
          }
        }  // grouping NEIGHBOR-GROUP-ADD-MEMBER
    
        grouping MOBILE-ROUTES {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping MOBILE-ROUTES
    
        grouping LOCAL-PREFERENCE {
          description
            "Common node of global, vrf-global";
          leaf local-preference {
            type uint32 {
              range "0..4294967295";
            }
            default "100";
            description
              "Configure default local preference";
          }
        }  // grouping LOCAL-PREFERENCE
    
        grouping CREATE {
          description
            "Common node of neighbor-group, session-group";
          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.";
          }
        }  // grouping CREATE
    
        grouping CLUSTER-ID-ALLOW-EQUAL {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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.";
          }
        }  // grouping CLUSTER-ID-ALLOW-EQUAL
    
        grouping EBGP-SEND-DMZ-ENABLE-MODES {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping EBGP-SEND-DMZ-ENABLE-MODES
    
        grouping SEND-SOCKET-BUFFER-SIZES {
          description
            "Common node of global, vrf-global";
          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
        }  // grouping SEND-SOCKET-BUFFER-SIZES
    
        grouping RECEIVE-SOCKET-BUFFER-SIZES {
          description
            "Common node of global, vrf-globalCommon node of
           global, vrf-global";
          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
        }  // grouping RECEIVE-SOCKET-BUFFER-SIZES
    
        grouping SLOW-PEER-DETECTION-DISABLE {
          description
            "Common node of global, vrf-global";
          leaf slow-peer-detection-disable {
            type empty;
            description
              "Disable slow peer detection.";
          }
        }  // grouping SLOW-PEER-DETECTION-DISABLE
    
        grouping BFD-ENABLE-MODES {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf bfd-enable-modes {
            type Bgp-bfd-enable-mode;
            description
              "Strict mode, Default mode or Disable to prevent
             inheritance from a parent";
          }
        }  // grouping BFD-ENABLE-MODES
    
        grouping RESET-WEIGHT-ON-IMPORT {
          description
            "Common node of global-af, vrf-global-af";
          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";
          }
        }  // grouping RESET-WEIGHT-ON-IMPORT
    
        grouping AGGREGATE-ADDRESS-TABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping AGGREGATE-ADDRESS-TABLE
    
        grouping EBGP-MULTIHOP {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping EBGP-MULTIHOP
    
        grouping NEIGHBOR-GRACEFUL-RESTART-STALEPATH-TIME {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping NEIGHBOR-GRACEFUL-RESTART-STALEPATH-TIME
    
        grouping NEXT-HOP-RES-ALLOW-DEFAULT {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-groupCommon node of global,
           vrf-global";
          leaf next-hop-res-allow-default {
            type empty;
            description
              "Enable path resolution for nexthops using
             default route";
          }
        }  // grouping NEXT-HOP-RES-ALLOW-DEFAULT
    
        grouping BEST-PATH-AIGP-IGNORE {
          description
            "Common node of global, vrf-global";
          leaf best-path-aigp-ignore {
            type empty;
            description
              "Change default route selection criteria to
             ignore AIGP unless both paths whichare compared
             have AIGP attribute";
          }
        }  // grouping BEST-PATH-AIGP-IGNORE
    
        grouping SESSION-GROUP-ADD-MEMBER {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor";
          leaf session-group-add-member {
            type string;
            description
              "Inherit address-family independent config from a
             session-group";
          }
        }  // grouping SESSION-GROUP-ADD-MEMBER
    
        grouping BFD-MULTIPLIER {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf bfd-multiplier {
            type uint32 {
              range "2..16";
            }
            description
              "Detection multiplier for BFD sessions created by
             BGP";
          }
        }  // grouping BFD-MULTIPLIER
    
        grouping FLOWSPEC-VALIDATION {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf flowspec-validation {
            type Bgp-flowspec-validation-cfg;
            description
              "Config Flowspec validation for this neighbor";
          }
        }  // grouping FLOWSPEC-VALIDATION
    
        grouping TTL-SECURITY {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf ttl-security {
            type boolean;
            description
              "TRUE to enable BGP TTL Security.  FALSE to not
             enable it and to prevent inheritance from a
             parent";
          }
        }  // grouping TTL-SECURITY
    
        grouping BEST-PATH-MED-ALWAYS {
          description
            "Common node of global, vrf-global";
          leaf best-path-med-always {
            type empty;
            description
              "Change default route selection criteria and
             allow comparing of MED from different neighbors";
          }
        }  // grouping BEST-PATH-MED-ALWAYS
    
        grouping MAX-PEERS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf max-peers {
            type uint32 {
              range "1..4096";
            }
            description
              "Set Maximum Peers in Dynamic Range";
          }
        }  // grouping MAX-PEERS
    
        grouping SEND-COMMUNITY-EBGP-GRACEFUL-SHUTDOWN {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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";
          }
        }  // grouping SEND-COMMUNITY-EBGP-GRACEFUL-SHUTDOWN
    
        grouping DISABLE-MSG-LOG {
          description
            "Common node of global, vrf-global";
          leaf disable-msg-log {
            type empty;
            description
              "Disable inbound and outbound messagelogging for
             all neighbors under the vrf";
          }
        }  // grouping DISABLE-MSG-LOG
    
        grouping LOCAL-AS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping LOCAL-AS
    
        grouping LISP-ROUTES {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping LISP-ROUTES
    
        grouping SRV6VERSION4 {
          description
            "Common node of neighbor-group-af, neighbor-af,
           af-group-af";
          leaf srv6version4 {
            type boolean;
            description
              "TRUE to enable SRv6 version 4,FALSE to disable
             SRv6 version 4";
          }
        }  // grouping SRV6VERSION4
    
        grouping ADDITIONAL-PATHS-SEND-CAPABILITY {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf additional-paths-send-capability {
            type dt1:Bgp-nbr-cap-additional-paths-cfg;
            description
              "Advertise additional paths Send capability";
          }
        }  // grouping ADDITIONAL-PATHS-SEND-CAPABILITY
    
        grouping BEST-PATH-IGP-METRIC-IGNORE {
          description
            "Common node of global, vrf-global";
          leaf best-path-igp-metric-ignore {
            type empty;
            description
              "Change default route selection criteria to
             ignore IGP Metric ";
          }
        }  // grouping BEST-PATH-IGP-METRIC-IGNORE
    
        grouping L2VPN-SIGNALLING {
          description
            "Common node of neighbor-group-af, neighbor-af,
           af-group-af";
          leaf l2vpn-signalling {
            type Bgp-signal;
            description
              "Disable signalling type on the peer";
          }
        }  // grouping L2VPN-SIGNALLING
    
        grouping DAMPENING {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping DAMPENING
    
        grouping ADVERTISE-LOCAL-LABELED-ROUTE-SAFI-UNICAST {
          description
            "Common node of global-af, vrf-global-af";
          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";
          }
        }  // grouping ADVERTISE-LOCAL-LABELED-ROUTE-SAFI-UNICAST
    
        grouping SUBSCRIBER-ROUTES {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping SUBSCRIBER-ROUTES
    
        grouping INTERNAL-VPN-CLIENT-IBGP-CE {
          description
            "Common node of neighbor-group, vrf-neighbor,
           session-group";
          leaf internal-vpn-client-ibgp-ce {
            type boolean;
            description
              "TRUE to preserve the CE path attributes.FALSE to
             override CE path attributes.";
          }
        }  // grouping INTERNAL-VPN-CLIENT-IBGP-CE
    
        grouping ACCEPT-ROUTE-LEGACY-RT {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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.";
          }
        }  // grouping ACCEPT-ROUTE-LEGACY-RT
    
        grouping PERMANENT-NETWORK {
          description
            "Common node of global-af, vrf-global-af";
          leaf permanent-network {
            type string;
            description
              "Route policy for permanent networks";
          }
        }  // grouping PERMANENT-NETWORK
    
        grouping ENABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
             .";
          }
        }  // grouping ENABLE
    
        grouping EBGP-RECV-DMZ {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping EBGP-RECV-DMZ
    
        grouping ADVERTISEMENT-INTERVAL {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping ADVERTISEMENT-INTERVAL
    
        grouping RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP {
          description
            "Common node of global-af, vrf-global-af";
          leaf rpki-origin-as-validity-signal-ibgp {
            type empty;
            description
              "RPKI origin-AS validity signal ibgp";
          }
        }  // grouping RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP
    
        grouping BGP-CFG-RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP {
          description
            "Common node of global-af, vrf-global-afCommon
           node of global, vrf-global";
          leaf rpki-origin-as-validity-signal-ibgp {
            type empty;
            description
              "RPKI origin-AS validity signal ibgp";
          }
        }  // grouping BGP-CFG-RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP
    
        grouping IMPORT {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping IMPORT
    
        grouping ACCEPT-OWN {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf accept-own {
            type boolean;
            description
              "Handle self-originated routes with Accept-Own
             community. Valid for following neighbor
             address-families: VPNv4Unicast, VPNv6Unicast.";
          }
        }  // grouping ACCEPT-OWN
    
        grouping ADDITIONAL-PATHS-RECEIVE {
          description
            "Common node of global-af, vrf-global-af";
          leaf additional-paths-receive {
            type dt1:Bgp-af-additional-paths-cfg;
            description
              "Advertise additional paths Receive capability";
          }
        }  // grouping ADDITIONAL-PATHS-RECEIVE
    
        grouping MPLS-ACTIVATED-INTERFACE-TABLE {
          description
            "Common node of global, vrf-global";
          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
        }  // grouping MPLS-ACTIVATED-INTERFACE-TABLE
    
        grouping MULTIPATH {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf multipath {
            type empty;
            description
              "Allow paths from this neighbor to be eligible
             for selective multipath";
          }
        }  // grouping MULTIPATH
    
        grouping EIGRP-ROUTE-TABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping EIGRP-ROUTE-TABLE
    
        grouping OPTIMAL-ROUTE-REFLECTION-GROUP {
          description
            "Common node of global-af, vrf-global-afCommon
           node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf optimal-route-reflection-group {
            type string;
            description
              "Name of the ORR group this neighbor is going to
             be part of";
          }
        }  // grouping OPTIMAL-ROUTE-REFLECTION-GROUP
    
        grouping ROUTE-REFLECTOR-CLIENT {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf route-reflector-client {
            type boolean;
            description
              "TRUE to configure as a route-reflector-client.
             FALSE to prevent route-reflector-client from
             being inherited.";
          }
        }  // grouping ROUTE-REFLECTOR-CLIENT
    
        grouping ADVERTISE-LOCAL-LABELED-ROUTE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf advertise-local-labeled-route {
            type dt1:Bgp-advertise-local-labeled-route-cfg;
            description
              "Enable/disable advertisement of routes with
             local-label";
          }
        }  // grouping ADVERTISE-LOCAL-LABELED-ROUTE
    
        grouping BEST-PATH-IGP-METRIC-SR-POLICY {
          description
            "Common node of global, vrf-global";
          leaf best-path-igp-metric-sr-policy {
            type empty;
            description
              "Enable BGP next-hop metric inheritance from SR
             policy";
          }
        }  // grouping BEST-PATH-IGP-METRIC-SR-POLICY
    
        grouping SESSION-OPEN-MODE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf session-open-mode {
            type Bgp-tcp-mode;
            default "either";
            description
              "TCP mode to be used to establish BGP session";
          }
        }  // grouping SESSION-OPEN-MODE
    
        grouping RPKI-ORIGIN-AS-VALIDATION-ENABLE {
          description
            "Common node of global-af, vrf-global-af";
          leaf rpki-origin-as-validation-enable {
            type empty;
            description
              "RPKI origin-AS validation enable";
          }
        }  // grouping RPKI-ORIGIN-AS-VALIDATION-ENABLE
    
        grouping UPDATE-OUT-ORIG-LOOP-CHK-DISABLE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf update-out-orig-loop-chk-disable {
            type empty;
            description
              "Enable/disable Originator loop check for this
             neighbor-group/af-group";
          }
        }  // grouping UPDATE-OUT-ORIG-LOOP-CHK-DISABLE
    
        grouping STATIC-ROUTES {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping STATIC-ROUTES
    
        grouping PASSWORD {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-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
        }  // grouping PASSWORD
    
        grouping NEXT-HOP-UNCHANGED-MULTIPATH {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-groupCommon node of
           neighbor-group-af, neighbor-af, af-group-af";
          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.";
          }
        }  // grouping NEXT-HOP-UNCHANGED-MULTIPATH
    
        grouping SUPPRESS-EXTENDED-NEXTHOP-ENCODING-CAPABILITY {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping SUPPRESS-EXTENDED-NEXTHOP-ENCODING-CAPABILITY
    
        grouping NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM {
          description
            "Common node of global-af, vrf-global-af";
          leaf next-hop-resolution-prefix-length-minimum {
            type uint32 {
              range "0..128";
            }
            default "0";
            description
              "Minimum prefix-length for nexthop resolution";
          }
        }  // grouping NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM
    
        grouping BEST-PATH-AS-PATH-LENGTH {
          description
            "Common node of global, vrf-global";
          leaf best-path-as-path-length {
            type empty;
            description
              "Change default route selection criteria to
             ignore AS path length";
          }
        }  // grouping BEST-PATH-AS-PATH-LENGTH
    
        grouping MSG-LOG-OUT {
          description
            "Common node of global, vrf-globalCommon node of
           neighbor-group, neighbor, vrf-neighbor,
           session-group";
          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
        }  // grouping MSG-LOG-OUT
    
        grouping EPE-PEER-SET-IDENTITY-TABLE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping EPE-PEER-SET-IDENTITY-TABLE
    
        grouping ENFORCE-MULTIPLE-LABELS {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf enforce-multiple-labels {
            type boolean;
            description
              "TRUE to enforce multiple labels support.";
          }
        }  // grouping ENFORCE-MULTIPLE-LABELS
    
        grouping PREFIX-ORF-POLICY {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-afCommon node of
           neighbor-group-af, neighbor-af, vrf-neighbor-af,
           af-group-af";
          leaf prefix-orf-policy {
            type string;
            description
              "Prefix ORF policy name for incoming updates";
          }
        }  // grouping PREFIX-ORF-POLICY
    
        grouping SOURCED-NETWORK-TABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping SOURCED-NETWORK-TABLE
    
        grouping REMOVE-PRIVATE-AS-ENTIRE-AS-PATH {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping REMOVE-PRIVATE-AS-ENTIRE-AS-PATH
    
        grouping GRACEFUL-MAINTENANCE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping GRACEFUL-MAINTENANCE
    
        grouping NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-STALE-TIME {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-STALE-TIME
    
        grouping BFD {
          description
            "Common node of global, vrf-global";
          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
        }  // grouping BFD
    
        grouping ALLOCATE-LABEL {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping ALLOCATE-LABEL
    
        grouping SEND-BUFFER-SIZE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping SEND-BUFFER-SIZE
    
        grouping BEST-PATH-MED-MISSING {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-groupCommon node of global,
           vrf-global";
          leaf best-path-med-missing {
            type empty;
            description
              "Treat missing MED as the least preferred one";
          }
        }  // grouping BEST-PATH-MED-MISSING
    
        grouping SUPPRESS-ALL-CAPABILITIES {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf suppress-all-capabilities {
            type boolean;
            description
              "TRUE to suppress all capabilities. FALSE to not
             suppress and to prevent inheritance from a
             parent";
          }
        }  // grouping SUPPRESS-ALL-CAPABILITIES
    
        grouping DEFAULT-WEIGHT {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-groupCommon node of
           neighbor-group-af, neighbor-af, vrf-neighbor-af,
           af-group-af";
          leaf default-weight {
            type uint32 {
              range "0..65535";
            }
            description
              "Set default weight for routes from this
             neighbor/neighbor-group/af-group";
          }
        }  // grouping DEFAULT-WEIGHT
    
        grouping SUPPRESS-FOUR-BYTE-AS-CAPABILITY {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping SUPPRESS-FOUR-BYTE-AS-CAPABILITY
    
        grouping LABELED-UNICAST-EQUIVALENT-FOR-INBOUND-UPDATES {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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";
          }
        }  // grouping LABELED-UNICAST-EQUIVALENT-FOR-INBOUND-UPDATES
    
        grouping ADVERTISE-LOCAL-L2VPN-EVPN {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-LOCAL-L2VPN-EVPN
    
        grouping EGRESS-PEER-ENGINEERING {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, 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";
          }
        }  // grouping EGRESS-PEER-ENGINEERING
    
        grouping BEST-PATH-CONFEDERATION-PATHS {
          description
            "Common node of global, vrf-global";
          leaf best-path-confederation-paths {
            type empty;
            description
              "Change default route selection criteria and
             allow the comparing of MED among confederation
             paths";
          }
        }  // grouping BEST-PATH-CONFEDERATION-PATHS
    
        grouping MULTI-PATH-USE-CLUSTER-LIST-LENGTH {
          description
            "Common node of global, vrf-global";
          leaf multi-path-use-cluster-list-length {
            type empty;
            description
              "Change default multipath selection criteria to
             consider Cluster-list length";
          }
        }  // grouping MULTI-PATH-USE-CLUSTER-LIST-LENGTH
    
        grouping DYNAMIC-MED-INTERVAL {
          description
            "Common node of global-af, vrf-global-af";
          leaf dynamic-med-interval {
            type uint32 {
              range "0..10";
            }
            units "minute";
            default "10";
            description
              "Update generation delay (in minutes) after a MED
             change";
          }
        }  // grouping DYNAMIC-MED-INTERVAL
    
        grouping REMOVE-PRIVATE-AS-ENTIRE-AS-PATH-INBOUND {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping REMOVE-PRIVATE-AS-ENTIRE-AS-PATH-INBOUND
    
        grouping RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY {
          description
            "Common node of global-af, vrf-global-af";
          leaf rpki-bestpath-use-origin-as-validity {
            type empty;
            description
              "RPKI bestpath use origin-AS validity";
          }
        }  // grouping RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY
    
        grouping BGP-CFG-RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY {
          description
            "Common node of global-af, vrf-global-afCommon
           node of global, vrf-global";
          leaf rpki-bestpath-use-origin-as-validity {
            type empty;
            description
              "RPKI bestpath use origin-AS validity";
          }
        }  // grouping BGP-CFG-RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY
    
        grouping CONNECTED-ROUTES {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping CONNECTED-ROUTES
    
        grouping IGP-REDIST-INTERNAL {
          description
            "Common node of global, vrf-global";
          leaf igp-redist-internal {
            type empty;
            description
              "Allow redistribution of iBGP into IGPs
             (dangerous)";
          }
        }  // grouping IGP-REDIST-INTERNAL
    
        grouping AIGP-SEND-MED {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf aigp-send-med {
            type Bgp-aigp-cfg;
            description
              "Enable/Disable sending AIGP in MED ";
          }
        }  // grouping AIGP-SEND-MED
    
        grouping AIGP {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf aigp {
            type Bgp-aigp-cfg;
            description
              "Enable Accumulated IGP Metric for this neighbor.";
          }
        }  // grouping AIGP
    
        grouping ADVERTISE-ORF {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf advertise-orf {
            type Bgp-orf;
            default "none";
            description
              "Advertise ORF capability to the peer";
          }
        }  // grouping ADVERTISE-ORF
    
        grouping BFD-MINIMUM-INTERVAL {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf bfd-minimum-interval {
            type uint32 {
              range "3..30000";
            }
            units "millisecond";
            description
              "Hello interval for BFD sessions created by BGP";
          }
        }  // grouping BFD-MINIMUM-INTERVAL
    
        grouping AIGP-COST-COMMUNITY {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping AIGP-COST-COMMUNITY
    
        grouping DISABLE-AS-PATH-LOOP-CHECK {
          description
            "Common node of global-af, vrf-global-af";
          leaf disable-as-path-loop-check {
            type empty;
            description
              "Disable outbound AS Path loop check";
          }
        }  // grouping DISABLE-AS-PATH-LOOP-CHECK
    
        grouping BEST-PATH-ROUTER-ID {
          description
            "Common node of global, vrf-global";
          leaf best-path-router-id {
            type empty;
            description
              "Change default route selection criteria and
             compare router-id for identical EBGP paths";
          }
        }  // grouping BEST-PATH-ROUTER-ID
    
        grouping RIP-ROUTES {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping RIP-ROUTES
    
        grouping DESCRIPTION {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          leaf description {
            type string;
            description
              "Up to 80 characters describing this neighbor";
          }
        }  // grouping DESCRIPTION
    
        grouping ADVERTISE-L2VPN-EVPN {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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
        }  // grouping ADVERTISE-L2VPN-EVPN
    
        grouping KEYCHAIN {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping KEYCHAIN
    
        grouping RECEIVE-BUFFER-SIZE {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping RECEIVE-BUFFER-SIZE
    
        grouping NEXT-HOP-UNCHANGED {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          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.";
          }
        }  // grouping NEXT-HOP-UNCHANGED
    
        grouping OSPF-ROUTE-TABLE {
          description
            "Common node of global-af, vrf-global-af";
          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
        }  // grouping OSPF-ROUTE-TABLE
    
        grouping ROUTER-ID {
          description
            "Common node of global, vrf-global";
          leaf router-id {
            type inet:ipv4-address-no-zone;
            default "0.0.0.0";
            description "Configure Router-id";
          }
        }  // grouping ROUTER-ID
    
        grouping DEFAULT-METRIC {
          description
            "Common node of global, vrf-global";
          leaf default-metric {
            type uint32 {
              range "1..4294967295";
            }
            description
              "Default redistributed metric";
          }
        }  // grouping DEFAULT-METRIC
    
        grouping RPKI-ORIGIN-AS-VALIDATION-DISABLE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-af";
          leaf rpki-origin-as-validation-disable {
            type empty;
            description
              "RPKI origin-AS validation disable";
          }
        }  // grouping RPKI-ORIGIN-AS-VALIDATION-DISABLE
    
        grouping BGP-CFG-RPKI-ORIGIN-AS-VALIDATION-DISABLE {
          description
            "Common node of neighbor-group-af, neighbor-af,
           vrf-neighbor-af, af-group-afCommon node of
           neighbor-group, neighbor, vrf-neighbor,
           session-group";
          leaf rpki-origin-as-validation-disable {
            type empty;
            description
              "RPKI origin-AS validation disable";
          }
        }  // grouping BGP-CFG-RPKI-ORIGIN-AS-VALIDATION-DISABLE
    
        grouping DISABLE-NEIGHBOR-LOGGING {
          description
            "Common node of global, vrf-global";
          leaf disable-neighbor-logging {
            type empty;
            description
              "Disable neighbor change logging";
          }
        }  // grouping DISABLE-NEIGHBOR-LOGGING
    
        grouping TCPMSS {
          description
            "Common node of neighbor-group, neighbor,
           vrf-neighbor, session-group";
          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
        }  // grouping TCPMSS
    
        augment /a1:vrfs/a1:vrf {
          description
            "This augment extends the configuration data of
           'Cisco-IOS-XR-infra-rsi-cfg'";
          container bgp-global {
            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
             related VRF Global config";
            container route-distinguisher {
              description "Route distinguisher";
              leaf type {
                type Bgp-global-route-distinguisher;
                description "Type of RD";
              }
    
              leaf as-xx {
                when
                  "../type = 'as' or ../type = 'four-byte-as'" {
                  description
                    "../Type = AS or ../Type = FourByteAS";
                }
                type Bgp-global-as-range;
                description "AS number";
              }
    
              leaf as {
                when
                  "../type = 'as' or ../type = 'four-byte-as'" {
                  description
                    "../Type = AS or ../Type = FourByteAS";
                }
                type Bgp-global-as-range;
                description "AS number";
              }
    
              leaf as-index {
                when
                  "../type = 'as' or ../type = 'four-byte-as'" {
                  description
                    "../Type = AS or ../Type = FourByteAS";
                }
                type Bgp-global-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 Bgp-global-extcomm-v4-addr-index;
                description "IP address index";
              }
            }  // container route-distinguisher
          }  // container bgp-global
        }
    
        augment /a2:snmp/a2:notification {
          description
            "This augment extends the configuration data of
           'Cisco-IOS-XR-snmp-agent-cfg'";
          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.
             BGP4-MIB and CISCO-BGP4-MIB notification
             configuration";
            container bgp4mib {
              description
                "Enable BGP4-MIB and CISCO-BGP4-MIB IPv4-only
               notifications: bgpEstablishedNotification,
               bgpBackwardTransNotification,
               cbgpFsmStateChange, cbgpBackwardTransition,
               cbgpPrefixThresholdExceeded,
               cbgpPrefixThresholdClear.";
              leaf enable {
                type empty;
                must "not(../up-down)";
                description
                  "Enable BGP4-MIB and CISCO-BGP4-MIB IPv4-only
                 notifications";
              }
    
              leaf up-down {
                type empty;
                must "not(../enable)";
                description
                  "Enable BGP4-MIB and CISCO-BGP4-MIB IPv4-only
                 up/down notifications";
              }
            }  // container bgp4mib
    
            container cisco-bgp4mib {
              description
                "Enable CISCO-BGP4-MIB v2 notifications:
               cbgpPeer2EstablishedNotification,
               cbgpPeer2BackwardTransNotification,
               cbgpPeer2FsmStateChange,
               cbgpPeer2BackwardTransition,
               cbgpPeer2PrefixThresholdExceeded,
               cbgpPeer2PrefixThresholdClear.";
              leaf enable {
                type empty;
                must "not(../up-down)";
                description
                  "Enable CISCO-BGP4-MIB v2 notifications";
              }
    
              leaf up-down {
                type empty;
                must "not(../enable)";
                description
                  "Enable CISCO-BGP4-MIB v2 up/down notifications";
              }
            }  // container cisco-bgp4mib
          }  // container bgp
        }
    
        augment /a1:vrfs/a1:vrf/a1:afs/a1:af {
          description
            "This augment extends the configuration data of
           'Cisco-IOS-XR-infra-rsi-cfg'";
          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 AF
             VRF config";
            container import-route-targets {
              description "Import Route targets";
              uses ROUTE-TARGET-TABLE;
            }  // container import-route-targets
    
            container export-route-targets {
              description "Export Route targets";
              uses ROUTE-TARGET-TABLE;
            }  // container export-route-targets
    
            container vrf-to-global-export-route-policy {
              presence
                "Indicates a vrf-to-global-export-route-policy node is configured.";
              description
                "Route policy for vrf to global export filtering";
              leaf route-policy-name {
                type string;
                mandatory true;
                description
                  "Vrf to global export route policy";
              }
    
              leaf allow-imported-vpn {
                type boolean;
                description
                  "TRUE Enable imported VPN paths to be exported
                 to Default VRF.FALSE Disable imported VPN
                 paths to be exported to Default VRF.";
              }
            }  // container vrf-to-global-export-route-policy
    
            container export-vrf-options {
              description "Export VRF options";
              leaf allow-imported-vpn {
                type boolean;
                description
                  "TRUE Enable imported VPN paths to be exported
                 to non-default VRFFALSE Disable imported VPN
                 paths to be exported to non-default VRF";
              }
    
              leaf import-stitching-rt {
                type boolean;
                description
                  "TRUE Use stitchng RTs to import extranet
                 pathsFALSE Use regular RTs to import extranet
                 paths";
              }
    
              leaf disable-adv-source-vrf-vni {
                type boolean;
                description
                  "TRUE Disallow advertisement of source vrf vni
                 for leaked pathsFALSE Allow advertisement of
                 source vrf vni  for leaked paths";
              }
            }  // container export-vrf-options
    
            container global-to-vrf-import-route-policy {
              presence
                "Indicates a global-to-vrf-import-route-policy node is configured.";
              description
                "Route policy for global to vrf import filtering";
              leaf route-policy-name {
                type string;
                mandatory true;
                description
                  "Global to vrf import route policy";
              }
    
              leaf advertise-as-vpn {
                type boolean;
                description
                  "TRUE Enable advertising imported paths to
                 PEsFALSE Disable advertising imported paths to
                 PEs";
              }
            }  // container global-to-vrf-import-route-policy
    
            leaf export-route-policy {
              type string;
              description
                "Route policy for export filtering";
            }
    
            leaf import-route-policy {
              type string;
              description
                "Route policy for import filtering";
            }
    
            leaf import-vrf-options {
              type boolean;
              description
                "TRUE Enable advertising imported paths to
               PEsFALSE Disable advertising imported paths to
               PEs";
            }
    
            leaf import-from-bridge-domain {
              type boolean;
              description
                "TRUE Enable advertising local EVPN paths to PEs
               .FALSE Disable advertising local EVPN paths to
               PEs.";
            }
          }  // container bgp
        }
    
        augment /a1:global-af/a1:afs/a1:af {
          description
            "This augment extends the configuration data of
           'Cisco-IOS-XR-infra-rsi-cfg'";
          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 AF
             VRF config";
            container import-route-targets {
              description "Import Route targets";
              uses ROUTE-TARGET-TABLE;
            }  // container import-route-targets
    
            container export-route-targets {
              description "Export Route targets";
              uses ROUTE-TARGET-TABLE;
            }  // container export-route-targets
    
            container vrf-to-global-export-route-policy {
              presence
                "Indicates a vrf-to-global-export-route-policy node is configured.";
              description
                "Route policy for vrf to global export filtering";
              leaf route-policy-name {
                type string;
                mandatory true;
                description
                  "Vrf to global export route policy";
              }
    
              leaf allow-imported-vpn {
                type boolean;
                description
                  "TRUE Enable imported VPN paths to be exported
                 to Default VRF.FALSE Disable imported VPN
                 paths to be exported to Default VRF.";
              }
            }  // container vrf-to-global-export-route-policy
    
            container export-vrf-options {
              description "Export VRF options";
              leaf allow-imported-vpn {
                type boolean;
                description
                  "TRUE Enable imported VPN paths to be exported
                 to non-default VRFFALSE Disable imported VPN
                 paths to be exported to non-default VRF";
              }
    
              leaf import-stitching-rt {
                type boolean;
                description
                  "TRUE Use stitchng RTs to import extranet
                 pathsFALSE Use regular RTs to import extranet
                 paths";
              }
    
              leaf disable-adv-source-vrf-vni {
                type boolean;
                description
                  "TRUE Disallow advertisement of source vrf vni
                 for leaked pathsFALSE Allow advertisement of
                 source vrf vni  for leaked paths";
              }
            }  // container export-vrf-options
    
            container global-to-vrf-import-route-policy {
              presence
                "Indicates a global-to-vrf-import-route-policy node is configured.";
              description
                "Route policy for global to vrf import filtering";
              leaf route-policy-name {
                type string;
                mandatory true;
                description
                  "Global to vrf import route policy";
              }
    
              leaf advertise-as-vpn {
                type boolean;
                description
                  "TRUE Enable advertising imported paths to
                 PEsFALSE Disable advertising imported paths to
                 PEs";
              }
            }  // container global-to-vrf-import-route-policy
    
            leaf export-route-policy {
              type string;
              description
                "Route policy for export filtering";
            }
    
            leaf import-route-policy {
              type string;
              description
                "Route policy for import filtering";
            }
    
            leaf import-vrf-options {
              type boolean;
              description
                "TRUE Enable advertising imported paths to
               PEsFALSE Disable advertising imported paths to
               PEs";
            }
    
            leaf import-from-bridge-domain {
              type boolean;
              description
                "TRUE Enable advertising local EVPN paths to PEs
               .FALSE Disable advertising local EVPN paths to
               PEs.";
            }
          }  // container bgp
        }
    
        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";
                          }
    
                          uses RPKI-ORIGIN-AS-VALIDATION-ENABLE;
    
                          uses AGGREGATE-ADDRESS-TABLE;
    
                          uses DYNAMIC-MED-INTERVAL;
    
                          uses EVENT-PREFIX-ROUTE-POLICY;
    
                          uses DAMPENING;
    
                          uses ENABLE;
    
                          uses RIP-ROUTES;
    
                          uses LISP-ROUTES;
    
                          uses STATIC-ROUTES;
    
                          uses DISTANCE;
    
                          uses TABLE-POLICY;
    
                          uses APP-ROUTE-TABLE;
    
                          uses ATTRIBUTE-DOWNLOAD;
    
                          uses LABEL-MODE;
    
                          uses EIGRP-ROUTE-TABLE;
    
                          uses BEST-EXTERNAL;
    
                          uses SOURCED-NETWORK-TABLE;
    
                          uses RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP;
    
                          uses CONNECTED-ROUTES;
    
                          uses ADDITIONAL-PATHS-RECEIVE;
    
                          uses PERMANENT-NETWORK;
    
                          uses RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY;
    
                          uses ALLOCATE-LABEL;
    
                          uses ADDITIONAL-PATHS-SELECTION;
    
                          uses BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID-MP;
    
                          uses NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM;
    
                          uses RESET-WEIGHT-ON-IMPORT;
    
                          uses OSPF-ROUTE-TABLE;
    
                          uses ADDITIONAL-PATHS-SEND;
    
                          uses OPTIMAL-ROUTE-REFLECTION-GROUP-APPLY-TABLE;
    
                          uses ADVERTISE-LOCAL-LABELED-ROUTE-SAFI-UNICAST;
    
                          uses MOBILE-ROUTES;
    
                          uses DISABLE-AS-PATH-LOOP-CHECK;
    
                          uses NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM-IPV6;
    
                          uses OPTIMAL-ROUTE-REFLECTION-GROUP-TABLE;
    
                          uses SUBSCRIBER-ROUTES;
    
                          uses 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.";
                      }
    
                      uses ROUTER-ID;
    
                      uses SLOW-PEER-DETECTION-DISABLE;
    
                      uses DISABLE-ENFORCE-FIRST-AS;
    
                      uses BEST-PATH-COST-COMMUNITY;
    
                      uses BEST-PATH-AIGP-IGNORE;
    
                      uses BEST-PATH-IGP-METRIC-SR-POLICY;
    
                      uses NEXT-HOP-VAL-SRTE;
    
                      uses BEST-PATH-AS-PATH-LENGTH;
    
                      uses NEXT-HOP-VAL-DISABLE;
    
                      uses IGP-REDIST-INTERNAL;
    
                      uses MULTI-PATH-AS-PATH-IGNORE-ONWARDS;
    
                      uses DISABLE-FAST-EXTERNAL-FALLOVER;
    
                      uses UNSAFE-EBGP-POLICY;
    
                      uses DEFAULT-METRIC;
    
                      uses DEFAULT-INFO-ORIGINATE;
    
                      uses BGP-CFG-RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP;
    
                      uses BGP-CFG-RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY;
    
                      uses BEST-PATH-CONFEDERATION-PATHS;
    
                      uses BEST-PATH-AS-MULTIPATH-RELAX;
    
                      uses MPLS-ACTIVATED-INTERFACE-TABLE;
    
                      uses DISABLE-AUTO-SOFT-RESET;
    
                      uses DISABLE-MSG-LOG;
    
                      uses MULTI-PATH-USE-CLUSTER-LIST-LENGTH;
    
                      uses GLOBAL-TIMERS;
    
                      uses BEST-PATH-IGP-METRIC-IGNORE;
    
                      uses NEXT-HOP-RES-ALLOW-DEFAULT;
    
                      uses BEST-PATH-SR-POLICY-ONLY-PATH;
    
                      uses NEXT-HOP-MPLS-FWD-IBGP;
    
                      uses BFD;
    
                      uses DISABLE-NEIGHBOR-LOGGING;
    
                      uses SEND-SOCKET-BUFFER-SIZES;
    
                      uses BEST-PATH-MED-ALWAYS;
    
                      uses RECEIVE-SOCKET-BUFFER-SIZES;
    
                      uses BEST-PATH-ROUTER-ID;
    
                      uses BEST-PATH-MED-MISSING;
    
                      uses LOCAL-PREFERENCE;
                    }  // container vrf-global
    
                    container vrf-neighbors {
                      description "BGP VRF peer";
                      grouping VRF-NEIGHBOR-CONTENT {
                        description
                          "VRF NEIGHBOR CONTENT";
                        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";
                            }
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-CAPABLE;
    
                            uses SEND-EXT-COMMUNITY-EBGP;
    
                            uses ACCEPT-ROUTE-LEGACY-RT;
    
                            uses AIGP-COST-COMMUNITY;
    
                            uses CLUSTER-ID-ALLOW-EQUAL;
    
                            uses SEND-COMMUNITY-EBGP;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V6;
    
                            uses ADVERTISE-DISABLE;
    
                            uses MAXIMUM-PREFIXES;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V6;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH-INBOUND;
    
                            uses NEXT-HOP-UNCHANGED;
    
                            uses ADVERTISE-LOCAL-LABELED-ROUTE;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V4;
    
                            uses RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V4;
    
                            uses FLOWSPEC-VALIDATION;
    
                            uses ADVERTISE-L2VPN-EVPN;
    
                            uses ADVERTISE-LOCAL-L2VPN-EVPN;
    
                            uses RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                            uses ENFORCE-MULTIPLE-LABELS;
    
                            uses AS-OVERRIDE;
    
                            uses MULTIPATH;
    
                            uses SEND-COMMUNITY-EBGP-GRACEFUL-SHUTDOWN;
    
                            uses ACTIVATE;
    
                            uses PREFIX-ORF-POLICY;
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-STALE-TIME;
    
                            uses SITE-OF-ORIGIN;
    
                            uses UPDATE-OUT-ORIG-LOOP-CHK-DISABLE;
    
                            uses AIGP;
    
                            uses AIGP-SEND-MED;
    
                            uses ADVERTISE-V6;
    
                            uses ALLOW-AS-IN;
    
                            uses ADVERTISE-ORF;
    
                            uses ROUTE-REFLECTOR-CLIENT;
    
                            uses NEXT-HOP-SELF;
    
                            uses ADVERTISE-LOCAL-V6;
    
                            uses SLOW-PEER;
    
                            uses ROUTE-POLICY-IN;
    
                            uses IMPORT;
    
                            uses DEFAULT-ORIGINATE;
    
                            uses SOFT-RECONFIGURATION;
    
                            uses ADVERTISE-VRF-IMP-DISABLE-V6;
    
                            uses DEFAULT-WEIGHT;
    
                            uses AF-GROUP;
    
                            uses ADVERTISE-V4;
    
                            uses OPTIMAL-ROUTE-REFLECTION-GROUP;
    
                            uses ACCEPT-OWN;
    
                            uses ROUTE-POLICY-OUT;
    
                            uses ADVERTISE-LOCAL-V4;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH;
    
                            uses ADVERTISE-VRF-IMP-DISABLE-V4;
                          }  // list vrf-neighbor-af
                        }  // container vrf-neighbor-afs
    
                        uses LOCAL-ADDRESS-SUB-NET;
    
                        uses INTERNAL-VPN-CLIENT-IBGP-CE;
    
                        uses LOCAL-ADDRESS;
    
                        uses BMP-ACTIVATE-TABLE;
    
                        uses EBGP-MULTIHOP;
    
                        uses SESSION-GROUP-ADD-MEMBER;
    
                        uses EGRESS-PEER-ENGINEERING;
    
                        uses REMOTE-AS;
    
                        uses LOCAL-AS;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-STALEPATH-TIME;
    
                        uses SHUTDOWN;
    
                        uses DESCRIPTION;
    
                        uses SUPPRESS-EXTENDED-NEXTHOP-ENCODING-CAPABILITY;
    
                        uses NEIGHBOR-GROUP-ADD-MEMBER;
    
                        uses PASSWORD;
    
                        uses EBGP-RECV-DMZ;
    
                        uses ADVERTISEMENT-INTERVAL;
    
                        uses NEIGHBOR-GRACEFUL-RESTART;
    
                        uses ENFORCE-FIRST-AS;
    
                        uses IDLE-WATCH-TIME;
    
                        uses TCPMSS;
    
                        uses SESSION-OPEN-MODE;
    
                        uses BGP-CFG-RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                        uses TOS;
    
                        uses UPDATE-IN-FILTERING;
    
                        uses EBGP-SEND-DMZ-ENABLE-MODES;
    
                        uses MSG-LOG-OUT;
    
                        uses SUPPRESS-ALL-CAPABILITIES;
    
                        uses MAX-PEERS;
    
                        uses AO-KEYCHAIN;
    
                        uses BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                        uses RECEIVE-BUFFER-SIZE;
    
                        uses MSG-LOG-IN;
    
                        uses ADDITIONAL-PATHS-SEND-CAPABILITY;
    
                        uses PROPAGATE-DMZ-LINK-BANDWIDTH;
    
                        uses EPE-PEER-SET-IDENTITY-TABLE;
    
                        uses BFD-ENABLE-MODES;
    
                        uses SEND-BUFFER-SIZE;
    
                        uses TTL-SECURITY;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-TIME;
    
                        uses TIMERS;
    
                        uses BFD-MULTIPLIER;
    
                        uses BFD-MINIMUM-INTERVAL;
    
                        uses REMOTE-AS-LIST;
    
                        uses LABELED-UNICAST-EQUIVALENT-FOR-INBOUND-UPDATES;
    
                        uses ADDITIONAL-PATHS-RECEIVE-CAPABILITY;
    
                        uses KEYCHAIN;
    
                        uses IGNORE-CONNECTED-CHECK-EBGP;
    
                        uses SUPPRESS-FOUR-BYTE-AS-CAPABILITY;
    
                        uses UPDATE-SOURCE-INTERFACE;
    
                        uses GRACEFUL-MAINTENANCE;
                      }  // grouping VRF-NEIGHBOR-CONTENT
                      list vrf-neighbor {
                        key "neighbor-address";
                        description
                          "A particular VRF peer";
                        leaf neighbor-address {
                          type inet:ip-address-no-zone;
                          description
                            "Neighbor address";
                        }
    
                        uses VRF-NEIGHBOR-CONTENT;
                      }  // 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";
                        }
    
                        uses VRF-NEIGHBOR-CONTENT;
                      }  // 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";
                      grouping NEIGHBOR-CONTENT {
                        description
                          "NEIGHBOR CONTENT";
                        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";
                            }
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-CAPABLE;
    
                            uses L2VPN-SIGNALLING;
    
                            uses SEND-EXT-COMMUNITY-EBGP;
    
                            uses ACCEPT-ROUTE-LEGACY-RT;
    
                            uses AIGP-COST-COMMUNITY;
    
                            uses CLUSTER-ID-ALLOW-EQUAL;
    
                            uses SEND-COMMUNITY-EBGP;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V6;
    
                            uses ADVERTISE-DISABLE;
    
                            uses SEND-MULTICAST-ATTR;
    
                            uses MAXIMUM-PREFIXES;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V6;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH-INBOUND;
    
                            uses NEXT-HOP-UNCHANGED;
    
                            uses ADVERTISE-LOCAL-LABELED-ROUTE;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V4;
    
                            uses RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V4;
    
                            uses FLOWSPEC-VALIDATION;
    
                            uses ADVERTISE-L2VPN-EVPN;
    
                            uses ADVERTISE-LOCAL-L2VPN-EVPN;
    
                            uses ENCAPSULATION-TYPE;
    
                            uses RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                            uses ENFORCE-MULTIPLE-LABELS;
    
                            uses AS-OVERRIDE;
    
                            uses MULTIPATH;
    
                            uses SEND-COMMUNITY-EBGP-GRACEFUL-SHUTDOWN;
    
                            uses ACTIVATE;
    
                            uses PREFIX-ORF-POLICY;
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-STALE-TIME;
    
                            uses UPDATE-OUT-ORIG-LOOP-CHK-DISABLE;
    
                            uses AIGP;
    
                            uses AIGP-SEND-MED;
    
                            uses ADVERTISE-V6;
    
                            uses ALLOW-AS-IN;
    
                            uses ADVERTISE-ORF;
    
                            uses ROUTE-REFLECTOR-CLIENT;
    
                            uses NEXT-HOP-SELF;
    
                            uses ADVERTISE-LOCAL-V6;
    
                            uses SRV6VERSION4;
    
                            uses SLOW-PEER;
    
                            uses ROUTE-POLICY-IN;
    
                            uses IMPORT;
    
                            uses DEFAULT-ORIGINATE;
    
                            uses SOFT-RECONFIGURATION;
    
                            uses ADVERTISE-VRF-IMP-DISABLE-V6;
    
                            uses DEFAULT-WEIGHT;
    
                            uses AF-GROUP;
    
                            uses ADVERTISE-V4;
    
                            uses NEXT-HOP-UNCHANGED-MULTIPATH;
    
                            uses OPTIMAL-ROUTE-REFLECTION-GROUP;
    
                            uses ACCEPT-OWN;
    
                            uses ROUTE-POLICY-OUT;
    
                            uses ADVERTISE-LOCAL-V4;
    
                            uses ADVERTISE-PERMANENT-NETWORK;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH;
    
                            uses 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";
                        }
    
                        uses LOCAL-ADDRESS-SUB-NET;
    
                        uses LOCAL-ADDRESS;
    
                        uses BMP-ACTIVATE-TABLE;
    
                        uses EBGP-MULTIHOP;
    
                        uses SESSION-GROUP-ADD-MEMBER;
    
                        uses EGRESS-PEER-ENGINEERING;
    
                        uses REMOTE-AS;
    
                        uses LOCAL-AS;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-STALEPATH-TIME;
    
                        uses SHUTDOWN;
    
                        uses DESCRIPTION;
    
                        uses SUPPRESS-EXTENDED-NEXTHOP-ENCODING-CAPABILITY;
    
                        uses NEIGHBOR-GROUP-ADD-MEMBER;
    
                        uses PASSWORD;
    
                        uses EBGP-RECV-DMZ;
    
                        uses ADVERTISEMENT-INTERVAL;
    
                        uses NEIGHBOR-CLUSTER-ID;
    
                        uses NEIGHBOR-GRACEFUL-RESTART;
    
                        uses ENFORCE-FIRST-AS;
    
                        uses IDLE-WATCH-TIME;
    
                        uses TCPMSS;
    
                        uses SESSION-OPEN-MODE;
    
                        uses BGP-CFG-RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                        uses TOS;
    
                        uses UPDATE-IN-FILTERING;
    
                        uses EBGP-SEND-DMZ-ENABLE-MODES;
    
                        uses MSG-LOG-OUT;
    
                        uses SUPPRESS-ALL-CAPABILITIES;
    
                        uses MAX-PEERS;
    
                        uses AO-KEYCHAIN;
    
                        uses BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                        uses RECEIVE-BUFFER-SIZE;
    
                        uses MSG-LOG-IN;
    
                        uses ADDITIONAL-PATHS-SEND-CAPABILITY;
    
                        uses PROPAGATE-DMZ-LINK-BANDWIDTH;
    
                        uses EPE-PEER-SET-IDENTITY-TABLE;
    
                        uses BFD-ENABLE-MODES;
    
                        uses SEND-BUFFER-SIZE;
    
                        uses TTL-SECURITY;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-TIME;
    
                        uses TIMERS;
    
                        uses BFD-MULTIPLIER;
    
                        uses BFD-MINIMUM-INTERVAL;
    
                        uses REMOTE-AS-LIST;
    
                        uses LABELED-UNICAST-EQUIVALENT-FOR-INBOUND-UPDATES;
    
                        uses ADDITIONAL-PATHS-RECEIVE-CAPABILITY;
    
                        uses KEYCHAIN;
    
                        uses IGNORE-CONNECTED-CHECK-EBGP;
    
                        uses SUPPRESS-FOUR-BYTE-AS-CAPABILITY;
    
                        uses UPDATE-SOURCE-INTERFACE;
    
                        uses GRACEFUL-MAINTENANCE;
                      }  // grouping NEIGHBOR-CONTENT
                      list neighbor {
                        key "neighbor-address";
                        description
                          "A particular BGP peer";
                        leaf neighbor-address {
                          type inet:ip-address-no-zone;
                          description
                            "Neighbor address";
                        }
    
                        uses NEIGHBOR-CONTENT;
                      }  // 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";
                        }
    
                        uses NEIGHBOR-CONTENT;
                      }  // 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";
                            }
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-CAPABLE;
    
                            uses L2VPN-SIGNALLING;
    
                            uses SEND-EXT-COMMUNITY-EBGP;
    
                            uses ACCEPT-ROUTE-LEGACY-RT;
    
                            uses AIGP-COST-COMMUNITY;
    
                            uses CLUSTER-ID-ALLOW-EQUAL;
    
                            uses SEND-COMMUNITY-EBGP;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V6;
    
                            uses ADVERTISE-DISABLE;
    
                            uses SEND-MULTICAST-ATTR;
    
                            uses MAXIMUM-PREFIXES;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V6;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH-INBOUND;
    
                            uses NEXT-HOP-UNCHANGED;
    
                            uses ADVERTISE-LOCAL-LABELED-ROUTE;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V4;
    
                            uses RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V4;
    
                            uses FLOWSPEC-VALIDATION;
    
                            uses ADVERTISE-L2VPN-EVPN;
    
                            uses ADVERTISE-LOCAL-L2VPN-EVPN;
    
                            uses ENCAPSULATION-TYPE;
    
                            uses RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                            uses ENFORCE-MULTIPLE-LABELS;
    
                            uses AS-OVERRIDE;
    
                            uses MULTIPATH;
    
                            uses SEND-COMMUNITY-EBGP-GRACEFUL-SHUTDOWN;
    
                            uses ACTIVATE;
    
                            uses PREFIX-ORF-POLICY;
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-STALE-TIME;
    
                            uses SITE-OF-ORIGIN;
    
                            uses UPDATE-OUT-ORIG-LOOP-CHK-DISABLE;
    
                            uses AIGP;
    
                            uses AIGP-SEND-MED;
    
                            uses ADVERTISE-V6;
    
                            uses ALLOW-AS-IN;
    
                            uses ADVERTISE-ORF;
    
                            uses ROUTE-REFLECTOR-CLIENT;
    
                            uses NEXT-HOP-SELF;
    
                            uses ADVERTISE-LOCAL-V6;
    
                            uses SRV6VERSION4;
    
                            uses SLOW-PEER;
    
                            uses ROUTE-POLICY-IN;
    
                            uses IMPORT;
    
                            uses DEFAULT-ORIGINATE;
    
                            uses SOFT-RECONFIGURATION;
    
                            uses ADVERTISE-VRF-IMP-DISABLE-V6;
    
                            uses DEFAULT-WEIGHT;
    
                            uses AF-GROUP;
    
                            uses ADVERTISE-V4;
    
                            uses NEXT-HOP-UNCHANGED-MULTIPATH;
    
                            uses OPTIMAL-ROUTE-REFLECTION-GROUP;
    
                            uses ACCEPT-OWN;
    
                            uses ROUTE-POLICY-OUT;
    
                            uses ADVERTISE-LOCAL-V4;
    
                            uses ADVERTISE-PERMANENT-NETWORK;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH;
    
                            uses 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";
                        }
    
                        uses LOCAL-ADDRESS-SUB-NET;
    
                        uses INTERNAL-VPN-CLIENT-IBGP-CE;
    
                        uses LOCAL-ADDRESS;
    
                        uses BMP-ACTIVATE-TABLE;
    
                        uses EBGP-MULTIHOP;
    
                        uses SESSION-GROUP-ADD-MEMBER;
    
                        uses EGRESS-PEER-ENGINEERING;
    
                        uses REMOTE-AS;
    
                        uses LOCAL-AS;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-STALEPATH-TIME;
    
                        uses SHUTDOWN;
    
                        uses DESCRIPTION;
    
                        uses SUPPRESS-EXTENDED-NEXTHOP-ENCODING-CAPABILITY;
    
                        uses PASSWORD;
    
                        uses EBGP-RECV-DMZ;
    
                        uses ADVERTISEMENT-INTERVAL;
    
                        uses NEIGHBOR-CLUSTER-ID;
    
                        uses NEIGHBOR-GRACEFUL-RESTART;
    
                        uses ENFORCE-FIRST-AS;
    
                        uses IDLE-WATCH-TIME;
    
                        uses TCPMSS;
    
                        uses SESSION-OPEN-MODE;
    
                        uses BGP-CFG-RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                        uses TOS;
    
                        uses UPDATE-IN-FILTERING;
    
                        uses EBGP-SEND-DMZ-ENABLE-MODES;
    
                        uses MSG-LOG-OUT;
    
                        uses SUPPRESS-ALL-CAPABILITIES;
    
                        uses MAX-PEERS;
    
                        uses AO-KEYCHAIN;
    
                        uses BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                        uses RECEIVE-BUFFER-SIZE;
    
                        uses MSG-LOG-IN;
    
                        uses ADDITIONAL-PATHS-SEND-CAPABILITY;
    
                        uses PROPAGATE-DMZ-LINK-BANDWIDTH;
    
                        uses EPE-PEER-SET-IDENTITY-TABLE;
    
                        uses BFD-ENABLE-MODES;
    
                        uses SEND-BUFFER-SIZE;
    
                        uses TTL-SECURITY;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-TIME;
    
                        uses TIMERS;
    
                        uses BFD-MULTIPLIER;
    
                        uses BFD-MINIMUM-INTERVAL;
    
                        uses REMOTE-AS-LIST;
    
                        uses LABELED-UNICAST-EQUIVALENT-FOR-INBOUND-UPDATES;
    
                        uses ADDITIONAL-PATHS-RECEIVE-CAPABILITY;
    
                        uses KEYCHAIN;
    
                        uses IGNORE-CONNECTED-CHECK-EBGP;
    
                        uses SUPPRESS-FOUR-BYTE-AS-CAPABILITY;
    
                        uses UPDATE-SOURCE-INTERFACE;
    
                        uses CREATE;
    
                        uses 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";
                            }
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-CAPABLE;
    
                            uses L2VPN-SIGNALLING;
    
                            uses SEND-EXT-COMMUNITY-EBGP;
    
                            uses ACCEPT-ROUTE-LEGACY-RT;
    
                            uses AIGP-COST-COMMUNITY;
    
                            uses CLUSTER-ID-ALLOW-EQUAL;
    
                            uses SEND-COMMUNITY-EBGP;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V6;
    
                            uses ADVERTISE-DISABLE;
    
                            uses SEND-MULTICAST-ATTR;
    
                            uses MAXIMUM-PREFIXES;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V6;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH-INBOUND;
    
                            uses NEXT-HOP-UNCHANGED;
    
                            uses ADVERTISE-LOCAL-LABELED-ROUTE;
    
                            uses ADVERTISE-DEF-IMP-DISABLE-V4;
    
                            uses RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                            uses ADVERTISE-BRIDGE-DOMAIN-IMP-DISABLE-V4;
    
                            uses FLOWSPEC-VALIDATION;
    
                            uses ADVERTISE-L2VPN-EVPN;
    
                            uses ADVERTISE-LOCAL-L2VPN-EVPN;
    
                            uses ENCAPSULATION-TYPE;
    
                            uses RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                            uses ENFORCE-MULTIPLE-LABELS;
    
                            uses AS-OVERRIDE;
    
                            uses MULTIPATH;
    
                            uses SEND-COMMUNITY-EBGP-GRACEFUL-SHUTDOWN;
    
                            uses PREFIX-ORF-POLICY;
    
                            uses NEIGHBOR-AF-LONG-LIVED-GRACEFUL-RESTART-STALE-TIME;
    
                            uses SITE-OF-ORIGIN;
    
                            uses UPDATE-OUT-ORIG-LOOP-CHK-DISABLE;
    
                            uses AIGP;
    
                            uses AIGP-SEND-MED;
    
                            uses ADVERTISE-V6;
    
                            uses ALLOW-AS-IN;
    
                            uses ADVERTISE-ORF;
    
                            uses ROUTE-REFLECTOR-CLIENT;
    
                            uses NEXT-HOP-SELF;
    
                            uses ADVERTISE-LOCAL-V6;
    
                            uses SRV6VERSION4;
    
                            uses SLOW-PEER;
    
                            uses ROUTE-POLICY-IN;
    
                            uses IMPORT;
    
                            uses DEFAULT-ORIGINATE;
    
                            uses SOFT-RECONFIGURATION;
    
                            uses ADVERTISE-VRF-IMP-DISABLE-V6;
    
                            uses DEFAULT-WEIGHT;
    
                            uses ADVERTISE-V4;
    
                            uses NEXT-HOP-UNCHANGED-MULTIPATH;
    
                            uses OPTIMAL-ROUTE-REFLECTION-GROUP;
    
                            uses ACCEPT-OWN;
    
                            uses ROUTE-POLICY-OUT;
    
                            uses ADVERTISE-LOCAL-V4;
    
                            uses ADVERTISE-PERMANENT-NETWORK;
    
                            uses REMOVE-PRIVATE-AS-ENTIRE-AS-PATH;
    
                            uses 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";
                        }
    
                        uses LOCAL-ADDRESS-SUB-NET;
    
                        uses INTERNAL-VPN-CLIENT-IBGP-CE;
    
                        uses LOCAL-ADDRESS;
    
                        uses BMP-ACTIVATE-TABLE;
    
                        uses EBGP-MULTIHOP;
    
                        uses EGRESS-PEER-ENGINEERING;
    
                        uses REMOTE-AS;
    
                        uses LOCAL-AS;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-STALEPATH-TIME;
    
                        uses SHUTDOWN;
    
                        uses DESCRIPTION;
    
                        uses SUPPRESS-EXTENDED-NEXTHOP-ENCODING-CAPABILITY;
    
                        uses PASSWORD;
    
                        uses EBGP-RECV-DMZ;
    
                        uses ADVERTISEMENT-INTERVAL;
    
                        uses NEIGHBOR-CLUSTER-ID;
    
                        uses NEIGHBOR-GRACEFUL-RESTART;
    
                        uses ENFORCE-FIRST-AS;
    
                        uses IDLE-WATCH-TIME;
    
                        uses TCPMSS;
    
                        uses SESSION-OPEN-MODE;
    
                        uses BGP-CFG-RPKI-ORIGIN-AS-VALIDATION-DISABLE;
    
                        uses TOS;
    
                        uses UPDATE-IN-FILTERING;
    
                        uses EBGP-SEND-DMZ-ENABLE-MODES;
    
                        uses MSG-LOG-OUT;
    
                        uses SUPPRESS-ALL-CAPABILITIES;
    
                        uses MAX-PEERS;
    
                        uses AO-KEYCHAIN;
    
                        uses BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID;
    
                        uses RECEIVE-BUFFER-SIZE;
    
                        uses MSG-LOG-IN;
    
                        uses ADDITIONAL-PATHS-SEND-CAPABILITY;
    
                        uses PROPAGATE-DMZ-LINK-BANDWIDTH;
    
                        uses EPE-PEER-SET-IDENTITY-TABLE;
    
                        uses BFD-ENABLE-MODES;
    
                        uses SEND-BUFFER-SIZE;
    
                        uses TTL-SECURITY;
    
                        uses NEIGHBOR-GRACEFUL-RESTART-TIME;
    
                        uses TIMERS;
    
                        uses BFD-MULTIPLIER;
    
                        uses BFD-MINIMUM-INTERVAL;
    
                        uses REMOTE-AS-LIST;
    
                        uses LABELED-UNICAST-EQUIVALENT-FOR-INBOUND-UPDATES;
    
                        uses ADDITIONAL-PATHS-RECEIVE-CAPABILITY;
    
                        uses KEYCHAIN;
    
                        uses IGNORE-CONNECTED-CHECK-EBGP;
    
                        uses SUPPRESS-FOUR-BYTE-AS-CAPABILITY;
    
                        uses UPDATE-SOURCE-INTERFACE;
    
                        uses CREATE;
    
                        uses 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";
                        }
    
                        uses RPKI-ORIGIN-AS-VALIDATION-ENABLE;
    
                        uses AGGREGATE-ADDRESS-TABLE;
    
                        uses DYNAMIC-MED-INTERVAL;
    
                        uses EVENT-PREFIX-ROUTE-POLICY;
    
                        uses DAMPENING;
    
                        uses ENABLE;
    
                        uses RIP-ROUTES;
    
                        uses LISP-ROUTES;
    
                        uses STATIC-ROUTES;
    
                        uses DISTANCE;
    
                        uses TABLE-POLICY;
    
                        uses APP-ROUTE-TABLE;
    
                        uses ATTRIBUTE-DOWNLOAD;
    
                        uses LABEL-MODE;
    
                        uses EIGRP-ROUTE-TABLE;
    
                        uses BEST-EXTERNAL;
    
                        uses SOURCED-NETWORK-TABLE;
    
                        uses RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP;
    
                        uses CONNECTED-ROUTES;
    
                        uses ADDITIONAL-PATHS-RECEIVE;
    
                        uses PERMANENT-NETWORK;
    
                        uses RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY;
    
                        uses ALLOCATE-LABEL;
    
                        uses ADDITIONAL-PATHS-SELECTION;
    
                        uses BGP-CFG-RPKI-BESTPATH-ORIGIN-AS-ALLOW-INVALID-MP;
    
                        uses NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM;
    
                        uses RESET-WEIGHT-ON-IMPORT;
    
                        uses OSPF-ROUTE-TABLE;
    
                        uses ADDITIONAL-PATHS-SEND;
    
                        uses OPTIMAL-ROUTE-REFLECTION-GROUP-APPLY-TABLE;
    
                        uses ADVERTISE-LOCAL-LABELED-ROUTE-SAFI-UNICAST;
    
                        uses MOBILE-ROUTES;
    
                        uses DISABLE-AS-PATH-LOOP-CHECK;
    
                        uses NEXT-HOP-RESOLUTION-PREFIX-LENGTH-MINIMUM-IPV6;
    
                        uses OPTIMAL-ROUTE-REFLECTION-GROUP-TABLE;
    
                        uses SUBSCRIBER-ROUTES;
    
                        uses 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";
                    }
    
                    uses ROUTER-ID;
    
                    uses SLOW-PEER-DETECTION-DISABLE;
    
                    uses DISABLE-ENFORCE-FIRST-AS;
    
                    uses BEST-PATH-COST-COMMUNITY;
    
                    uses BEST-PATH-AIGP-IGNORE;
    
                    uses BEST-PATH-IGP-METRIC-SR-POLICY;
    
                    uses NEXT-HOP-VAL-SRTE;
    
                    uses BEST-PATH-AS-PATH-LENGTH;
    
                    uses NEXT-HOP-VAL-DISABLE;
    
                    uses IGP-REDIST-INTERNAL;
    
                    uses MULTI-PATH-AS-PATH-IGNORE-ONWARDS;
    
                    uses DISABLE-FAST-EXTERNAL-FALLOVER;
    
                    uses UNSAFE-EBGP-POLICY;
    
                    uses DEFAULT-METRIC;
    
                    uses DEFAULT-INFO-ORIGINATE;
    
                    uses BGP-CFG-RPKI-ORIGIN-AS-VALIDITY-SIGNAL-IBGP;
    
                    uses BGP-CFG-RPKI-BESTPATH-USE-ORIGIN-AS-VALIDITY;
    
                    uses BEST-PATH-CONFEDERATION-PATHS;
    
                    uses BEST-PATH-AS-MULTIPATH-RELAX;
    
                    uses MPLS-ACTIVATED-INTERFACE-TABLE;
    
                    uses DISABLE-AUTO-SOFT-RESET;
    
                    uses DISABLE-MSG-LOG;
    
                    uses MULTI-PATH-USE-CLUSTER-LIST-LENGTH;
    
                    uses GLOBAL-TIMERS;
    
                    uses BEST-PATH-IGP-METRIC-IGNORE;
    
                    uses NEXT-HOP-RES-ALLOW-DEFAULT;
    
                    uses BEST-PATH-SR-POLICY-ONLY-PATH;
    
                    uses NEXT-HOP-MPLS-FWD-IBGP;
    
                    uses BFD;
    
                    uses DISABLE-NEIGHBOR-LOGGING;
    
                    uses SEND-SOCKET-BUFFER-SIZES;
    
                    uses BEST-PATH-MED-ALWAYS;
    
                    uses RECEIVE-SOCKET-BUFFER-SIZES;
    
                    uses BEST-PATH-ROUTER-ID;
    
                    uses BEST-PATH-MED-MISSING;
    
                    uses 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.