module openconfig-bgp {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/bgp";

  prefix "oc-bgp";

  // import some basic inet types
  import openconfig-extensions { prefix oc-ext; }

  // Include the OpenConfig BGP submodules
  // Common: defines the groupings that are common across more than
  //         one context (where contexts are neighbor, group, global)
  include openconfig-bgp-common;
  // Multiprotocol: defines the groupings that are common across more
  //                than one context, and relate to Multiprotocol
  include openconfig-bgp-common-multiprotocol;
  // Structure: defines groupings that are shared but are solely used for
  //            structural reasons.
  include openconfig-bgp-common-structure;
  // Include peer-group/neighbor/global - these define the groupings
  // that are specific to one context
  include openconfig-bgp-peer-group;
  include openconfig-bgp-neighbor;
  include openconfig-bgp-global;

  // meta
  organization
    "OpenConfig working group";

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

  description
    "This module describes a YANG model for BGP protocol
    configuration.It is a limited subset of all of the configuration
    parameters available in the variety of vendor implementations,
    hence it is expected that it would be augmented with vendor-
    specific configuration data as needed. Additional modules or
    submodules to handle other aspects of BGP configuration,
    including policy, VRFs, VPNs, and additional address families
    are also expected.

    This model supports the following BGP configuration level
    hierarchy:

      BGP
        |
        +-> [ global BGP configuration ]
          +-> AFI / SAFI global
        +-> peer group
          +-> [ peer group config ]
          +-> AFI / SAFI [ per-AFI overrides ]
        +-> neighbor
          +-> [ neighbor config ]
          +-> [ optional pointer to peer-group ]
          +-> AFI / SAFI [ per-AFI overrides ]";

  oc-ext:openconfig-version "4.0.1";

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

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

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

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

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

  revision "2016-06-06" {
    description
      "OpenConfig public release";
    reference "2.1.0";
  }

  revision "2016-03-31" {
    description
      "OpenConfig public release";
    reference "2.0.1";
  }

  grouping bgp-top {
    description
      "Top-level grouping for the BGP model data";

    container bgp {
      description
        "Top-level configuration and state for the BGP router";

      container global {
        description
          "Global configuration for the BGP router";
          uses bgp-global-base;
      }

      container neighbors {
        description
          "Configuration for BGP neighbors";
        uses bgp-neighbor-list;
      }

      container peer-groups {
        description
          "Configuration for BGP peer-groups";
        uses bgp-peer-group-list;
      }
    }
  }

  uses bgp-top;

}
