Internet-Draft OSPF Topology YANG March 2022
Dios, et al. Expires 8 September 2022 [Page]
Workgroup:
OPSAWG Working Group
Internet-Draft:
draft-ogondio-opsawg-ospf-topology-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
O. G. de. Dios
Telefonica
S. B. Giraldo
Telefonica
V. Lopez
Nokia

A YANG Data Model for Open Source Path First (OSPF) Topology

Abstract

This document defines a YANG data model for representing an abstract view of the provider network topology that contains Open Source Path First (OSPF) information. This document augments the 'ietf-network' data model by adding OSPF concepts.

The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA).

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 8 September 2022.

Table of Contents

1. Introduction

Topology collection is a critical use case for the network operators because the network topology is an abstract representation of the physical nodes, links and network interconnections. Network planning processes requires that the network resources are placed to meet the traffic demands requirements not just in terms of bandwidth or delay, but also for failure scenarios. Network operators does the network planning process as an offline process, which obtains the information not directly from the network, but from inventory or template information. The main reason for this process was that there was a lack of a dynamic and programmatic interfaces that can allow the planning tools to obtain such information.

Thanks to the definition of the ietf-network model in [RFC8345] this situation changed, because network operators can use an API with dynamic topological information. On top of the work in [RFC8345], [RFC8346] and [RFC8944] extends the generic network and network topology data models with topology attributes that are specific to Layer 3 and Layer 2. However, there is not any model that exposes Open Source Path First (OSPF) information. This information is required in the IP/MPLS planning process to properly assess the required network resources to meet the traffic demands in normal and failure scenarios.

The main objective of this model is to represent most relevant OSPF topology attributes.

This document defines a YANG data model for representing, managing and controlling the OSPF topology. The data model augments ietf-network module [RFC8345] by adding the OSPF information.

This document explains the scope and purpose of the OSPF topology model and how the topology and service models fit together.

The YANG data model defined in this document conforms to the Network Management Datastore Architecture [RFC8342].

1.1. Terminology and Notations

This document assumes that the reader is familiar with the contents of [RFC8345]. The document uses terms from those documents.

The terminology for describing YANG data models is found in [RFC7950], [RFC8795] and [RFC8346].

1.2. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119], [RFC8174] when, and only when, they appear in all capitals, as shown here.

1.3. Tree Diagram

Authors include a simplified graphical representation of the data model is used in Section 3 of this document. The meaning of the symbols in these diagrams is defined in [RFC8340].

1.4. Prefix in Data Node Names

In this document, names of data nodes and other data model objects are prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in the following table.

Table 1: Prefixes and corresponding YANG modules
Prefix Yang Module Reference
ospfnt ietf-l3-ospf-topology RFCXXX
yang ietf-yang-types [RFC6991]

RFC Editor Note: Please replace XXXX with the RFC number assigned to this document. Please remove this note.

2. YANG Data Model for OSPF Topology

The abstract (base) network data model is defined in the "ietf-network" module of [RFC8345]. The OSPF-topology builds on the network data model defined in the "ietf-network" module [RFC8345], augmenting the nodes with OSPF information, which anchor the links and are contained in nodes).

There is a set of parameters and augmentations that are included at the node level. Each parameter and description are detailed following:

There is a second set of parameters and augmentations are included at the link and termination point level. Each parameter is listed as follows:

3. OSPF Topology Tree Diagram

Figure 1 below shows the tree diagram of the YANG data model defined in module ietf-l3-ospf-topology.yang (Section 4).

module: ietf-l3-ospf-topology
  augment /nw:networks/nw:network/nw:network-types:
    +--rw ospfv2-topology!
  augment /nw:networks/nw:network/nw:node/
    l3t:l3-node-attributes:
    +--rw ospf-timer-attributes
       +--rw wait-timer?    uint32
       +--rw rapid-delay?   uint32
       +--rw slow-delay?    uint32
       +--rw timer-type?    enumeration
  augment /nw:networks/nw:network/nt:link/
    l3t:l3-link-attributes:
    +--rw ospfv2-termination-point-attributes
       +--rw interface-type?   identityref
       +--rw area-id?          area-id-type
       +--rw metric?           uint64
       +--rw is-passive?       boolean
  augment /nw:networks/nw:network/nw:node/nt:termination-point/
    l3t:l3-termination-point-attributes:
    +--rw ospfv2-termination-point-attributes
       +--rw interface-type?   identityref
       +--rw area-id?          area-id-type
       +--rw metric?           uint64
       +--rw is-passive?       boolean
Figure 1: OSPF Topology tree diagram

4. YANG Model for OSPF topology

Following the YANG model is presented.

