netconfcentral logo

openconfig-bgp-peer-group@2017-07-30



  submodule openconfig-bgp-peer-group {

    yang-version 1;

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

    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-routing-policy {
      prefix oc-rpol;
    }

    include openconfig-bgp-common;
    include openconfig-bgp-common-multiprotocol;
    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
    peer-group 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-peer-group-config {
      description
        "Configuration parameters relating to a base BGP peer group that
      are not also applicable to any other context (e.g., neighbor)";
      leaf peer-group-name {
        type string;
        description
          "Name of the BGP peer-group";
      }
    }  // grouping bgp-peer-group-config

    grouping bgp-peer-group-afi-safi-list {
      description
        "List of address-families associated with the BGP peer-group";
      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;
        }  // 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-structure-neighbor-group-add-paths;

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

        uses bgp-common-mp-all-afi-safi-list-contents;
      }  // list afi-safi
    }  // grouping bgp-peer-group-afi-safi-list

    grouping bgp-peer-group-base {
      description
        "Parameters related to a BGP group";
      container config {
        description
          "Configuration parameters relating to the BGP neighbor or
        group";
        uses bgp-peer-group-config;

        uses bgp-common-neighbor-group-config;
      }  // container config

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

        uses bgp-common-neighbor-group-config;

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

      container timers {
        description
          "Timers related to a BGP peer-group";
        container config {
          description
            "Configuration parameters relating to timers used for the
          BGP neighbor or peer group";
          uses bgp-common-neighbor-group-timers-config;
        }  // container config

        container state {
          config false;
          description
            "State information relating to the timers used for the BGP
         group";
          uses bgp-common-neighbor-group-timers-config;
        }  // container state
      }  // container timers

      container transport {
        description
          "Transport session parameters for the BGP peer-group";
        container config {
          description
            "Configuration parameters relating to the transport
          session(s) used for the BGP neighbor or group";
          uses bgp-common-neighbor-group-transport-config;
        }  // container config

        container state {
          config false;
          description
            "State information relating to the transport session(s)
          used for the BGP neighbor or group";
          uses bgp-common-neighbor-group-transport-config;
        }  // container state
      }  // container transport

      container error-handling {
        description
          "Error handling parameters used for the BGP peer-group";
        container config {
          description
            "Configuration parameters enabling or modifying the
          behavior or enhanced error handling mechanisms for the BGP
          group";
          uses bgp-common-neighbor-group-error-handling-config;
        }  // container config

        container state {
          config false;
          description
            "State information relating to enhanced error handling
          mechanisms for the BGP group";
          uses bgp-common-neighbor-group-error-handling-config;
        }  // container state
      }  // container error-handling

      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-structure-neighbor-group-logging-options;

      uses bgp-common-structure-neighbor-group-ebgp-multihop;

      uses bgp-common-structure-neighbor-group-route-reflector;

      uses bgp-common-structure-neighbor-group-as-path-options;

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

      uses oc-rpol:apply-policy-group;

      container afi-safis {
        description
          "Per-address-family configuration parameters associated with
        thegroup";
        uses bgp-peer-group-afi-safi-list;
      }  // container afi-safis
    }  // grouping bgp-peer-group-base

    grouping bgp-peer-group-list {
      description
        "The list of BGP peer groups";
      list peer-group {
        key "peer-group-name";
        description
          "List of BGP peer-groups configured on the local system -
        uniquely identified by peer-group name";
        leaf peer-group-name {
          type leafref {
            path "../config/peer-group-name";
          }
          description
            "Reference to the name of the BGP peer-group used as a
        key in the peer-group list";
        }

        uses bgp-peer-group-base;
      }  // list peer-group
    }  // grouping bgp-peer-group-list
  }  // submodule openconfig-bgp-peer-group