Remove OpenROADM ospf YANG model rev 2020-05-29 67/98067/2
authorguillaume.lambert <guillaume.lambert@orange.com>
Fri, 8 Oct 2021 09:47:02 +0000 (11:47 +0200)
committerGilles Thouenon <gilles.thouenon@orange.com>
Thu, 28 Oct 2021 11:28:20 +0000 (13:28 +0200)
This model is not used by the current codebase
and prevents swagger from working correctly.

JIRA: TRNSPRTPCE-545 TRNSPRTPCE-534
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Id372a645a9913be27660853f91ffd264d071291f

ordmodels/device/src/main/yang/org-openroadm-ospf@2020-05-29.yang [deleted file]

diff --git a/ordmodels/device/src/main/yang/org-openroadm-ospf@2020-05-29.yang b/ordmodels/device/src/main/yang/org-openroadm-ospf@2020-05-29.yang
deleted file mode 100644 (file)
index 017f547..0000000
+++ /dev/null
@@ -1,2546 +0,0 @@
-module org-openroadm-ospf {
-  namespace "http://org/openroadm/ospf";
-  prefix org-openroadm-ospf;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2020-05-29;
-  }
-  import org-openroadm-routing {
-    prefix org-openroadm-routing;
-    revision-date 2020-05-29;
-  }
-  import org-openroadm-key-chain {
-    prefix org-openroadm-key-chain;
-    revision-date 2019-11-29;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This model defines the Yang model for ospf.
-
-     This model reuses data items defined in the IETF YANG model for
-     OSPF described by draft-ietf-ospf-yang-00.
-
-     Some attributes which are not required in Open ROADM MSA are removed.
-     Yang file included are changed to fit into Open ROADM MSA yang structure.
-
-     IETF code is subject to the following copyright and license:
-     Copyright (c) IETF Trust and the persons identified as authors of
-     the code.
-     All rights reserved.
-
-     Redistribution and use in source and binary forms, with or without
-     modification, is permitted pursuant to, and subject to the license
-     terms contained in, the Simplified BSD License set forth in
-     Section 4.c of the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  revision 2020-05-29 {
-    description
-      "Version 7.1.0";
-  }
-  revision 2020-03-27 {
-    description
-      "Version 7.0.0";
-  }
-  revision 2019-11-29 {
-    description
-      "Version 6.1.0";
-  }
-  revision 2019-09-27 {
-    description
-      "Version 6.0.0";
-  }
-  revision 2019-05-31 {
-    description
-      "Version 5.1.0";
-  }
-  revision 2019-03-29 {
-    description
-      "Version 5.0.0";
-  }
-  revision 2018-03-30 {
-    description
-      "Initial revision.";
-  }
-
-  feature multi-topology {
-    description
-      "Support MTR.";
-  }
-
-  feature multi-area-adj {
-    description
-      "OSPF multi-area adjacency support as in RFC 5185.";
-  }
-
-  feature router-id {
-    description
-      "Set router ID per instance.";
-  }
-
-  feature demand-circuit {
-    description
-      "OSPF demand circuit support as in RFC 1793.";
-  }
-
-  feature mtu-ignore {
-    description
-      "Disable OSPF MTU mismatch detection on receiving
-       DBD packets.";
-  }
-
-  feature lls {
-    description
-      "OSPF link-local signaling (LLS) as in RFC 5613.";
-  }
-
-  feature prefix-suppression {
-    description
-      "OSPF prefix suppression support as in RFC 6860.";
-  }
-
-  feature bfd {
-    description
-      "OSPF BFD support.";
-  }
-
-  feature ttl-security {
-    description
-      "OSPF ttl security check.";
-  }
-
-  feature nsr {
-    description
-      "Non-Stop-Routing (NSR).";
-  }
-
-  feature graceful-restart {
-    description
-      "Graceful OSPF Restart as defined in RFC3623 and RFC5187.";
-  }
-
-  feature protocol-shutdown {
-    description
-      "Shutdown the protocol.";
-  }
-
-  feature auto-cost {
-    description
-      "Calculate OSPF interface cost according to
-       reference bandwidth.";
-  }
-
-  feature max-ecmp {
-    description
-      "Setting maximum number of ECMP paths.";
-  }
-
-  feature max-lsa {
-    description
-      "Setting maximum number of LSAs OSPF will receive.";
-  }
-
-  feature te-rid {
-    description
-      "TE router-id.";
-  }
-
-  feature ldp-igp-sync {
-    description
-      "LDP IGP synchronization.";
-  }
-
-  feature ldp-igp-autoconfig {
-    description
-      "LDP IGP auto-config.";
-  }
-
-  feature protocol-if-shutdown {
-    description
-      "Shutdown the protocol over an interface.";
-  }
-
-  feature ospfv3-authentication-ipsec {
-    description
-      "Use IPsec for OSPFv3 authentication.";
-  }
-
-  feature instance-inheritance {
-    description
-      "Support instance inheritance";
-  }
-
-  feature area-inheritance {
-    description
-      "Support area inheritance";
-  }
-
-  feature interface-inheritance {
-    description
-      "Support interface inheritance";
-  }
-
-  identity ospf {
-    base org-openroadm-routing:routing-protocol;
-    description
-      "OSPF Protocol";
-  }
-
-  identity ospfv2 {
-    base ospf;
-    description
-      "OSPFv2";
-  }
-
-  identity ospfv3 {
-    base ospf;
-    description
-      "OSPFv3";
-  }
-
-  identity operation-mode {
-    description
-      "OSPF operation mode.";
-  }
-
-  identity ships-in-the-night {
-    base operation-mode;
-    description
-      "Ships-in-the-night operation mode in which
-       each OSPF instance carries only one address family";
-  }
-
-  identity area-type {
-    description
-      "Base identity for OSPF area type.";
-  }
-
-  identity normal {
-    base area-type;
-    description
-      "OSPF normal area.";
-  }
-
-  identity stub {
-    base area-type;
-    description
-      "OSPF stub area.";
-  }
-
-  identity nssa {
-    base area-type;
-    description
-      "OSPF NSSA area.";
-  }
-
-  identity if-link-type {
-    description
-      "Base identity for OSPF interface link type.";
-  }
-
-  identity if-link-type-normal {
-    base if-link-type;
-    description
-      "OSPF interface link type normal.";
-  }
-
-  identity if-link-type-virtual-link {
-    base if-link-type;
-    description
-      "OSPF interface link type virtual link.";
-  }
-
-  identity if-link-type-sham-link {
-    base if-link-type;
-    description
-      "OSPF interface link type sham link.";
-  }
-
-  typedef uint24 {
-    type uint32 {
-      range "0 .. 16777215";
-    }
-    description
-      "24-bit unsigned integer.";
-  }
-
-  typedef area-id-type {
-    type union {
-      type uint32;
-      type yang:dotted-quad;
-    }
-    description
-      "Area ID type.";
-  }
-
-  typedef if-state-type {
-    type enumeration {
-      enum Down {
-        value 1;
-        description
-          "Interface down state";
-      }
-      enum Loopback {
-        value 2;
-        description
-          "Interface loopback state";
-      }
-      enum Waiting {
-        value 3;
-        description
-          "Interface waiting state";
-      }
-      enum Point-to-Point {
-        value 4;
-        description
-          "Interface point-to-point state";
-      }
-      enum DR {
-        value 5;
-        description
-          "Interface Designated Router (DR) state";
-      }
-      enum BDR {
-        value 6;
-        description
-          "Interface Backup Designated Router (BDR) state";
-      }
-      enum DR-Other {
-        value 7;
-        description
-          "Interface Other Designated Router state";
-      }
-    }
-    description
-      "OSPF interface state type.";
-  }
-
-  typedef nbr-state-type {
-    type enumeration {
-      enum Down {
-        value 1;
-        description
-          "Neighbor down state";
-      }
-      enum Attempt {
-        value 2;
-        description
-          "Neighbor attempt state";
-      }
-      enum Init {
-        value 3;
-        description
-          "Neighbor init state";
-      }
-      enum 2-Way {
-        value 4;
-        description
-          "Neighbor 2-Way state";
-      }
-      enum ExStart {
-        value 5;
-        description
-          "Neighbor exchange start state";
-      }
-      enum Exchange {
-        value 6;
-        description
-          "Neighbor exchange state";
-      }
-      enum Loading {
-        value 7;
-        description
-          "Neighbor loading state";
-      }
-      enum Full {
-        value 8;
-        description
-          "Neighbor full state";
-      }
-    }
-    description
-      "OSPF neighbor state type.";
-  }
-
-  typedef restart-helper-status-type {
-    type enumeration {
-      enum Not-Helping {
-        value 1;
-        description
-          "Restart helper status not helping.";
-      }
-      enum Helping {
-        value 2;
-        description
-          "Restart helper status helping.";
-      }
-    }
-    description
-      "Restart helper status type.";
-  }
-
-  typedef restart-exit-reason-type {
-    type enumeration {
-      enum None {
-        value 1;
-        description
-          "Not attempted.";
-      }
-      enum InProgress {
-        value 2;
-        description
-          "Restart in progress.";
-      }
-      enum Completed {
-        value 3;
-        description
-          "Successfully completed.";
-      }
-      enum TimedOut {
-        value 4;
-        description
-          "Timed out.";
-      }
-      enum TopologyChanged {
-        value 5;
-        description
-          "Aborted due to topology change.";
-      }
-    }
-    description
-      "Describes the outcome of the last attempt at a
-       graceful restart, either by itself or acting
-       as a helper.";
-  }
-
-  typedef packet-type {
-    type enumeration {
-      enum Hello {
-        value 1;
-        description
-          "OSPF hello packet.";
-      }
-      enum Database-Descripton {
-        value 2;
-        description
-          "OSPF database description packet.";
-      }
-      enum Link-State-Request {
-        value 3;
-        description
-          "OSPF link state request packet.";
-      }
-      enum Link-State-Update {
-        value 4;
-        description
-          "OSPF link state update packet.";
-      }
-      enum Link-State-Ack {
-        value 5;
-        description
-          "OSPF link state acknowlegement packet.";
-      }
-    }
-    description
-      "OSPF packet type.";
-  }
-
-  typedef nssa-translator-state-type {
-    type enumeration {
-      enum Enabled {
-        value 1;
-        description
-          "NSSA translator enabled state.";
-      }
-      enum Elected {
-        description
-          "NSSA translator elected state.";
-      }
-      enum Disabled {
-        value 3;
-        description
-          "NSSA translator disabled state.";
-      }
-    }
-    description
-      "OSPF NSSA translator state type.";
-  }
-
-  typedef restart-status-type {
-    type enumeration {
-      enum Not-Restarting {
-        value 1;
-        description
-          "Router is not restarting.";
-      }
-      enum Planned-Restart {
-        description
-          "Router is going through planned restart.";
-      }
-      enum Unplanned-Restart {
-        value 3;
-        description
-          "Router is going through unplanned restart.";
-      }
-    }
-    description
-      "OSPF graceful restart status type.";
-  }
-
-  grouping interface-common-config {
-    description
-      "Common configuration for all types of interfaces,
-       including virtual link and sham link";
-    leaf cost {
-      type uint16 {
-        range "1..65535" {
-          error-message "Configured value is out of range";
-        }
-      }
-      description
-        "Interface cost.";
-    }
-    leaf hello-interval {
-      type uint16 {
-        range "1..65535" {
-          error-message "Configured value is out of range";
-        }
-      }
-      units "seconds";
-      description
-        "Time between hello packets.";
-    }
-    leaf dead-interval {
-      type uint16 {
-        range "1..65535" {
-          error-message "Configured value is out of range";
-        }
-      }
-      units "seconds";
-      must '../dead-interval > ../hello-interval' {
-        error-message "The dead interval must be larger than the hello interval";
-        description
-          "The value MUST be greater than 'hello-internval'.";
-      }
-      description
-        "Interval after which a neighbor is declared dead.";
-    }
-    leaf rtrPriority {
-      type uint8 {
-        range "0..255";
-      }
-      description
-        "Router priority for DR election.";
-    }
-    leaf retransmit-interval {
-      type uint16 {
-        range "1..65535" {
-          error-message "Configured value is out of range";
-        }
-      }
-      units "seconds";
-      description
-        "Time between retransmitting unacknowledged Link State
-         Advertisements (LSAs).";
-    }
-    leaf transmit-delay {
-      type uint16 {
-        range "1..65535" {
-          error-message "Configured value is out of range";
-        }
-      }
-      units "seconds";
-      description
-        "Estimated time needed to send link-state update.";
-    }
-    leaf mtu-ignore {
-      if-feature "mtu-ignore";
-      type boolean;
-      description
-        "Enable/Disable ignoring of MTU in DBD packets.";
-    }
-    container authentication {
-      description
-        "Authentication configuration.";
-      choice auth-type-selection {
-        description
-          "Options for expressing authentication setting";
-        case auth-ipsec {
-          when "../../../../../org-openroadm-routing:type = 'ospfv3'" {
-            description
-              "Applied to OSPFv3 only";
-          }
-          if-feature "ospfv3-authentication-ipsec";
-          leaf sa {
-            type string;
-            description
-              "SA name";
-          }
-        }
-        case auth-trailer-key-chain {
-          leaf key-chain {
-            type org-openroadm-key-chain:key-chain-ref;
-            description
-              "key-chain name";
-          }
-        }
-        case auth-trailer-key {
-          leaf key {
-            type string {
-              length "1..8" {
-                error-message "Configured string exceeds the maximum length";
-              }
-            }
-            description
-              "Key string in ASCII format.";
-          }
-        }
-      }
-    }
-  }
-
-  grouping interface-config {
-    description
-      "Configuration for real interfaces.";
-    leaf network-type {
-      type enumeration {
-        enum broadcast {
-          description
-            "Specify OSPF broadcast multi-access network.";
-        }
-        enum non-broadcast {
-          description
-            "Specify OSPF Non-Broadcast Multi-Access
-             (NBMA) network.";
-        }
-        enum point-to-multipoint {
-          description
-            "Specify OSPF point-to-multipoint network.";
-        }
-        enum point-to-point {
-          description
-            "Specify OSPF point-to-point network.";
-        }
-      }
-      description
-        "Network type.";
-    }
-    leaf passive {
-      type boolean;
-      description
-        "Enable/Disable passive.";
-    }
-    uses interface-common-config;
-  }
-
-  grouping tlv {
-    description
-      "TLV";
-    leaf type {
-      type uint16;
-      description
-        "TLV type.";
-    }
-    leaf length {
-      type uint16;
-      description
-        "TLV length.";
-    }
-    leaf value {
-      type yang:hex-string;
-      description
-        "TLV value.";
-    }
-  }
-
-  grouping ospfv2-lsa-body {
-    description
-      "OSPFv2 LSA body.";
-    container router {
-      when '../../header/type = 1' {
-        description
-          "Only apply to Router-LSA.";
-      }
-      description
-        "Router LSA.";
-      leaf flags {
-        type bits {
-          bit V {
-            description
-              "When set, the router is an endpoint of one or
-               more virtual links.";
-          }
-          bit E {
-            description
-              "When set, the router is an AS Boundary Router
-               (ASBR).";
-          }
-          bit B {
-            description
-              "When set, the router is an Area Border Router (ABR).";
-          }
-        }
-        description
-          "Flags";
-      }
-      leaf num-of-links {
-        type uint16;
-        description
-          "Number of links.";
-      }
-      list link {
-        key "link-id link-data";
-        description
-          "Router LSA link.";
-        leaf link-id {
-          type union {
-            type inet:ipv4-address;
-            type yang:dotted-quad;
-          }
-          description
-            "Link ID";
-        }
-        leaf link-data {
-          type union {
-            type inet:ipv4-address;
-            type uint32;
-          }
-          description
-            "Link data.";
-        }
-        leaf type {
-          type uint8;
-          description
-            "Link type.";
-        }
-        list topology {
-          key "mt-id";
-          description
-            "Topology specific information.";
-          leaf mt-id {
-            type uint8;
-            description
-              "The MT-ID for topology enabled on the link.";
-          }
-          leaf metric {
-            type uint16;
-            description
-              "Metric for the topology.";
-          }
-        }
-      }
-    }
-    container network {
-      when '../../header/type = 2' {
-        description
-          "Only apply to network LSA.";
-      }
-      description
-        "Network LSA.";
-      leaf network-mask {
-        type inet:ipv4-address;
-        description
-          "The IP address mask for the network";
-      }
-      leaf-list attached-router {
-        type yang:dotted-quad;
-        description
-          "List of the routers attached to the network.";
-      }
-    }
-    container summary {
-      when '../../header/type = 3 or ../../header/type = 4' {
-        description
-          "Only apply to Summary-LSA.";
-      }
-      description
-        "Summary LSA.";
-      leaf network-mask {
-        type inet:ipv4-address;
-        description
-          "The IP address mask for the network";
-      }
-      list topology {
-        key "mt-id";
-        description
-          "Topology specific information.";
-        leaf mt-id {
-          type uint8;
-          description
-            "The MT-ID for topology enabled on the link.";
-        }
-        leaf metric {
-          type uint24;
-          description
-            "Metric for the topology.";
-        }
-      }
-    }
-    container external {
-      when '../../header/type = 5 or ../../header/type = 7' {
-        description
-          "Only apply to AS-external-LSA and NSSA-LSA.";
-      }
-      description
-        "External LSA.";
-      leaf network-mask {
-        type inet:ipv4-address;
-        description
-          "The IP address mask for the network";
-      }
-      list topology {
-        key "mt-id";
-        description
-          "Topology specific information.";
-        leaf mt-id {
-          type uint8;
-          description
-            "The MT-ID for topology enabled on the link.";
-        }
-        leaf flags {
-          type bits {
-            bit E {
-              description
-                "When set, the metric specified is a Type 2
-                 external metric.";
-            }
-          }
-          description
-            "Flags.";
-        }
-        leaf metric {
-          type uint24;
-          description
-            "Metric for the topology.";
-        }
-        leaf forwarding-address {
-          type inet:ipv4-address;
-          description
-            "Forwarding address.";
-        }
-        leaf external-route-tag {
-          type uint32;
-          description
-            "Route tag.";
-        }
-      }
-    }
-  }
-
-  grouping ospfv3-lsa-options {
-    description
-      "OSPFv3 LSA options";
-    leaf options {
-      type bits {
-        bit DC {
-          description
-            "When set, the router support demand circuits.";
-        }
-        bit R {
-          description
-            "When set, the originator is an active router.";
-        }
-        bit N {
-          description
-            "If set, the router is attached to an NSSA";
-        }
-        bit E {
-          description
-            "This bit describes the way AS-external-LSAs
-             are flooded";
-        }
-        bit V6 {
-          description
-            "If clear, the router/link should be excluded
-             from IPv6 routing calculaton";
-        }
-      }
-      mandatory true;
-      description
-        "OSPFv3 LSA options.";
-    }
-  }
-
-  grouping ospfv3-lsa-prefix {
-    description
-      "OSPFv3 LSA prefix.";
-    leaf prefix {
-      type inet:ip-prefix;
-      description
-        "Prefix";
-    }
-    leaf prefix-options {
-      type bits {
-        bit NU {
-          description
-            "When set, the prefix should be excluded
-             from IPv6 unicast calculations.";
-        }
-        bit LA {
-          description
-            "When set, the prefix is actually an IPv6 interface
-             address of the Advertising Router.";
-        }
-        bit P {
-          description
-            "When set, the NSSA area prefix should be
-             readvertised by the translating NSSA area border.";
-        }
-        bit DN {
-          description
-            "When set, the inter-area-prefix-LSA or
-             AS-external-LSA prefix has been advertised in a VPN
-             environment.";
-        }
-      }
-      mandatory true;
-      description
-        "Prefix options.";
-    }
-  }
-
-  grouping ospfv3-lsa-external {
-    description
-      "AS-External and NSSA LSA.";
-    leaf metric {
-      type uint24;
-      description
-        "Metric";
-    }
-    leaf flags {
-      type bits {
-        bit E {
-          description
-            "When set, the metric specified is a Type 2
-             external metric.";
-        }
-      }
-      description
-        "Flags.";
-    }
-    leaf referenced-ls-type {
-      type uint16;
-      description
-        "Referenced Link State type.";
-    }
-    uses ospfv3-lsa-prefix;
-    leaf forwarding-address {
-      type inet:ipv6-address;
-      description
-        "Forwarding address.";
-    }
-    leaf external-route-tag {
-      type uint32;
-      description
-        "Route tag.";
-    }
-    leaf referenced-link-state-id {
-      type uint32;
-      description
-        "Referenced Link State ID.";
-    }
-  }
-
-  grouping ospfv3-lsa-body {
-    description
-      "OSPFv3 LSA body.";
-    container router {
-      when '../../header/type = 8193' {
-        description
-          "Only apply to Router-LSA.";
-      }
-      description
-        "Router LSA.";
-      leaf flags {
-        type bits {
-          bit V {
-            description
-              "When set, the router is an endpoint of one or
-               more virtual links.";
-          }
-          bit E {
-            description
-              "When set, the router is an AS Boundary Router
-               (ASBR).";
-          }
-          bit B {
-            description
-              "When set, the router is an Area Border Router (ABR).";
-          }
-          bit Nt {
-            description
-              "When set, the router is an NSSA border router
-               that is unconditionally translating NSSA-LSAs
-               into AS-external-LSAs.";
-          }
-        }
-        mandatory true;
-        description
-          "LSA option.";
-      }
-      uses ospfv3-lsa-options;
-      list link {
-        key "interface-id neighbor-interface-id neighbor-router-id";
-        description
-          "Router LSA link.";
-        leaf interface-id {
-          type uint32;
-          description
-            "Interface ID.";
-        }
-        leaf neighbor-interface-id {
-          type uint32;
-          description
-            "Neighbor Interface ID.";
-        }
-        leaf neighbor-router-id {
-          type yang:dotted-quad;
-          description
-            "Neighbor Router ID";
-        }
-        leaf type {
-          type uint8;
-          description
-            "Link type.";
-        }
-        leaf metric {
-          type uint16;
-          description
-            "Metric.";
-        }
-      }
-    }
-    container network {
-      when '../../header/type = 8194' {
-        description
-          "Only apply to network LSA.";
-      }
-      description
-        "Network LSA.";
-      uses ospfv3-lsa-options;
-      leaf-list attached-router {
-        type yang:dotted-quad;
-        description
-          "List of the routers attached to the network.";
-      }
-    }
-    container inter-area-prefix {
-      when '../../header/type = 8195' {
-        description
-          "Only apply to inter-area-prefix LSA.";
-      }
-      description
-        "Inter-Area-Prefix LSA.";
-      leaf metric {
-        type uint24;
-        description
-          "Metric";
-      }
-      uses ospfv3-lsa-prefix;
-    }
-    container inter-area-router {
-      when '../../header/type = 8196' {
-        description
-          "Only apply to inter-area-router LSA.";
-      }
-      description
-        "Inter-Area-Router LSA.";
-      uses ospfv3-lsa-options;
-      leaf metric {
-        type uint24;
-        description
-          "Metric";
-      }
-      leaf destination-router-id {
-        type yang:dotted-quad;
-        description
-          "The Router ID of the router being described by the LSA.";
-      }
-    }
-    container as-external {
-      when '../../header/type = 16389' {
-        description
-          "Only apply to as-external LSA.";
-      }
-      description
-        "AS-External LSA.";
-      uses ospfv3-lsa-external;
-    }
-    container nssa {
-      when '../../header/type = 8199' {
-        description
-          "Only apply to nssa LSA.";
-      }
-      description
-        "NSSA LSA.";
-      uses ospfv3-lsa-external;
-    }
-    container link {
-      when '../../header/type = 8' {
-        description
-          "Only apply to link LSA.";
-      }
-      description
-        "Link LSA.";
-      leaf rtr-priority {
-        type uint8;
-        description
-          "Router Priority of the interface.";
-      }
-      uses ospfv3-lsa-options;
-      leaf link-local-interface-address {
-        type inet:ipv6-address;
-        description
-          "The originating router's link-local
-           interface address on the link.";
-      }
-      leaf num-of-prefixes {
-        type uint32;
-        description
-          "Number of prefixes.";
-      }
-      list prefix {
-        key "prefix";
-        description
-          "List of prefixes associated with the link.";
-        uses ospfv3-lsa-prefix;
-      }
-    }
-    container intra-area-prefix {
-      when '../../header/type = 8201' {
-        description
-          "Only apply to intra-area-prefix LSA.";
-      }
-      description
-        "Intra-Area-Prefix LSA.";
-      leaf referenced-ls-type {
-        type uint16;
-        description
-          "Referenced Link State type.";
-      }
-      leaf referenced-link-state-id {
-        type uint32;
-        description
-          "Referenced Link State ID.";
-      }
-      leaf referenced-adv-router {
-        type inet:ipv4-address;
-        description
-          "Referenced Advertising Router.";
-      }
-      leaf num-of-prefixes {
-        type uint16;
-        description
-          "Number of prefixes.";
-      }
-      list prefix {
-        key "prefix";
-        description
-          "List of prefixes associated with the link.";
-        uses ospfv3-lsa-prefix;
-        leaf metric {
-          type uint24;
-          description
-            "Metric";
-        }
-      }
-    }
-  }
-
-  grouping lsa-header {
-    description
-      "Common LSA for OSPFv2 and OSPFv3";
-    leaf age {
-      type uint16;
-      mandatory true;
-      description
-        "LSA age.";
-    }
-    leaf type {
-      type uint16;
-      mandatory true;
-      description
-        "LSA type.";
-    }
-    leaf adv-router {
-      type yang:dotted-quad;
-      mandatory true;
-      description
-        "LSA advertising router.";
-    }
-    leaf seq-num {
-      type uint32;
-      mandatory true;
-      description
-        "LSA sequence number.";
-    }
-    leaf checksum {
-      type uint16;
-      mandatory true;
-      description
-        "LSA checksum.";
-    }
-    leaf length {
-      type uint16;
-      mandatory true;
-      description
-        "LSA length.";
-    }
-  }
-
-  grouping ospfv2-lsa {
-    description
-      "OSPFv2 LSA.";
-    container header {
-      description
-        "Decoded OSPFv2 LSA header data.";
-      leaf option {
-        type bits {
-          bit DC {
-            description
-              "When set, the router support demand circuits.";
-          }
-          bit P {
-            description
-              "Only used in type-7 LSA. When set, the NSSA
-               border router should translate the type-7 LSA
-               to type-5 LSA.";
-          }
-          bit MC {
-            description
-              "When set, the router support MOSPF.";
-          }
-          bit E {
-            description
-              "This bit describes the way AS-external-LSAs
-               are flooded";
-          }
-        }
-        mandatory true;
-        description
-          "LSA option.";
-      }
-      leaf lsa-id {
-        type inet:ipv4-address;
-        mandatory true;
-        description
-          "LSA ID.";
-      }
-      leaf opaque-type {
-        when '../../header/type = 9 or ../../header/type = 10 or ../../header/type = 11' {
-          description
-            "Only apply to opaque LSA.";
-        }
-        type uint8;
-        mandatory true;
-        description
-          "Opaque type.";
-      }
-      leaf opaque-id {
-        when '../../header/type = 9 or ../../header/type = 10 or ../../header/type = 11' {
-          description
-            "Only apply to opaque LSA.";
-        }
-        type uint24;
-        mandatory true;
-        description
-          "Opaque id.";
-      }
-      uses lsa-header;
-    }
-    container body {
-      description
-        "Decoded OSPFv2 LSA body data.";
-      uses ospfv2-lsa-body;
-    }
-  }
-
-  grouping ospfv3-lsa {
-    description
-      "Decoded OSPFv3 LSA.";
-    container header {
-      description
-        "Decoded OSPFv3 LSA header data.";
-      leaf lsa-id {
-        type uint32;
-        mandatory true;
-        description
-          "LSA ID.";
-      }
-      uses lsa-header;
-    }
-    container body {
-      description
-        "Decoded OSPF LSA body data.";
-      uses ospfv3-lsa-body;
-    }
-  }
-
-  grouping lsa-common {
-    description
-      "Common field for OSPF LSA represenation.";
-    leaf decoded-completed {
-      type boolean;
-      description
-        "The OSPF LSA body is fully decoded.";
-    }
-  }
-
-  grouping link-scope-lsa {
-    description
-      "OSPF link-scope LSA.";
-    uses lsa-common;
-    choice version {
-      description
-        "OSPFv2 or OSPFv3 LSA body.";
-      container ospfv2 {
-        when "../../../../../../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2'" {
-          description
-            "Applied to OSPFv2 only";
-        }
-        description
-          "OSPFv2 LSA";
-        uses ospfv2-lsa;
-      }
-      container ospfv3 {
-        when "../../../../../../../org-openroadm-routing:type = 'ospfv3'" {
-          description
-            "Applied to OSPFv3 only";
-        }
-        description
-          "OSPFv3 LSA";
-        uses ospfv3-lsa;
-      }
-    }
-  }
-
-  grouping area-scope-lsa {
-    description
-      "OSPF area-scope LSA.";
-    uses lsa-common;
-    choice version {
-      description
-        "OSPFv2 or OSPFv3 LSA body.";
-      container ospfv2 {
-        when "../../../../../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2'" {
-          description
-            "Applied to OSPFv2 only";
-        }
-        description
-          "OSPFv2 LSA";
-        uses ospfv2-lsa;
-      }
-      container ospfv3 {
-        when "../../../../../../org-openroadm-routing:type = 'ospfv3'" {
-          description
-            "Applied to OSPFv3 only";
-        }
-        description
-          "OSPFv3 LSA";
-        uses ospfv3-lsa;
-      }
-    }
-  }
-
-  grouping as-scope-lsa {
-    description
-      "OSPF AS-scope LSA.";
-    uses lsa-common;
-    choice version {
-      description
-        "OSPFv2 or OSPFv3 LSA body.";
-      container ospfv2 {
-        when "../../../../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2'" {
-          description
-            "Applied to OSPFv2 only";
-        }
-        description
-          "OSPFv2 LSA";
-        uses ospfv2-lsa;
-      }
-      container ospfv3 {
-        when "../../../../../org-openroadm-routing:type = 'ospfv3'" {
-          description
-            "Applied to OSPFv3 only";
-        }
-        description
-          "OSPFv3 LSA";
-        uses ospfv3-lsa;
-      }
-    }
-  }
-
-  grouping lsa-key {
-    description
-      "OSPF LSA key.";
-    leaf lsa-id {
-      type union {
-        type inet:ipv4-address;
-        type uint32;
-      }
-      description
-        "LSA ID.";
-    }
-    leaf adv-router {
-      type inet:ipv4-address;
-      description
-        "Advertising router.";
-    }
-  }
-
-  grouping af-area-config {
-    description
-      "OSPF address-family specific area config state.";
-    list range {
-      key "prefix";
-      description
-        "Summarize routes matching address/mask (border
-         routers only)";
-      leaf prefix {
-        type inet:ip-prefix;
-        description
-          "IPv4 or IPv6 prefix";
-      }
-      leaf advertise {
-        type boolean;
-        description
-          "Advertise or hide.";
-      }
-      leaf cost {
-        type uint24 {
-          range "0..16777214";
-        }
-        description
-          "Cost of summary route.";
-      }
-    }
-  }
-
-  grouping area-config {
-    description
-      "OSPF area config state.";
-    leaf area-type {
-      type identityref {
-        base area-type;
-      }
-      default "normal";
-      description
-        "Area type.";
-    }
-    leaf summary {
-      when "../area-type = 'stub' or ../area-type = 'nssa'" {
-        description
-          "Summary generation valid for stub/NSSA area.";
-      }
-      type boolean;
-      description
-        "Enable/Disable summary generation to the stub or
-         NSSA area.";
-    }
-    leaf default-cost {
-      when "../area-type = 'stub' or ../area-type = 'nssa'" {
-        description
-          "Default cost for LSA advertised into stub or
-           NSSA area.";
-      }
-      type uint32 {
-        range "1..16777215";
-      }
-      description
-        "Set the summary default-cost for a stub or NSSA area.";
-    }
-    uses af-area-config {
-      when "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol/org-openroadm-ospf:ospf/org-openroadm-ospf:operation-mode = 'org-openroadm-ospf:ships-in-the-night'" {
-        description
-          "Ships in the night configuration.";
-      }
-    }
-  }
-
-  grouping instance-config {
-    description
-      "OSPF instance config state.";
-    leaf router-id {
-      if-feature "router-id";
-      type yang:dotted-quad;
-      mandatory true;
-      description
-        "Defined in RFC 2328. A 32-bit number
-         that uniquely identifies the router.";
-    }
-    container admin-distance {
-      description
-        "Admin distance config state.";
-      choice granularity {
-        description
-          "Options for expressing admin distance
-           for intra-area and inter-area route";
-        case detail {
-          leaf intra-area {
-            type uint8 {
-              range "1..255" {
-                error-message "Configured value is out of range";
-              }
-            }
-            description
-              "Admin distance for intra-area route.";
-          }
-          leaf inter-area {
-            type uint8 {
-              range "1..255" {
-                error-message "Configured value is out of range";
-              }
-            }
-            description
-              "Admin distance for inter-area route.";
-          }
-        }
-      }
-      leaf external {
-        type uint8 {
-          range "1..255" {
-            error-message "Configured value is out of range";
-          }
-        }
-        description
-          "Admin distance for both external route.";
-      }
-    }
-    container graceful-restart {
-      if-feature "graceful-restart";
-      description
-        "Graceful restart config state.";
-      leaf enable {
-        type boolean;
-        description
-          "Enable/Disable graceful restart as defined in RFC 3623.";
-      }
-      leaf helper-enable {
-        type boolean;
-        default "true";
-        description
-          "Enable RestartHelperSupport in RFC 3623 Section B.2.";
-      }
-      leaf restart-interval {
-        type uint16 {
-          range "1..1800";
-        }
-        units "seconds";
-        default "120";
-        description
-          "RestartInterval option in RFC 3623 Section B.1.";
-      }
-      leaf helper-strict-lsa-checking {
-        type boolean;
-        description
-          "RestartHelperStrictLSAChecking option in RFC 3623
-           Section B.2.";
-      }
-    }
-    container auto-cost {
-      if-feature "auto-cost";
-      description
-        "Auto cost config state.";
-      leaf enable {
-        type boolean;
-        description
-          "Enable/Disable auto cost.";
-      }
-      leaf reference-bandwidth {
-        type uint32 {
-          range "1..4294967";
-        }
-        units "Mbits";
-        description
-          "Configure reference bandwidth in term of Mbits";
-      }
-    }
-  }
-
-  grouping interface-operation {
-    description
-      "OSPF interface operation state.";
-    reference
-      "RFC2328 Section 9";
-    uses interface-config;
-    leaf state {
-      type if-state-type;
-      description
-        "Interface state.";
-    }
-    leaf hello-timer {
-      type uint32;
-      units "milliseconds";
-      description
-        "Hello timer.";
-    }
-    leaf wait-timer {
-      type uint32;
-      units "milliseconds";
-      description
-        "Wait timer.";
-    }
-    leaf dr {
-      type inet:ipv4-address;
-      description
-        "DR.";
-    }
-    leaf bdr {
-      type inet:ipv4-address;
-      description
-        "BDR.";
-    }
-  }
-
-  grouping neighbor-operation {
-    description
-      "OSPF neighbor operation data.";
-    leaf address {
-      type inet:ip-address;
-      description
-        "Neighbor address.";
-    }
-    leaf dr {
-      type inet:ipv4-address;
-      description
-        "Designated Router.";
-    }
-    leaf bdr {
-      type inet:ipv4-address;
-      description
-        "Backup Designated Router.";
-    }
-    leaf state {
-      type nbr-state-type;
-      description
-        "OSPF neighbor state.";
-    }
-  }
-
-  grouping instance-operation {
-    description
-      "OSPF Address Family operation state.";
-    leaf router-id {
-      type yang:dotted-quad;
-      description
-        "Defined in RFC 2328. A 32-bit number
-         that uniquely identifies the router.";
-    }
-  }
-
-  grouping route-content {
-    description
-      "This grouping defines OSPF-specific route attributes.";
-    leaf metric {
-      type uint32;
-      description
-        "OSPF route metric.";
-    }
-    leaf tag {
-      type uint32;
-      default "0";
-      description
-        "OSPF route tag.";
-    }
-    leaf route-type {
-      type enumeration {
-        enum intra-area {
-          description
-            "OSPF intra-area route";
-        }
-        enum inter-area {
-          description
-            "OSPF inter-area route";
-        }
-        enum external-1 {
-          description
-            "OSPF external route type 1";
-        }
-        enum external-2 {
-          description
-            "OSPF External route type 2";
-        }
-        enum nssa-1 {
-          description
-            "OSPF NSSA external route type 1";
-        }
-        enum nssa-2 {
-          description
-            "OSPF NSSA external route type 2";
-        }
-      }
-      description
-        "OSPF route type";
-    }
-  }
-
-  grouping notification-instance-hdr {
-    description
-      "This group describes common instance specific
-       data for notifications.";
-    leaf routing-instance {
-      type org-openroadm-routing:routing-instance-ref;
-      description
-        "Describe the routing instance.";
-    }
-    leaf routing-protocol-name {
-      type string;
-      description
-        "Describes the name of the OSPF routing protocol.";
-    }
-    container instance-af {
-      description
-        "Describes the address family of the OSPF instance.";
-      leaf af {
-        type identityref {
-          base org-openroadm-routing:address-family;
-        }
-        description
-          "Address-family of the instance.";
-      }
-    }
-  }
-
-  notification if-state-change {
-    description
-      "This notification is sent when interface
-       state change is detected.";
-    uses notification-instance-hdr;
-    leaf link-type {
-      type identityref {
-        base if-link-type;
-      }
-      description
-        "Type of OSPF interface.";
-    }
-    container interface {
-      description
-        "Normal interface.";
-      leaf interface {
-        type org-openroadm-device:interface-ref;
-        description
-          "Interface.";
-      }
-    }
-    container virtual-link {
-      description
-        "virtual-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-    }
-    container sham-link {
-      description
-        "sham-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf local-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link local address.";
-      }
-      leaf remote-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link remote address.";
-      }
-    }
-    leaf state {
-      type if-state-type;
-      description
-        "Interface state.";
-    }
-  }
-
-  notification if-config-error {
-    description
-      "This notification is sent when interface
-       config error is detected.";
-    uses notification-instance-hdr;
-    leaf link-type {
-      type identityref {
-        base if-link-type;
-      }
-      description
-        "Type of OSPF interface.";
-    }
-    container interface {
-      description
-        "Normal interface.";
-      leaf interface {
-        type org-openroadm-device:interface-ref;
-        description
-          "Interface.";
-      }
-      leaf packet-source {
-        type yang:dotted-quad;
-        description
-          "Source address.";
-      }
-    }
-    container virtual-link {
-      description
-        "virtual-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-    }
-    container sham-link {
-      description
-        "sham-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf local-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link local address.";
-      }
-      leaf remote-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link remote address.";
-      }
-    }
-    leaf packet-type {
-      type packet-type;
-      description
-        "OSPF packet type.";
-    }
-    leaf error {
-      type enumeration {
-        enum badVersion {
-          description
-            "Bad version";
-        }
-        enum areaMismatch {
-          description
-            "Area mistmatch";
-        }
-        enum unknownNbmaNbr {
-          description
-            "Unknown NBMA neighbor";
-        }
-        enum unknownVirtualNbr {
-          description
-            "Unknown virtual link neighbor";
-        }
-        enum authTypeMismatch {
-          description
-            "Auth type mismatch";
-        }
-        enum authFailure {
-          description
-            "Auth failure";
-        }
-        enum netMaskMismatch {
-          description
-            "Network mask mismatch";
-        }
-        enum helloIntervalMismatch {
-          description
-            "Hello interval mismatch";
-        }
-        enum deadIntervalMismatch {
-          description
-            "Dead interval mismatch";
-        }
-        enum optionMismatch {
-          description
-            "Option mismatch";
-        }
-        enum mtuMismatch {
-          description
-            "MTU mismatch";
-        }
-        enum duplicateRouterId {
-          description
-            "Duplicate router ID";
-        }
-        enum noError {
-          description
-            "No error";
-        }
-      }
-      description
-        "Error code.";
-    }
-  }
-
-  notification nbr-state-change {
-    description
-      "This notification is sent when neighbor
-       state change is detected.";
-    uses notification-instance-hdr;
-    leaf link-type {
-      type identityref {
-        base if-link-type;
-      }
-      description
-        "Type of OSPF interface.";
-    }
-    container interface {
-      description
-        "Normal interface.";
-      leaf interface {
-        type org-openroadm-device:interface-ref;
-        description
-          "Interface.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-      leaf neighbor-ip-addr {
-        type yang:dotted-quad;
-        description
-          "Neighbor address.";
-      }
-    }
-    container virtual-link {
-      description
-        "virtual-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-    }
-    container sham-link {
-      description
-        "sham-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf local-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link local address.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-      leaf neighbor-ip-addr {
-        type yang:dotted-quad;
-        description
-          "Neighbor address.";
-      }
-    }
-    leaf state {
-      type nbr-state-type;
-      description
-        "Neighbor state.";
-    }
-  }
-
-  notification nbr-restart-helper-status-change {
-    description
-      "This notification is sent when neighbor restart
-       helper status change is detected.";
-    uses notification-instance-hdr;
-    leaf link-type {
-      type identityref {
-        base if-link-type;
-      }
-      description
-        "Type of OSPF interface.";
-    }
-    container interface {
-      description
-        "Normal interface.";
-      leaf interface {
-        type org-openroadm-device:interface-ref;
-        description
-          "Interface.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-      leaf neighbor-ip-addr {
-        type yang:dotted-quad;
-        description
-          "Neighbor address.";
-      }
-    }
-    container virtual-link {
-      description
-        "virtual-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-    }
-    leaf status {
-      type restart-helper-status-type;
-      description
-        "Restart helper status.";
-    }
-    leaf age {
-      type uint32;
-      units "seconds";
-      description
-        "Remaining time in current OSPF graceful restart
-         interval, if the router is acting as a restart
-         helper for the neighbor.";
-    }
-    leaf exit-reason {
-      type restart-exit-reason-type;
-      description
-        "Restart helper exit reason.";
-    }
-  }
-
-  notification rx-bad-packet {
-    description
-      "This notification is sent when an OSPF packet
-       has been received on a interface that cannot be parsed.";
-    uses notification-instance-hdr;
-    leaf link-type {
-      type identityref {
-        base if-link-type;
-      }
-      description
-        "Type of OSPF interface.";
-    }
-    container interface {
-      description
-        "Normal interface.";
-      leaf interface {
-        type org-openroadm-device:interface-ref;
-        description
-          "Interface.";
-      }
-      leaf packet-source {
-        type yang:dotted-quad;
-        description
-          "Source address.";
-      }
-    }
-    container virtual-link {
-      description
-        "virtual-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf neighbor-router-id {
-        type yang:dotted-quad;
-        description
-          "Neighbor router id.";
-      }
-    }
-    container sham-link {
-      description
-        "sham-link.";
-      leaf area-id {
-        type uint32;
-        description
-          "Area ID.";
-      }
-      leaf local-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link local address.";
-      }
-      leaf remote-ip-addr {
-        type inet:ip-address;
-        description
-          "Sham link remote address.";
-      }
-    }
-    leaf packet-type {
-      type packet-type;
-      description
-        "OSPF packet type.";
-    }
-  }
-
-  notification lsdb-approaching-overflow {
-    description
-      "This notification is sent when the number of LSAs
-       in the router's link state database has exceeded
-       ninety percent of the ext-lsdb-limit.";
-    uses notification-instance-hdr;
-    leaf ext-lsdb-limit {
-      type uint32;
-      description
-        "The maximum number of non-default AS-external LSAs
-         entries that can be stored in the link state database.";
-    }
-  }
-
-  notification lsdb-overflow {
-    description
-      "This notification is sent when the number of LSAs
-       in the router's link state database has exceeded
-       ext-lsdb-limit.";
-    uses notification-instance-hdr;
-    leaf ext-lsdb-limit {
-      type uint32;
-      description
-        "The maximum number of non-default AS-external LSAs
-         entries that can be stored in the link state database.";
-    }
-  }
-
-  notification nssa-translator-status-change {
-    description
-      "This notification is sent when there is a change
-       in the router's ability to translate OSPF NSSA LSAs
-       OSPF AS-External LSAs.";
-    uses notification-instance-hdr;
-    leaf area-id {
-      type uint32;
-      description
-        "Area ID.";
-    }
-    leaf status {
-      type nssa-translator-state-type;
-      description
-        "NSSA translator status.";
-    }
-  }
-
-  notification restart-status-change {
-    description
-      "This notification is sent when the graceful restart
-       state for the router has changed.";
-    uses notification-instance-hdr;
-    leaf status {
-      type restart-status-type;
-      description
-        "Restart status.";
-    }
-    leaf restart-interval {
-      type uint16 {
-        range "1..1800";
-      }
-      units "seconds";
-      default "120";
-      description
-        "Restart interval.";
-    }
-    leaf exit-reason {
-      type restart-exit-reason-type;
-      description
-        "Restart exit reason.";
-    }
-  }
-
-  grouping ospf-grp {
-    container ospf {
-      description
-        "OSPF.";
-      container all-instances-inherit {
-        if-feature "instance-inheritance";
-        description
-          "Inheritance support to all instances.";
-        container area {
-          description
-            "Area config to be inherited by all areas in
-             all instances.";
-        }
-        container interface {
-          description
-            "Interface config to be inherited by all interfaces
-             in all instances.";
-        }
-      }
-      leaf operation-mode {
-        type identityref {
-          base operation-mode;
-        }
-        default "org-openroadm-ospf:ships-in-the-night";
-        description
-          "OSPF operation mode.";
-      }
-      list instance {
-        key "routing-instance af";
-        description
-          "An OSPF routing protocol instance.";
-        leaf routing-instance {
-          type org-openroadm-routing:routing-instance-ref;
-          description
-            "For protocol centric model, which is supported in
-             default-instance only, this could reference any layer 3
-             routing-instance.
-             For routing-instance centric model, must reference the
-             enclosing routing-instance.";
-        }
-        leaf af {
-          type identityref {
-            base org-openroadm-routing:address-family;
-          }
-          description
-            "Address-family of the instance.";
-        }
-        uses instance-config;
-        container all-areas-inherit {
-          if-feature "area-inheritance";
-          description
-            "Inheritance for all areas.";
-          container area {
-            description
-              "Area config to be inherited by all areas.";
-          }
-          container interface {
-            description
-              "Interface config to be inherited by all interfaces
-               in all areas.";
-          }
-        }
-        list area {
-          key "area-id";
-          description
-            "List of ospf areas";
-          leaf area-id {
-            type yang:dotted-quad;
-            description
-              "Area ID.";
-          }
-          uses area-config;
-          container all-interfaces-inherit {
-            if-feature "interface-inheritance";
-            description
-              "Inheritance for all interfaces";
-            container interface {
-              description
-                "Interface config to be inherited by all
-                 interfaces.";
-            }
-          }
-          list virtual-link {
-            when "../area-id != '0' and ../area-type = 'normal'" {
-              description
-                "Transit area must be non-backbone normal area.";
-            }
-            key "router-id";
-            description
-              "OSPF virtual link";
-            leaf router-id {
-              type yang:dotted-quad;
-              description
-                "Virtual link router ID.";
-            }
-            uses interface-common-config;
-          }
-          list interface {
-            key "interface";
-            description
-              "List of OSPF interfaces.";
-            leaf interface {
-              type org-openroadm-device:interface-ref;
-              description
-                "Interface.";
-            }
-            uses interface-config;
-          }
-        }
-      }
-    }
-    description
-      "Grouping for OSPF";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol" {
-    when "org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2' or org-openroadm-routing:type = 'org-openroadm-ospf:ospfv3'" {
-      description
-        "This augment is only valid for a routing protocol instance
-         of OSPF (type 'ospfv2' or 'ospfv3').";
-    }
-    description
-      "OSPF augmentation.";
-    uses ospf-grp;
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol/org-openroadm-ospf:ospf/org-openroadm-ospf:instance" {
-    when "../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2' or
-          ../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv3'" {
-        description
-          "This augment is only valid for OSPF
-           (type 'ospfv2' or 'ospfv3').";
-    }
-    if-feature "multi-topology";
-    description
-      "OSPF multi-topology routing-protocol augmentation.";
-  }
-
-  grouping topology-cost-grp {
-    list topology {
-      key "name";
-      description
-        "OSPF interface topology.";
-      leaf name {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:ribs/org-openroadm-routing:rib/org-openroadm-routing:name";
-        }
-        description
-          "One of the topology enabled on this interface";
-      }
-      leaf cost {
-        type uint32;
-        description
-          "Interface cost for this topology";
-      }
-    }
-    description
-      "Grouping for topology cost";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol/org-openroadm-ospf:ospf/org-openroadm-ospf:instance/org-openroadm-ospf:area/org-openroadm-ospf:interface" {
-    when "../../../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2'" {
-      description
-        "This augment is only valid for OSPFv2.";
-    }
-    if-feature "org-openroadm-ospf:multi-topology";
-    description
-      "OSPF multi-topology interface augmentation.";
-    uses topology-cost-grp;
-  }
-
-  grouping ospf-lsa-grp {
-    container ospf {
-      description
-        "OSPF";
-      list instance {
-        key "routing-instance af";
-        description
-          "An OSPF routing protocol instance.";
-        leaf routing-instance {
-          type org-openroadm-routing:routing-instance-ref;
-          description
-            "For protocol centric model, which is supported in
-             default-instance only, this could reference any layer 3
-             routing-instance.
-             For routing-instance centric model, must reference the
-             enclosing routing-instance.";
-        }
-        leaf af {
-          type identityref {
-            base org-openroadm-routing:address-family;
-          }
-          description
-            "Address-family of the instance.";
-        }
-        uses instance-operation;
-        list area {
-          key "area-id";
-          description
-            "List of OSPF areas";
-          leaf area-id {
-            type area-id-type;
-            description
-              "Area ID.";
-          }
-          list interface {
-            key "interface";
-            description
-              "List of OSPF interfaces.";
-            leaf interface {
-              type org-openroadm-device:interface-ref;
-              description
-                "Interface.";
-            }
-            uses interface-operation;
-            list neighbor {
-              key "neighbor-id";
-              description
-                "List of OSPF neighbors.";
-              leaf neighbor-id {
-                type inet:ipv4-address;
-                description
-                  "Neighbor ID.";
-              }
-              uses neighbor-operation;
-            }
-            list link-scope-lsas {
-              when "../../../../../org-openroadm-routing:type = 'ospfv3'" {
-                description
-                  "Link scope LSA only exists in OSPFv3.";
-              }
-              key "lsa-type";
-              description
-                "List OSPF link scope LSA databases";
-              leaf lsa-type {
-                type uint8;
-                description
-                  "OSPF link scope LSA type.";
-              }
-              list link-scope-lsa {
-                key "lsa-id adv-router";
-                description
-                  "List of OSPF link scope LSAs";
-                uses lsa-key;
-                uses link-scope-lsa;
-              }
-            }
-          }
-          list area-scope-lsas {
-            key "lsa-type";
-            description
-              "List OSPF area scope LSA databases";
-            leaf lsa-type {
-              type uint8;
-              description
-                "OSPF area scope LSA type.";
-            }
-            list area-scope-lsa {
-              key "lsa-id adv-router";
-              description
-                "List of OSPF area scope LSAs";
-              uses lsa-key;
-              uses area-scope-lsa;
-            }
-          }
-        }
-        list as-scope-lsas {
-          key "lsa-type";
-          description
-            "List OSPF AS scope LSA databases";
-          leaf lsa-type {
-            type uint8;
-            description
-              "OSPF AS scope LSA type.";
-          }
-          list as-scope-lsa {
-            key "lsa-id adv-router";
-            description
-              "List of OSPF AS scope LSAs";
-            uses lsa-key;
-            uses as-scope-lsa;
-          }
-        }
-      }
-    }
-    description
-      "Grouping for ospf lsa";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing-state/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol" {
-    when "org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2' or org-openroadm-routing:type = 'org-openroadm-ospf:ospfv3'" {
-      description
-        "This augment is only valid for a routing protocol instance
-         of type 'ospfv2' or 'ospfv3'.";
-    }
-    description
-      "OSPF configuration.";
-    uses ospf-lsa-grp;
-  }
-
-  grouping topology-area-grp {
-    list topology {
-      key "name";
-      description
-        "OSPF topology.";
-      leaf name {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:ribs/org-openroadm-routing:rib/org-openroadm-routing:name";
-        }
-        description
-          "RIB";
-      }
-      list area {
-        key "area-id";
-        description
-          "List of ospf areas";
-        leaf area-id {
-          type area-id-type;
-          description
-            "Area ID.";
-        }
-      }
-    }
-    description
-      "Grouping for topology area";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing-state/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol/org-openroadm-ospf:ospf/org-openroadm-ospf:instance" {
-    when "../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2'" {
-      description
-        "This augment is only valid for OSPFv2.";
-    }
-    if-feature "multi-topology";
-    description
-      "OSPF multi-topology routing-protocol augmentation.";
-    uses topology-area-grp;
-  }
-
-  grouping topology-grp {
-    list topology {
-      key "name";
-      description
-        "OSPF interface topology.";
-      leaf name {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing/org-openroadm-routing:routing-instance/org-openroadm-routing:ribs/org-openroadm-routing:rib/org-openroadm-routing:name";
-        }
-        description
-          "One of the topology enabled on this interface";
-      }
-    }
-    description
-      "Grouping for topology";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-routing:routing-state/org-openroadm-routing:routing-instance/org-openroadm-routing:routing-protocols/org-openroadm-routing:routing-protocol/org-openroadm-ospf:ospf/org-openroadm-ospf:instance/org-openroadm-ospf:area/org-openroadm-ospf:interface" {
-    when "../../../../org-openroadm-routing:type = 'org-openroadm-ospf:ospfv2'" {
-      description
-        "This augment is only valid for OSPFv2.";
-    }
-    if-feature "org-openroadm-ospf:multi-topology";
-    description
-      "OSPF multi-topology interface augmentation.";
-    uses topology-grp;
-  }
-}