<CODE BEGINS> file "ietf-l3-ospf-topology@2022-03-07.yang"

module ietf-l3-ospf-topology {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-l3-ospf-topology";
  prefix "ospfnt";
  import ietf-yang-types {
          prefix "yang";
      }
  import ietf-network {
    prefix "nw";
  }
  import ietf-network-topology {
    prefix "nt";
  }
  import ietf-l3-unicast-topology {
    prefix "l3t";
  }

  organization
    "IETF OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:  <https://datatracker.ietf.org/wg/opsawg/>
    WG List:  <mailto:opsawg@ietf.org>

    Editor:   Oscar Gonzalez de Dios
              <mailto:oscar.gonzalezdedios@telefonica.com>
    Editor:   Samier Barguil
              <mailto:samier.barguilgiraldo.ext@telefonica.com>
    Editor:   Victor Lopez
              <mailto:victor.lopez@nokia.com>";
  description
    "This module defines a model for Layer 3 OSPF
     topologies.

     Copyright (c) 2022 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 Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";

  revision 2022-03-07 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Open Source Path First
       (OSPF) Topology"; }

  typedef area-id-type {
    type yang:dotted-quad;
    description
      "An identifier for the OSPFv2 area.";
    reference
         "RFC 2328: OSPF Version 2";
  }

  identity inf-type {
    description
      "Identity for the OSPF interface type.";
    reference
         "RFC 2328: OSPF Version 2";
  }

  identity nbma {
    base inf-type;
    description
      "Identity for the NBMA interface.";
    reference
         "RFC 2328: OSPF Version 2";
  }

  identity p2mp {
    base inf-type;
    description
      "Identity for the p2mp interface.";
    reference
         "RFC 2328: OSPF Version 2";
  }
  identity p2mp-over-lan {
    base inf-type;
    description
      "Identity for the p2mp-over-lan interface.";
    reference
         "RFC 2328: OSPF Version 2";
  }

  identity p2p {
    base inf-type;
    description
      "Identity for the p2p interface.";
    reference
         "RFC 2328: OSPF Version 2";
  }

  grouping ospfv2-topology-type {
    description "Identifies the topology type to be OSPF v2.";
    container ospfv2-topology {
      presence "indicates OSPF v2 topology";
      description
        "The presence of the container node indicates OSPF v2
        topology";
    }
  }

  grouping ospfv2-node-attributes {
    description "OSPF v2 node scope attributes";
    container ospf-timer-attributes {
      description
        "Contains OSPFv2 node timer attributes";
      leaf wait-timer {
        type uint32;
        units msec;
        description
          "The amount of time to wait without detecting SPF
          trigger events before going back to the rapid delay.";
        reference
         "RFC 8541: SPF Impact on IGP Micro-loops";
      }
      leaf rapid-delay {
        type uint32;
        units msec;
        description
          "The amount of time to wait before running SPF after
          the initial SPF trigger event.";
        reference
         "RFC 8541: SPF Impact on IGP Micro-loops";
      }
      leaf slow-delay {
        type uint32;
        units msec;
        description
          "The amount of time to wait before running an SPF.";
        reference
         "RFC 8541: SPF Impact on IGP Micro-loops";
      }
      leaf timer-type {
        type enumeration {
          enum LINEAR_BACKOFF {
            description
              "The link state routing protocol uses linear
               back-off.";
          }
          enum EXPONENTIAL_BACKOFF {
            description
              "The link state routing protocol uses exponential
               back-off.";
          }
        }
        description
          "The timer mode that is utilised by the SPF algorithm.";
        reference
         "RFC 8541: SPF Impact on IGP Micro-loops";
      }
    }
  }

  grouping ospfv2-termination-point-attributes {
    description "OSPF termination point scope attributes";
    container ospfv2-termination-point-attributes {
      description
        "Indicates the termination point from the
              which the OSPF is configured. A termination
              point can be a physical port, an interface, etc.";
      leaf interface-type {
        type identityref {
          base inf-type ;
        }
        description
          "OSPF interface type.";
        reference
          "RFC 2328: OSPF Version 2";
      }
      leaf area-id {
        type area-id-type;
        description
          "An identifier for the OSPFv2 area.";
        reference
          "RFC 2328: OSPF Version 2";
      }
      leaf metric {
        type uint64;
        description
          "OSFP Protocol metric";
        reference
          "RFC 2328: OSPF Version 2";
      }
      leaf is-passive{
        type boolean;
        description
          "Interface passive mode";
        reference
          "RFC 2328: OSPF Version 2";
      }
    }
  }

