netconfcentral logo

openconfig-bgp-global@2017-07-30



  submodule openconfig-bgp-global {

    yang-version 1;

    belongs-to openconfig-bgp {
        prefix oc-bgp;
    }

    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-yang-types {
      prefix oc-yang;
    }
    import openconfig-inet-types {
      prefix oc-inet;
    }

    include openconfig-bgp-common;
    include openconfig-bgp-common-multiprotocol;
    include openconfig-bgp-peer-group;
    include openconfig-bgp-common-structure;

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    netopenconfig@googlegroups.com";

    description
      "This sub-module contains groupings that are specific to the
    global context of the OpenConfig BGP module";

    revision "2017-07-30" {
      description
        "Clarification of add-paths send-max leaf";
      reference
        "4.0.1";

    }

    revision "2017-07-10" {
      description
        "Add error notifications; moved add-paths config; add AS
      prepend policy features; removed unneeded config leaves";
      reference
        "4.0.0";

    }

    revision "2017-02-02" {
      description
        "Bugfix to remove remaining global-level policy data";
      reference
        "3.0.1";

    }

    revision "2017-01-26" {
      description
        "Add dynamic neighbor support, migrate to OpenConfig types";
      reference
        "3.0.0";

    }

    revision "2016-06-21" {
      description "OpenConfig BGP refactor";
      reference
        "2.1.1";

    }

    oc-ext:openconfig-version "4.0.1";

    grouping bgp-global-config {
      description
        "Global configuration options for the BGP router.";
      leaf as {
        type oc-inet:as-number;
        mandatory true;
        description
          "Local autonomous system number of the router.  Uses
        the 32-bit as-number type from the model in RFC 6991.";
      }

      leaf router-id {
        type oc-yang:dotted-quad;
        description
          "Router id of the router - an unsigned 32-bit integer
        expressed in dotted quad notation.";
        reference
          "RFC4271 - A Border Gateway Protocol 4 (BGP-4),
          Section 4.2";

      }
    }  // grouping bgp-global-config

    grouping bgp-global-state {
      description
        "Operational state parameters for the BGP neighbor";
      uses bgp-common-state;
    }  // grouping bgp-global-state

    grouping bgp-global-default-route-distance-config {
      description
        "Configuration options relating to the administrative distance
      (or preference) assigned to routes received from different
      sources (external, internal, and local).";
      leaf external-route-distance {
        type uint8 {
          range "1..255";
        }
        description
          "Administrative distance for routes learned from external
        BGP (eBGP).";
      }

      leaf internal-route-distance {
        type uint8 {
          range "1..255";
        }
        description
          "Administrative distance for routes learned from internal
        BGP (iBGP).";
      }
    }  // grouping bgp-global-default-route-distance-config

    grouping bgp-global-confederation-config {
      description
        "Configuration options specifying parameters when the local
      router is within an autonomous system which is part of a BGP
      confederation.";
      leaf identifier {
        type oc-inet:as-number;
        description
          "Confederation identifier for the autonomous system.
        Setting the identifier indicates that the local-AS is part
        of a BGP confederation.";
      }

      leaf-list member-as {
        type oc-inet:as-number;
        description
          "Remote autonomous systems that are to be treated
        as part of the local confederation.";
      }
    }  // grouping bgp-global-confederation-config

    grouping bgp-global-dynamic-neighbors {
      description
        "Grouping containing configuration relating to dynamic peers.";
      container dynamic-neighbor-prefixes {
        description
          "A list of IP prefixes from which the system should:
          - Accept connections to the BGP daemon
          - Dynamically configure a BGP neighbor corresponding to the
            source address of the remote system, using the parameters
            of the specified peer-group.
         For such neighbors, an entry within the neighbor list should
         be created, indicating that the peer was dynamically
         configured, and referencing the peer-group from which the
         configuration was derived.";
        list dynamic-neighbor-prefix {
          key "prefix";
          description
            "An individual prefix from which dynamic neighbor
          connections are allowed.";
          leaf prefix {
            type leafref {
              path "../config/prefix";
            }
            description
              "Reference to the IP prefix from which source connections
            are allowed for the dynamic neighbor group.";
          }

          container config {
            description
              "Configuration parameters relating to the source prefix
            for the dynamic BGP neighbor connections.";
            uses bgp-global-dynamic-neighbor-config;
          }  // container config

          container state {
            config false;
            description
              "Operational state parameters relating to the source
            prefix for the dynamic BGP neighbor connections.";
            uses bgp-global-dynamic-neighbor-config;
          }  // container state
        }  // list dynamic-neighbor-prefix
      }  // container dynamic-neighbor-prefixes
    }  // grouping bgp-global-dynamic-neighbors

    grouping bgp-global-dynamic-neighbor-config {
      description
        "Configuration parameters relating to an individual prefix from
      which dynamic neighbors are accepted.";
      leaf prefix {
        type oc-inet:ip-prefix;
        description
          "The IP prefix within which the source address of the remote
        BGP speaker must fall to be considered eligible to the
        dynamically configured.";
      }

      leaf peer-group {
        type leafref {
          path
            "../../../../../peer-groups/peer-group/config/"
              + "peer-group-name";
        }
        description
          "The peer-group within which the dynamic neighbor will be
        configured.  The configuration parameters used for the dynamic
        neighbor are those specified within the referenced peer
        group.";
      }
    }  // grouping bgp-global-dynamic-neighbor-config

    grouping bgp-global-mp-all-afi-safi-list-contents {
      description
        "A grouping used for contents of the list of AFI-SAFI
      entries at the global BGP level.";
      uses bgp-common-mp-ipv4-unicast-group;

      uses bgp-common-mp-ipv6-unicast-group;

      uses bgp-common-mp-ipv4-labeled-unicast-group;

      uses bgp-common-mp-ipv6-labeled-unicast-group;

      uses bgp-common-mp-l3vpn-ipv4-unicast-group;

      uses bgp-common-mp-l3vpn-ipv6-unicast-group;

      uses bgp-common-mp-l3vpn-ipv4-multicast-group;

      uses bgp-common-mp-l3vpn-ipv6-multicast-group;

      uses bgp-common-mp-l2vpn-vpls-group;

      uses bgp-common-mp-l2vpn-evpn-group;
    }  // grouping bgp-global-mp-all-afi-safi-list-contents

    grouping bgp-global-afi-safi-list {
      description
        "List of address-families associated with the BGP instance";
      list afi-safi {
        key "afi-safi-name";
        description
          "AFI,SAFI configuration available for the
        neighbour or group";
        leaf afi-safi-name {
          type leafref {
            path "../config/afi-safi-name";
          }
          description
            "Reference to the AFI-SAFI name used as a key
          for the AFI-SAFI list";
        }

        container config {
          description
            "Configuration parameters for the AFI-SAFI";
          uses bgp-common-mp-afi-safi-config;
        }  // container config

        container state {
          config false;
          description
            "State information relating to the AFI-SAFI";
          uses bgp-common-mp-afi-safi-config;

          uses bgp-common-state;
        }  // container state

        container graceful-restart {
          description
            "Parameters relating to BGP graceful-restart";
          container config {
            description
              "Configuration options for BGP graceful-restart";
            uses bgp-common-mp-afi-safi-graceful-restart-config;
          }  // container config

          container state {
            config false;
            description
              "State information for BGP graceful-restart";
            uses bgp-common-mp-afi-safi-graceful-restart-config;
          }  // container state
        }  // container graceful-restart

        uses bgp-common-route-selection-options;

        uses bgp-common-global-group-use-multiple-paths;

        uses bgp-common-structure-neighbor-group-add-paths;

        uses bgp-global-mp-all-afi-safi-list-contents;
      }  // list afi-safi
    }  // grouping bgp-global-afi-safi-list

    grouping bgp-global-base {
      description
        "Global configuration parameters for the BGP router";
      container config {
        description
          "Configuration parameters relating to the global BGP router";
        uses bgp-global-config;
      }  // container config

      container state {
        config false;
        description
          "State information relating to the global BGP router";
        uses bgp-global-config;

        uses bgp-global-state;
      }  // container state

      container default-route-distance {
        description
          "Administrative distance (or preference) assigned to
        routes received from different sources
        (external, internal, and local).";
        container config {
          description
            "Configuration parameters relating to the default route
          distance";
          uses bgp-global-default-route-distance-config;
        }  // container config

        container state {
          config false;
          description
            "State information relating to the default route distance";
          uses bgp-global-default-route-distance-config;
        }  // container state
      }  // container default-route-distance

      container confederation {
        description
          "Parameters indicating whether the local system acts as part
        of a BGP confederation";
        container config {
          description
            "Configuration parameters relating to BGP confederations";
          uses bgp-global-confederation-config;
        }  // container config

        container state {
          config false;
          description
            "State information relating to the BGP confederations";
          uses bgp-global-confederation-config;
        }  // container state
      }  // container confederation

      container graceful-restart {
        description
          "Parameters relating the graceful restart mechanism for BGP";
        container config {
          description
            "Configuration parameters relating to graceful-restart";
          uses bgp-common-graceful-restart-config;
        }  // container config

        container state {
          config false;
          description
            "State information associated with graceful-restart";
          uses bgp-common-graceful-restart-config;
        }  // container state
      }  // container graceful-restart

      uses bgp-common-global-group-use-multiple-paths;

      uses bgp-common-route-selection-options;

      container afi-safis {
        description
          "Address family specific configuration";
        uses bgp-global-afi-safi-list;
      }  // container afi-safis

      uses bgp-global-dynamic-neighbors;
    }  // grouping bgp-global-base
  }  // submodule openconfig-bgp-global