module openconfig-ospfv2 {
  yang-version 1;
  namespace "http://openconfig.net/yang/ospfv2";
  prefix oc-ospfv2;

  import openconfig-extensions {
    prefix oc-ext;
  }


  include "openconfig-ospfv2-global";

  include "openconfig-ospfv2-area";

  include "openconfig-ospfv2-area-interface";

  include "openconfig-ospfv2-lsdb";

  include "openconfig-ospfv2-common";

  organization
    "OpenConfig working group";
  contact
    "OpenConfig working group
     www.openconfig.net";
  description
    "An OpenConfig model for Open Shortest Path First (OSPF)
     version 2";

  revision 2022-02-10 {
    description
      "Fix spelling error in retransmission-queue-length leaf.";
    reference
      "0.4.0";
  }
  revision 2021-07-28 {
    description
      "Add prefix to qualify when statements.";
    reference
      "0.3.1";
  }
  revision 2021-03-17 {
    description
      "Add bfd support without augmentation.";
    reference
      "0.3.0";
  }
  revision 2019-11-28 {
    description
      "Revert path changes in when statements in LSDB model";
    reference
      "0.2.2";
  }
  revision 2019-11-05 {
    description
      "Fix paths in when statements in LSDB model";
    reference
      "0.2.1";
  }
  revision 2019-07-09 {
    description
      "Normalise all timeticks64 to be expressed in nanoseconds.";
    reference
      "0.2.0";
  }
  revision 2018-11-21 {
    description
      "Add OpenConfig module metadata extensions.";
    reference
      "0.1.3";
  }
  revision 2018-06-05 {
    description
      "Bug fixes in when statements in lsdb";
    reference
      "0.1.2";
  }
  revision 2017-08-24 {
    description
      "Minor formatting fixes.";
    reference
      "0.1.1";
  }
  revision 2017-02-28 {
    description
      "Initial public release of OSPFv2";
    reference
      "0.1.0";
  }
  revision 2016-06-24 {
    description
      "Initial revision";
    reference
      "0.0.1";
  }

  oc-ext:openconfig-version "0.4.0";
  oc-ext:regexp-posix;
  oc-ext:catalog-organization "openconfig";
  oc-ext:origin "openconfig";

  grouping ospfv2-top {
    description
      "Top-level OSPF configuration and operational state";
    container ospfv2 {
      description
        "Top-level configuration and operational state for
         Open Shortest Path First (OSPF) v2";
      uses ospfv2-global-structural;
      container areas {
        description
          "Configuration and operational state relating to an
           OSPFv2 area.";
        list area {
          key "identifier";
          description
            "The OSPFv2 areas within which the local system exists";
          leaf identifier {
            type leafref {
              path "../config/identifier";
            }
            description
              "A reference to the identifier for the area.";
          }
          uses ospfv2-area-structure;
        }
      }
    }
  }
}