  augment "/nw:networks/nw:network/nw:network-types" {
    description
      "Introduces new network type for L3 Unicast topology";
    uses ospfv2-topology-type;
  }

  augment "/nw:networks/nw:network/nw:node/"
    +"l3t:l3-node-attributes" {
    when
    "/nw:networks/nw:network/nw:network-types/"
      +"ospfnt:ospfv2-topology" {
      description
        "Augmentation parameters apply only for networks with
        OSPF topology";
    }
    description
        "OSPF node-level attributes ";
    uses ospfv2-node-attributes;
  }

  augment "/nw:networks/nw:network/"
      + "nt:link/l3t:l3-link-attributes" {
    when "/nw:networks/nw:network/nw:network-types/"
      +"ospfnt:ospfv2-topology" {
      description
        "Augmentation parameters apply only for networks with
        OSFP topology";
    }
    description "Augments topology link configuration";
    uses ospfv2-termination-point-attributes;
  }

  augment "/nw:networks/nw:network/nw:node/"
      +"nt:termination-point/l3t:l3-termination-point-attributes" {
    when "/nw:networks/nw:network/nw:network-types/"
      +"ospfnt:ospfv2-topology" {
      description
        "Augmentation parameters apply only for networks with
        OSFP topology";
    }
    description "Augments topology termination point configuration";
    uses ospfv2-termination-point-attributes;
  }
}

<CODE ENDS>
Figure 2: OSPF Topology YANG module

5. Security Considerations

The YANG module specified in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC5246].

The NETCONF access control model [RFC6536] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.

There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations.

6. IANA Considerations

This document registers the following namespace URIs in the IETF XML registry [RFC3688]:

--------------------------------------------------------------------
URI: urn:ietf:params:xml:ns:yang:ietf-l3-ospf-topology
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.
--------------------------------------------------------------------

This document registers the following YANG module in the YANG Module Names registry [RFC6020]:

--------------------------------------------------------------------
name:         ietf-l3-ospf-topology
namespace:    urn:ietf:params:xml:ns:yang:ietf-l3-ospf-topology
maintained by IANA: N
prefix:       ietf-l3-ospf-topology
reference:    RFC XXXX
--------------------------------------------------------------------

7. Implementation Status

This section will be used to track the status of the implementations of the model. It is aimed at being removed if the document becomes RFC.

8. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3688]
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, , <https://www.rfc-editor.org/info/rfc3688>.
[RFC5246]
Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, , <https://www.rfc-editor.org/info/rfc5246>.
[RFC6020]
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, , <https://www.rfc-editor.org/info/rfc6020>.
[RFC6241]
Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, , <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242]
Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, , <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536]
Bierman, A. and M. Bjorklund, "Network Configuration Protocol (NETCONF) Access Control Model", RFC 6536, DOI 10.17487/RFC6536, , <https://www.rfc-editor.org/info/rfc6536>.
[RFC6991]
Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, , <https://www.rfc-editor.org/info/rfc6991>.
[RFC7950]
Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, , <https://www.rfc-editor.org/info/rfc7950>.
[RFC8040]
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, , <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8340]
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, , <https://www.rfc-editor.org/info/rfc8340>.
[RFC8342]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, , <https://www.rfc-editor.org/info/rfc8342>.
[RFC8343]
Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10.17487/RFC8343, , <https://www.rfc-editor.org/info/rfc8343>.
[RFC8345]
Clemm, A., Medved, J., Varga, R., Bahadur, N., Ananthakrishnan, H., and X. Liu, "A YANG Data Model for Network Topologies", RFC 8345, DOI 10.17487/RFC8345, , <https://www.rfc-editor.org/info/rfc8345>.
[RFC8346]
Clemm, A., Medved, J., Varga, R., Liu, X., Ananthakrishnan, H., and N. Bahadur, "A YANG Data Model for Layer 3 Topologies", RFC 8346, DOI 10.17487/RFC8346, , <https://www.rfc-editor.org/info/rfc8346>.
[RFC8795]
Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and O. Gonzalez de Dios, "YANG Data Model for Traffic Engineering (TE) Topologies", RFC 8795, DOI 10.17487/RFC8795, , <https://www.rfc-editor.org/info/rfc8795>.
[RFC8944]
Dong, J., Wei, X., Wu, Q., Boucadair, M., and A. Liu, "A YANG Data Model for Layer 2 Network Topologies", RFC 8944, DOI 10.17487/RFC8944, , <https://www.rfc-editor.org/info/rfc8944>.

Acknowledgments

The authors of this document would like to thank XXX.

This document was prepared using kramdown.

Authors' Addresses

Oscar González de Dios
Telefonica
Samier Barguil Giraldo
Telefonica
Victor Lopez
Nokia