netconfcentral logo

ietf-dynamic-flooding-ospf

HTML

ietf-dynamic-flooding-ospf@2019-09-01



  module ietf-dynamic-flooding-ospf {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-dynamic-flooding-ospf";

    prefix ospf-dynflood;

    import ietf-ospf {
      prefix ospf;
      reference
        "RFC AAAA: YANG Data Model for OSPF Protocol";


    }
    import ietf-yang-types {
      prefix yang;
      reference
        "RFC 6991: Common YANG Data Types";


    }
    import ietf-routing {
      prefix rt;
      reference
        "RFC 8349 - A YANG Data Model for Routing
        Management (NMDA Version)";


    }

    organization
      "IETF LSR - Link State Routing Working Group";

    contact
      "
     WG Web:
      <https://datatracker.ietf.org/group/lsr/about/>
     WG List:
      <mailto: lsr@ietf.org>

     Editor: Srinath Dontula
        <mailto: sd947e@att.com>
     Author: Tony Li
        <mailto: tony.li@tony.li>
     Author: Athar Siddiqui
        <mailto: athar@att.com>
    ";

    description
      "
     Copyright (c) 2019 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
     (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 "2019-09-01" {
      description "Initial draft version.";
      reference
        "RFC XXXX: YANG Data Model for Dynamic Flooding";

    }


    feature dynamic-flooding-ospf {
      description
        "Support for OSPF dynamic flooding";
      reference
        " RFC YYYY: Dynamic Flooding on Dense Graphs";

    }

    identity ospfv2-dynamic-flooding-opaque-lsa {
      base ospf:ospfv2-opaque-lsa-type;
      description
        "OSPFv2 Dynamic Flooding Opaque LSA - Type 10";
    }

    identity ospfv3-dynamic-flooding-opaque-lsa {
      base ospf:ospfv3-lsa-type;
      description
        "OSPFv3 Dynamic Flooding LSA - Type 16";
    }

    grouping ospf-area-leader-tlv {
      description
        "Area leader TLV for OSPFv2/OSPFv3.
       A TLV of RI LSA";
      leaf priority {
        type uint8;
        description
          "Router's priority for Area leader";
      }

      leaf algorithm {
        type uint8;
        description
          "Router's Algorithm to calculate the Flooding
         Topology.";
      }
    }  // grouping ospf-area-leader-tlv

    grouping dynamic-flooding-tlv {
      description
        "Dynamic-flooding TLV for OSPFv2/OSPFv3.
       A TLV of RI LSA";
      leaf-list algorithms {
        type uint8;
        description
          "List of Algorithms supported by the
         advertising node";
      }
    }  // grouping dynamic-flooding-tlv

    grouping ospfv2-area-router-id-tlv-entry {
      description
        "ospfv2 area router ID TLV enties";
      leaf connection-type {
        type uint8;
        description
          "Defines the connection type ";
      }

      leaf number-of-ids {
        type uint16;
        description
          "the number of ID present in this TLV entry";
      }

      leaf-list originating-router-id {
        type yang:dotted-quad;
        description
          "list of the originating-router-ids";
      }
    }  // grouping ospfv2-area-router-id-tlv-entry

    grouping ospfv2-area-router-id-tlv {
      description
        "definition for OSPFv2 Dynamic flooding area
       router-ID TLV";
      leaf start-index {
        type uint16;
        description
          "Starting index of the first
         router/designated router ID";
      }

      leaf last-flag {
        type bits {
          bit
            last-router-designated-router-id {
            position 0;
            description
              "when set, this TLV is the
             last Index in the full list
             of router IDs for the area";
            reference
              "RFC XXXX: Dynamic Flooding
              on Dense Graphs";

          }
        }
        description "last flag";
      }

      list ospfv2-router-id-tlv-entry {
        description
          "list of ospfv2 router-ID TLV entries";
        uses ospfv2-area-router-id-tlv-entry;
      }  // list ospfv2-router-id-tlv-entry
    }  // grouping ospfv2-area-router-id-tlv

    grouping ospfv3-area-router-id-tlv-entry {
      description
        "ospfv3 area router ID TLV enties";
      leaf connection-type {
        type uint8;
        description
          "Defines the connection type ";
      }

      leaf number-of-ids {
        type uint16;
        description
          "the number of ID present in this
         TLV entry";
      }

      container router-id {
        when '../connection-type = 1' {
          description
            "Only applies when
           connection type is Router";
        }
        description "originating-router-id";
        leaf-list originating-router-id {
          type yang:dotted-quad;
          description
            "list of the
           originating-router-ids";
        }
      }  // container router-id

      container designated-router-id {
        when '../connection-type = 2' {
          description
            "Only applies when
           connection type is designated Router";
        }
        description "originating-router-id";
        list originating-router-id-list {
          description
            "originating-router-id";
          leaf originating-router-id {
            type yang:dotted-quad;
            description
              "originating-router-ids";
          }

          leaf inteface-id {
            type yang:dotted-quad;
            description "interface-ids";
          }
        }  // list originating-router-id-list
      }  // container designated-router-id
    }  // grouping ospfv3-area-router-id-tlv-entry

    grouping ospfv3-area-router-id-tlv {
      description
        "definition for OSPFv3 Dynamic flooding area
       router-ID TLV";
      leaf start-index {
        type uint16;
        description
          "Starting index of the first
         router/designated router ID";
      }

      leaf last-flag {
        type bits {
          bit
            last-router-designated-router-id {
            position 0;
            description
              "when set, this TLV is the
             last Index in the full list
             of router IDs for the area";
            reference
              "RFC XXXX: Dynamic
              Flooding on Dense Graphs";

          }
        }
        description
          "dynamic flooding area router-ID
         flag definitions";
      }

      list ospfv3-router-id-tlv-entry {
        description
          "list of OSPFv3 router-ID TLV entries";
        uses ospfv3-area-router-id-tlv-entry;
      }  // list ospfv3-router-id-tlv-entry
    }  // grouping ospfv3-area-router-id-tlv

    grouping flooding-path-tlv {
      description
        "definition for OSPFv2/OSPFv3 Flooding Path TLV";
      leaf start-index {
        type uint16;
        description
          "Starting index of the first
         router/designated router ID";
      }

      leaf-list indices {
        type uint16;
        description
          "index of the next router ID in the
         path";
      }
    }  // grouping flooding-path-tlv

    grouping flooding-request-bit {
      description
        "definition for adding Floding request bit (FR-bit) to
       LLS type-1 extended options. Need to be defined";
    }  // grouping flooding-request-bit

    grouping link-attribute-bits-tlv {
      description
        "definition for link-attribute-bits-tlv, a sub-tlv for
       OSPFv2 Extended link TLV and a sub-tlv for OSPFv3
       router-link TLV";
      leaf link-attributes-bits {
        type bits {
          bit LEEF {
            position 0;
            description
              "when set, conveys which edges
             are currently enabled in the
             flooding topology";
          }
        }
        description "link-attributes-bits";
      }
    }  // grouping link-attribute-bits-tlv

    grouping area-leader-configuration {
      description
        "Enable area leader capability";
      leaf enable {
        type boolean;
        default "false";
        description
          "Enable area leader capability";
      }

      leaf priority {
        type uint8;
        description "Area leader priority";
      }

      leaf algorithm {
        type uint8;
        description
          "Dynamic flooding algorithm selection";
      }
    }  // grouping area-leader-configuration

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area {
      if-feature dynamic-flooding-ospf;
      description
        "Dynamic-flooding config model
       augmentation";
      container dynamic-flooding {
        description
          "to Enable/Disable dynamic flooding
         for this specific OSPF area";
        leaf enable {
          type boolean;
          description
            "Enable/Disable dynamic-flooding";
        }

        container area-leader {
          description
            "Area leader configuration parameters";
          uses area-leader-configuration;
        }  // container area-leader
      }  // container dynamic-flooding
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque {
      if-feature dynamic-flooding-ospf;
      description
        "dynamic flooding TLVs augmentation";
      container area-leader-tlv {
        description "Area-leader-tlv";
        uses ospf-area-leader-tlv;
      }  // container area-leader-tlv

      container dynamic-flooding-tlv {
        description "dynamic-flooding-tlv";
        uses dynamic-flooding-tlv;
      }  // container dynamic-flooding-tlv
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body {
      if-feature dynamic-flooding-ospf;
      description
        "ospfv2-dynamic-flooding-opaque-lsa augmentation";
      container ospfv2-dynamic-flooding-opaque-lsa {
        description
          "OSPFv2 Dynamic flooding opaque LSA.";
        container ospfv2-area-router-id-tlv {
          description
            "ospfv2-area-router-id-tlv";
          uses ospfv2-area-router-id-tlv;
        }  // container ospfv2-area-router-id-tlv

        container flooding-path-tlv {
          description
            "ospf flooding-path-tlv";
          uses flooding-path-tlv;
        }  // container flooding-path-tlv
      }  // container ospfv2-dynamic-flooding-opaque-lsa
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque/ospf:extended-link-opaque/ospf:extended-link-tlv {
      if-feature dynamic-flooding-ospf;
      description
        "ospf-link-attributes-bits-tlv augmentation";
      container ospf-link-attributes-bits-tlv {
        description
          "ospf link attributes bits tlv.";
        uses link-attribute-bits-tlv;
      }  // container ospf-link-attributes-bits-tlv
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body/ospf:router-information {
      if-feature dynamic-flooding-ospf;
      description
        "dynamic flooding TLVs augmentation";
      container area-leader-tlv {
        description "Area-leader-tlv";
        uses ospf-area-leader-tlv;
      }  // container area-leader-tlv

      container dynamic-flooding-tlv {
        description "dynamic-flooding-tlv";
        uses dynamic-flooding-tlv;
      }  // container dynamic-flooding-tlv
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body {
      if-feature dynamic-flooding-ospf;
      description
        "ospfv3-dynamic-flooding-opaque-lsa
       augmentation";
      container ospfv3-dynamic-flooding-opaque-lsa {
        description
          "ospfv3-dynamic-flooding-opaque-lsa
         definition";
        container ospfv3-area-router-id-tlv {
          description
            "ospfv3-area-router-id-tlv";
          uses ospfv3-area-router-id-tlv;
        }  // container ospfv3-area-router-id-tlv

        container flooding-path-tlv {
          description
            "ospf flooding-path-tlv";
          uses flooding-path-tlv;
        }  // container flooding-path-tlv
      }  // container ospfv3-dynamic-flooding-opaque-lsa
    }
  }  // module ietf-dynamic-flooding-ospf

Summary

  
  
Organization IETF LSR - Link State Routing Working Group
  
Module ietf-dynamic-flooding-ospf
Version 2019-09-01
File ietf-dynamic-flooding-ospf@2019-09-01.yang
  
Prefix ospf-dynflood
Namespace urn:ietf:params:xml:ns:yang:ietf-dynamic-flooding-ospf
  
Cooked /cookedmodules/ietf-dynamic-flooding-ospf/2019-09-01
YANG /src/ietf-dynamic-flooding-ospf@2019-09-01.yang
XSD /xsd/ietf-dynamic-flooding-ospf@2019-09-01.xsd
  
Abstract Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use ...
  
Contact
WG Web:
 <https://datatracker.ietf.org/group/lsr/about/>
WG List:
 <mailto: lsr@ietf.org>

Editor: Srinath Dontula
   <mailto: sd947e@att.com>
Author: Tony Li
   <mailto: tony.li@tony.li>
Author: Athar Siddiqui
   <mailto: athar@att.com>

Description

 
Copyright (c) 2019 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
(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.

Groupings

Grouping Objects Abstract
area-leader-configuration enable priority algorithm Enable area leader capability
dynamic-flooding-tlv algorithms Dynamic-flooding TLV for OSPFv2/OSPFv3. A TLV of RI LSA
flooding-path-tlv start-index indices definition for OSPFv2/OSPFv3 Flooding Path TLV
flooding-request-bit definition for adding Floding request bit (FR-bit) to LLS type-1 extended options. Need to be defined
link-attribute-bits-tlv link-attributes-bits definition for link-attribute-bits-tlv, a sub-tlv for OSPFv2 Extended link TLV and a sub-tlv for OSPFv3 router-link TLV
ospf-area-leader-tlv priority algorithm Area leader TLV for OSPFv2/OSPFv3. A TLV of RI LSA
ospfv2-area-router-id-tlv start-index last-flag ospfv2-router-id-tlv-entry definition for OSPFv2 Dynamic flooding area router-ID TLV
ospfv2-area-router-id-tlv-entry connection-type number-of-ids originating-router-id ospfv2 area router ID TLV enties
ospfv3-area-router-id-tlv start-index last-flag ospfv3-router-id-tlv-entry definition for OSPFv3 Dynamic flooding area router-ID TLV
ospfv3-area-router-id-tlv-entry connection-type number-of-ids router-id designated-router-id ospfv3 area router ID TLV enties