netconfcentral logo

openconfig-ospfv2-area-interface@2017-08-24



  submodule openconfig-ospfv2-area-interface {

    yang-version 1;

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

    import ietf-yang-types {
      prefix yang;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-types {
      prefix oc-types;
    }
    import openconfig-interfaces {
      prefix oc-if;
    }
    import openconfig-ospf-types {
      prefix oc-ospf-types;
    }

    include openconfig-ospfv2-common;

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This submodule provides OSPFv2 configuration and operational
    state parameters that are specific to the area context";

    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.1.1";

    grouping ospfv2-area-interface-config {
      description
        "Configuration parameters for an OSPF interface";
      leaf id {
        type string;
        description
          "An operator-specified string utilised to uniquely
        reference this interface";
      }

      leaf network-type {
        type identityref {
          base oc-ospf-types:OSPF_NETWORK_TYPE;
        }
        description
          "The type of network that OSPFv2 should use for the specified
        interface.";
      }

      leaf priority {
        type uint8;
        description
          "The local system's priority to become the designated
        router";
      }

      leaf multi-area-adjacency-primary {
        type boolean;
        default 'true';
        description
          "When the specified interface is included in more than one
        area's configuration, this leaf marks whether the area should
        be considered the primary (when the value is true). In the
        case that this value is false, the area is considered a
        secondary area.";
      }

      leaf authentication-type {
        type string;
        description
          "The type of authentication that should be used on this
        interface";
      }

      leaf metric {
        type oc-ospf-types:ospf-metric;
        description
          "The metric for the interface";
      }

      leaf passive {
        type boolean;
        description
          "When this leaf is set to true, the interface should be
        advertised within the OSPF area but OSPF adjacencies should
        not be established over the interface";
      }

      leaf hide-network {
        type boolean;
        description
          "When this leaf is set to true, the network connected to
        the interface should be hidden from OSPFv2 advertisements
        per the procedure described in RFC6860.";
        reference
          "RFC6860 - Hiding Transit-Only Networks in OSFF";

      }
    }  // grouping ospfv2-area-interface-config

    grouping ospfv2-area-interface-timers-config {
      description
        "Configuration parameters relating to per-interface OSPFv2
      timers";
      leaf dead-interval {
        type uint32;
        units "seconds";
        description
          "The number of seconds that the local system should let
        elapse before declaring a silent router down";
        reference
          "RFC2328";

      }

      leaf hello-interval {
        type uint32;
        units "seconds";
        description
          "The number of seconds the local system waits between the
        transmission of subsequent Hello packets";
      }

      leaf retransmission-interval {
        type uint32;
        units "seconds";
        description
          "The number of seconds that the local system waits before
        retransmitting an unacknowledged LSA.";
      }
    }  // grouping ospfv2-area-interface-timers-config

    grouping ospfv2-area-interface-mpls-config {
      description
        "Configuration parameters relating to MPLS extensions for OSPF";
      leaf traffic-engineering-metric {
        type uint32;
        description
          "A link metric that should only be considered for traffic
        engineering purposes.";
        reference
          "RFC3630, §2.5.5";

      }
    }  // grouping ospfv2-area-interface-mpls-config

    grouping ospfv2-area-interface-neighbor-config {
      description
        "Configuration parameters relating to an individual neighbor
      system on an interface within an OSPF area";
      leaf router-id {
        type yang:dotted-quad;
        description
          "The router ID of the remote system.";
      }

      leaf metric {
        type oc-ospf-types:ospf-metric;
        description
          "The metric that should be considered to the remote neighbor
        over this interface. This configuration is only applicable
        for multiple-access networks";
      }
    }  // grouping ospfv2-area-interface-neighbor-config

    grouping ospfv2-area-interface-neighbor-state {
      description
        "Operational state parameters relating an individual neighbor
      system on an interface within an OSPF area";
      leaf priority {
        type uint8;
        description
          "The remote system's priority to become the designated
        router";
      }

      leaf dead-time {
        type oc-types:timeticks64;
        description
          "The time at which this neighbor's adjacency will be
        considered dead. This value is expressed as a number of
        seconds since the Unix Epoch";
      }

      leaf designated-router {
        type yang:dotted-quad;
        description
          "The designated router for the adjacency. This device
        advertises the Network LSA for broadcast and NBMA networks.";
      }

      leaf backup-designated-router {
        type yang:dotted-quad;
        description
          "The backup designated router for the adjacency.";
      }

      leaf optional-capabilities {
        type yang:hex-string;
        description
          "The optional capabilities field received in the Hello
        message from the neighbor";
      }

      leaf last-established-time {
        type oc-types:timeticks64;
        units "seconds";
        description
          "The time at which the adjacency was last established with
        the neighbor. That is to say the time at which the
        adjacency last transitioned into the FULL state.

        This value is expressed as the number of seconds, relative to
        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
      }

      leaf adjacency-state {
        type identityref {
          base oc-ospf-types:OSPF_NEIGHBOR_STATE;
        }
        description
          "The state of the adjacency with the neighbor.";
      }

      leaf state-changes {
        type uint32;
        description
          "The number of transitions out of the FULL state that this
        neighbor has been through";
      }

      leaf retranmission-queue-length {
        type uint32;
        description
          "The number of LSAs that are currently in the queue to be
        retransmitted to the neighbor";
      }
    }  // grouping ospfv2-area-interface-neighbor-state

    grouping ospfv2-area-interface-lsa-filter-config {
      description
        "Configuration options relating to filtering LSAs
      on an interface.";
      leaf all {
        type boolean;
        description
          "When this leaf is set to true, all LSAs should be
        filtered to the neighbours with whom adjacencies are
        formed on the interface.";
      }
    }  // grouping ospfv2-area-interface-lsa-filter-config

    grouping ospfv2-area-interface-mpls-igp-ldp-sync-state {
      description
        "Operational state parameters relating to MPLS LDP/IGP
      synchronization on a per-neighbor basis";
      leaf synchronized {
        type boolean;
        description
          "When the value of this leaf is set to true, the
        LDP neighbors reachable via this interface are considered
        to be synchronized, and hence the link is considered
        usable by the IGP.";
      }
    }  // grouping ospfv2-area-interface-mpls-igp-ldp-sync-state

    grouping ospfv2-area-interfaces-structure {
      description
        "Structural grouping for configuration and operational state
      parameters that relate to an interface";
      container interfaces {
        description
          "Enclosing container for a list of interfaces enabled within
        this area";
        list interface {
          key "id";
          description
            "List of interfaces which are enabled within this area";
          leaf id {
            type leafref {
              path "../config/id";
            }
            description
              "A pointer to the identifier for the interface.";
          }

          container config {
            description
              "Configuration parameters for the interface on which
            OSPFv2 is enabled";
            uses ospfv2-area-interface-config;
          }  // container config

          container state {
            config false;
            description
              "Operational state parameters for the interface on which
            OSPFv2 is enabled";
            uses ospfv2-area-interface-config;
          }  // container state

          uses oc-if:interface-ref;

          container timers {
            description
              "Timers relating to OSPFv2 on the interface";
            container config {
              description
                "Configuration parameters for OSPFv2 timers on the
              interface";
              uses ospfv2-area-interface-timers-config;
            }  // container config

            container state {
              config false;
              description
                "Operational state parameters for OSPFv2 timers on
              the interface";
              uses ospfv2-area-interface-timers-config;
            }  // container state
          }  // container timers

          container mpls {
            description
              "Configuration and operational state parameters for
            OSPFv2 extensions related to MPLS on the interface.";
            container config {
              description
                "Configuration parameters for OSPFv2 extensions relating
              to MPLS for the interface";
              uses ospfv2-area-interface-mpls-config;
            }  // container config

            container state {
              config false;
              description
                "Operational state for OSPFv2 extensions relating to
              MPLS for the interface";
              uses ospfv2-area-interface-mpls-config;
            }  // container state

            container igp-ldp-sync {
              description
                "OSPFv2 parameters relating to LDP/IGP synchronization";
              container config {
                description
                  "Configuration parameters relating to LDP/IG
                synchronization.";
                uses ospfv2-common-mpls-igp-ldp-sync-config;
              }  // container config

              container state {
                config false;
                description
                  "Operational state variables relating to LDP/IGP
                synchronization";
                uses ospfv2-common-mpls-igp-ldp-sync-config;

                uses ospfv2-area-interface-mpls-igp-ldp-sync-state;
              }  // container state
            }  // container igp-ldp-sync
          }  // container mpls

          container lsa-filter {
            description
              "OSPFv2 parameters relating to filtering of LSAs to
            neighbors the specified interface.";
            container config {
              description
                "Configuration parameters relating to filtering LSAs
              on the specified interface.";
              uses ospfv2-area-interface-lsa-filter-config;
            }  // container config

            container state {
              config false;
              description
                "Operational state parameters relating to filtering
              LSAs on the specified interface";
              uses ospfv2-area-interface-lsa-filter-config;
            }  // container state
          }  // container lsa-filter

          container neighbors {
            description
              "Enclosing container for the list of neighbors that
            an adjacency has been established with on the interface";
            list neighbor {
              key "router-id";
              description
                "A neighbor with which an OSPFv2 adjacency has been
              established within this area";
              leaf router-id {
                type leafref {
                  path "../config/router-id";
                }
                description
                  "Reference to the router ID of the adjacent system";
              }

              container config {
                description
                  "Configuration parameters relating to the adjacent
                system";
                uses ospfv2-area-interface-neighbor-config;
              }  // container config

              container state {
                config false;
                description
                  "Operational state parameters relating to the adjacent
                system";
                uses ospfv2-area-interface-neighbor-config;

                uses ospfv2-area-interface-neighbor-state;
              }  // container state
            }  // list neighbor
          }  // container neighbors
        }  // list interface
      }  // container interfaces
    }  // grouping ospfv2-area-interfaces-structure
  }  // submodule openconfig-ospfv2-area-interface