Skip to main content

Yang Data Model for ISIS protocol
draft-litkowski-isis-yang-isis-cfg-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Author Stephane Litkowski
Last updated 2014-06-24
Replaced by draft-ietf-isis-yang-isis-cfg, draft-ietf-isis-yang-isis-cfg, draft-ietf-isis-yang-isis-cfg, RFC 9130
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-litkowski-isis-yang-isis-cfg-00
quot;Reference to the interface within
                          the routing-instance.";
                    }
                    leaf level {
                        type isis-level;
                        default "level-1-2";
                        description
                         "This leaf defines the associated ISIS level
                          of the interface.";
                    }
                    leaf lsp-interval {
                        type uint16;
                        units "milliseconds";
                        description
                         "This leaf defines the interval between LSP
                          transmissions in msec";
                    }
                    leaf passive {
                        type boolean;
                        default "false";
                        description
                         "This leaf defines if interface is in passive mode
                          (ISIS not running, but network is advertised).";
                    }
                    leaf csnp-interval {
                        type uint16;
                        units "seconds";
                        description
                         "This leaf defines the interval of CSNP
                          messages.";
                    }

Litkowski               Expires December 26, 2014              [Page 33]
Internet-Draft                  isis-cfg                       June 2014

                    uses isis-interface-hello-cfg;

                    leaf hello-padding {
                        type boolean;
                        description
                         "This leaf defines if ISIS Hellos would be
                          padded up to MTU size.";
                    }

                    uses isis-address-family-cfg;

                    leaf interface-type {
                        type enumeration {
                            enum broadcast {
                                description "Broadcast interface type.
                                Would result in DIS election.";
                            }
                            enum point-to-point {
                                description "Point to point interface type.";
                            }
                        }
                        description
                         "This leaf defines the type of adjacency
                         to be established on the interface. This is
                         affecting the type of hello message that would
                         be used.";
                    }

                    leaf enabled {
                        type boolean;
                        default "true";
                        description
                         "This leaf describes the administrative status
                          of the ISIS interface.";
                    }

                    leaf-list tag {
                        type uint32;
                        description
                         "This leaf defines list of tags associated
                          with the interface.";
                    }

                    container level-1 {
                        uses isis-interface-level-cfg;
                        description
                         "This container defines the level 1 specific

Litkowski               Expires December 26, 2014              [Page 34]
Internet-Draft                  isis-cfg                       June 2014

                         configuration of the interface.";
                    }

                    container level-2 {
                        uses isis-interface-level-cfg;
                        description
                         "This container defines the level 2 specific
                         configuration of the interface.";
                    }

                    description
                     "List of ISIS interfaces.";
                }
                description
                 "This container defines ISIS interface specific
                 configuration objects.";
            }

            description
             "This container defines ISIS specific configuration
              objects.";
        }
    }

    augment "/rt:routing-state/rt:routing-instance/"
        +"rt:routing-protocols/rt:routing-protocol" {
        when "rt:type = 'isis:isis'" {
            description
             "This augment is only valid when routing protocol
              instance type is isis.";
        }
        description
         "This augments routing protocol instance states with ISIS
          specific parameters.";
        container isis-state {
            config false;
            container adjacencies {

                list adjacency {
                    key interface;

                    leaf interface {
                        type string;
                        description
                         "This leaf describes the name
                         of the interface.";
                    }
                    leaf level {

Litkowski               Expires December 26, 2014              [Page 35]
Internet-Draft                  isis-cfg                       June 2014

                        type uint8 {
                            range "1 .. 2";
                        }
                        description
                            "This leaf describes the associated
                            ISIS level of the interface.
                            The value of the level can only be 1
                            or 2.";
                    }
                    leaf state {
                        type enumeration {
                            enum "Up" {
                                description
                                 "This state describes that
                                  adjacency is established.";
                            }
                            enum "Down" {
                                description
                                 "This state describes that
                                  adjacency is NOT established.";
                            }
                            enum "Init" {
                                description
                                 "This state describes that
                                  adjacency is establishing.";
                            }
                        }
                        description
                         "This leaf describes the state of the
                         interface.";
                    }
                    description
                     "List of operational adjacencies.";
                }
                description
                 "This container lists the adjacencies of
                 the local node.";
            }
            container spf-log {
                list event {
                    key id;

                    leaf id {
                        type uint32;
                        description
                         "This leaf defines the event identifier.
                          This is a purely internal value.";
                    }

Litkowski               Expires December 26, 2014              [Page 36]
Internet-Draft                  isis-cfg                       June 2014

                    leaf spf-type {
                        type enumeration {
                            enum full {
                                description
                                 "Computation done is a Full SPF.";
                            }
                            enum incremental {
                                description
                                 "Computation done is an
                                  incremental SPF.";
                            }
                            enum route-only {
                                description
                                 "Computation done is a
                                  reachability computation
                                  only.";
                            }
                        }
                        description
                         "This leaf describes the type of computation
                         used.";
                    }
                    leaf level {
                        type uint8 {
                            range "1 .. 2";
                        }
                        description
                         "This leaf describes the level affected bytes
                         the computation.";
                    }
                    leaf spf-delay {
                        type uint32;
                        units "milliseconds";
                        description
                         "This leaf describes the SPF delay that
                         was used for this event.";
                    }
                    leaf schedule-timestamp {
                        type yang:timestamp;
                        description
                         "This leaf describes the timestamp
                          when the computation was scheduled.";
                    }
                    leaf start-timestamp {
                        type yang:timestamp;
                        description
                         "This leaf describes the timestamp
                          when the computation was started.";

Litkowski               Expires December 26, 2014              [Page 37]
Internet-Draft                  isis-cfg                       June 2014

                    }
                    leaf end-timestamp {
                        type yang:timestamp;
                        description
                         "This leaf describes the timestamp
                          when the computation was ended.";
                    }
                    list trigger-lsp {
                        key "lsp";
                        leaf lsp {
                            type isis-lsp-id;
                            description
                             "This leaf describes the LSPID
                              of the LSP.";
                        }
                        leaf sequence {
                            type uint32;
                            description
                             "This leaf describes the sequence
                              number of the LSP.";
                        }
                        description
                         "This leaf describes list of LSPs
                          that triggered the computation.";
                    }
                    description
                     "List of computation events.";
                }

                description
                 "This container lists the SPF computation events.";
            }
            container lsp-log {
                list event {
                    key id;

                    leaf id {
                        type uint32;
                        description
                         "This leaf defines the event identifier.
                          This is a purely internal value.";
                    }
                    leaf level {
                        type uint8 {
                            range "1 .. 2";
                        }
                        description
                         "This leaf describes the level affected bytes

Litkowski               Expires December 26, 2014              [Page 38]
Internet-Draft                  isis-cfg                       June 2014

                         the computation.";
                    }
                    container lsp {
                        leaf lsp {

                            type isis-lsp-id;
                            description
                             "This leaf describes the LSPID
                              of the LSP.";
                        }
                        leaf sequence {
                            type uint32;
                            description
                             "This leaf describes the sequence
                              number of the LSP.";
                        }
                        description
                         "This container describes the received LSP
                         , in case of local LSP update the local
                         LSP ID is referenced.";
                    }

                    leaf received-timestamp {
                        type yang:timestamp;

                        description
                         "This leaf describes the timestamp
                         when the LSP was received. In case of
                         local LSP update, the timestamp refers
                         to the local LSP update time.";
                    }

                    description
                     "List of LSP events.";
                }

                description
                 "This container lists the LSP reception events.
                 Local LSP modification are also contained in the
                 list.";
            }
            container database {
                container level-1 {
                    list lsp {
                        key lsp-id;

                        uses isis-database;
                        description

Litkowski               Expires December 26, 2014              [Page 39]
Internet-Draft                  isis-cfg                       June 2014

                         "List of LSPs in LSDB.";
                    }

                    description
                     "This container describes the list of LSPs
                     in the level-1 database.";
                }
                container level-2 {
                    list lsp {
                        key lsp-id;

                        uses isis-database;
                        description
                         "List of LSPs in LSDB.";
                    }

                    description
                     "This container describes the list of LSPs
                     in the level-2 database.";
                }
                description
                 "This container describes ISIS Link State
                  databases.";
            }
            container hostnames {

                list hostname {
                    key system-id;
                    leaf system-id {
                        type isis-system-id;
                        description
                         "This leaf describes the system-id
                         associated with the hostname.";
                    }
                    leaf hostname {

                        type string;
                        description
                         "This leaf describes the hostname
                          associated with the system ID.";
                    }
                    description
                     "List of system-id/hostname associations";
                }

                description
                 "This container describes the list
                 of binding between system-id and

Litkowski               Expires December 26, 2014              [Page 40]
Internet-Draft                  isis-cfg                       June 2014

                 hostnames.";
            }

            description
             "This container defines various ISIS states objects.";
        }
    }

    /* RPC methods */

    rpc clear-isis-adjacency {
        description
         "This RPC request clears a particular
          set of ISIS adjacencies. If the operation
          fails for ISIS internal reason, then
          error-tag and error-app-tag should be set
          to a meaningful value.";
        input {
            leaf routing-instance-name {
                type rt:routing-instance-state-ref;
                mandatory "true";
                description
                 "Name of the routing instance whose ISIS
                  information is being queried.

                  If the routing instance with name equal to the
                  value of this parameter doesn't exist, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag 'routing-instance-not-found'.";

            }
            leaf routing-protocol-instance-name {
                type isis-instance-state-ref;
                mandatory "true";
                description
                 "Name of the ISIS protocol instance whose ISIS
                  information is being queried.

                  If the ISIS instance with name equal to the
                  value of this parameter doesn't exist, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag
                  'routing-protocol-instance-not-found'.";
            }
            leaf isis-level {
                type isis-level;
                description

Litkowski               Expires December 26, 2014              [Page 41]
Internet-Draft                  isis-cfg                       June 2014

                 "ISIS level of the adjacency to be cleared.
                 If ISIS level is level-1-2, both level 1 and level 2
                 adjacencies would be cleared.

                 If the value provided is different from the one
                 authorized in the enum type, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag
                  'bad-isis-level'.
                 ";
            }
            leaf interface {
                type string;
                description
                 "Name of the ISIS interface.

                  If the ISIS interface with name equal to the
                  value of this parameter doesn't exist, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag
                  'isis-interface-not-found'.";
            }
        }
    }

    rpc clear-isis-database {
        description
         "This RPC request clears a particular
          ISIS database. If the operation
          fails for ISIS internal reason, then
          error-tag and error-app-tag should be set
          to a meaningful value.";
        input {
            leaf routing-instance-name {
                type rt:routing-instance-state-ref;
                mandatory "true";
                description
                 "Name of the routing instance whose ISIS
                  information is being queried.

                  If the routing instance with name equal to the
                  value of this parameter doesn't exist, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag 'routing-instance-not-found'.";

            }
            leaf routing-protocol-instance-name {

Litkowski               Expires December 26, 2014              [Page 42]
Internet-Draft                  isis-cfg                       June 2014

                type isis-instance-state-ref;
                mandatory "true";
                description
                 "Name of the ISIS protocol instance whose ISIS
                  information is being queried.

                  If the ISIS instance with name equal to the
                  value of this parameter doesn't exist, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag
                  'routing-protocol-instance-not-found'.";
            }
            leaf isis-level {
                type isis-level;
                description
                 "ISIS level of the adjacency to be cleared.
                 If ISIS level is level-1-2, both level 1 and level 2
                 adjacencies would be cleared.

                 If the value provided is different from the one
                 authorized in the enum type, then this
                  operation SHALL fail with error-tag 'data-missing'
                  and error-app-tag
                  'bad-isis-level'.
                 ";
            }
        }

    }

    /* Notifications */

    notification isis-adjacency-updown {
        leaf interface {
            type string;
            description
             "Describes the interface of the adjacency";
        }
        leaf neighbor {
            type string;
            description
             "Describes the name of the neighbor. If the
             name of the neighbor is not available, the
             field would be empty.";
        }
        leaf neighbor-system-id {

Litkowski               Expires December 26, 2014              [Page 43]
Internet-Draft                  isis-cfg                       June 2014

            type isis-system-id;
            description
             "Describes the system-id of the neighbor.";
        }
        leaf isis-level {
            type isis-level;
            description
             "Describes the ISIS level of the adjacency.";
        }
        leaf state {
            type enumeration {
                enum "Up" {
                    description
                     "This state describes that
                      adjacency is established.";
                }
                enum "Down" {
                    description
                     "This state describes that
                      adjacency is no more established.";
                }
            }
            description
             "This leaf describes the new state of the
              ISIS adjacency.";
        }
        leaf reason {
            type string;
            description
             "If the adjacency is going to DOWN,
             this leaf provides a reason for the adjacency
             going down. The reason is provided as a text.
             If the adjacency is going to UP, no reason is
             provided.";
        }
        description
          "This notification is sent when an ISIS adjacency
           moves to Up state or to Down state.";
    }

}

<CODE ENDS>

Litkowski               Expires December 26, 2014              [Page 44]
Internet-Draft                  isis-cfg                       June 2014

7.  Security Considerations

8.  Acknowledgements

9.  IANA Considerations

10.  Normative References

   [I-D.ietf-netmod-routing-cfg]
              Lhotka, L., "A YANG Data Model for Routing Management",
              draft-ietf-netmod-routing-cfg-15 (work in progress), May
              2014.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC6020]  Bjorklund, M., "YANG - A Data Modeling Language for the
              Network Configuration Protocol (NETCONF)", RFC 6020,
              October 2010.

Appendix A.  Example: NETCONF <get> Reply

   This section gives an example of a reply to the NETCONF <get> request
   for a device that implements the data model defined in this document.
   The example is written in XML.

<?xml version="1.0" encoding="cp1252"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <routing-state xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
        <routing-instance>
            <name>rtr1</name>
            <id>1</id>
            <router-id>192.0.2.1</router-id>
            <routing-protocols>
                <routing-protocol>
                    <name>ISIS1</name>
                    <type>isis</type>
                    <isis-state xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">
                        <adjacencies>
                            <adjacency>
                                <interface>eth0</interface>
                                <level>2</level>
                                <state>Up</state>
                            </adjacency>
                        </adjacencies>
                        <spf-log>
                            <event>
                                <id>18979</id>

Litkowski               Expires December 26, 2014              [Page 45]
Internet-Draft                  isis-cfg                       June 2014

                                <spf-type>full</spf-type>
                                <level>2</level>
                                <spf-delay>150</spf-delay>
                                <schedule-timestamp>1403612245</schedule-timestamp>
                                <start-timestamp>1403612399</start-timestamp>
                                <end-timestamp>1403612420</end-timestamp>
                                <trigger-lsp>
                                    <lsp>0000.01245.1245.01-01</lsp>
                                    <sequence>125458</sequence>
                                </trigger-lsp>
                            </event>
                        </spf-log>
                        <lsp-log>
                            <event>
                                <id>1245</id>
                                <level>2</level>
                                <lsp>
                                    <lsp>0000.01245.1245.01-01</lsp>
                                    <sequence>125458</sequence>
                                </lsp>
                                <received-timestamp></received-timestamp>
                            </event>
                        </lsp-log>
                        <database>
                            <level-2>
                                <lsp>
                                    <lsp-id>0000.01245.1245.01-01</lsp-id>
                                    <checksum>1245</checksum>
                                    <remaining-lifetime>45</remaining-lifetime>
                                    <sequence>125458</sequence>
                                    <attributes />
                                    <extended-is-neighbor>
                                        <neighbor>
                                            <neighbor-id>0000.01245.9999.00</neighbor-id>
                                            <metric>100</metric>
                                        </neighbor>
                                    </extended-is-neighbor>

                                    <protocol-supported>204<protocol-supported>

                                    <ipv4-addresses>192.168.0.2</ipv4-addresses>
                                    <extended-ipv4-reachability>
                                        <prefixes>
                                            <up-down>false</up-down>
                                            <ip-prefix>192.168.0.2</ip-prefix>
                                            <prefix-len>32</prefix-len>
                                            <metric>30490</metric>
                                            <tag>200</tag>

Litkowski               Expires December 26, 2014              [Page 46]
Internet-Draft                  isis-cfg                       June 2014

                                        </prefixes>
                                    </extended-ipv4-reachability>
                                    <dynamic-hostname>rtr1</dynamic-hostname>

                                </lsp>
                            </level-2>
                        </database>
                        <hostnames>
                            <hostname>
                                <system-id>0000.01245.9999.00</system-id>
                                <hostname>rtr1</hostname>
                            </hostname>
                        </hostnames>
                    </isis-state>
                </routing-protocol>
            </routing-protocols>
        </routing-instance>
        <ribs>
            <rib>
                <name>ipv4-master</name>
                <id>1</id>
                <address-family>v4ur:ipv4-unicast</address-family>
                <routes>
                    <route>
                        <id>124554657</id>
                        <outgoing-interface>eth0</outgoing-interface>
                        <source-protocol>isis</source-protocol>
                        <last-updated>2013-07-02T18:02:45+01:00</last-updated>
                        <destination-prefix xmlns="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing">
                        10.0.0.0/24</destination-prefix>
                        <metric xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">
                        750
                        </metric>
                        <route-type xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">l2-up-internal</route-type>

                    </route>
                </routes>

            </rib>
        </ribs>

    </routing-state>
    <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
        <routing-instance>
            <id>1</id>
            <router-id>192.0.2.1<router-id>
            <routing-protocols>
                <routing-protocol>

Litkowski               Expires December 26, 2014              [Page 47]
Internet-Draft                  isis-cfg                       June 2014

                    <name>ISIS1</name>
                    <type>isis</type>
                    <isis-cfg xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">
                        <isis-level>level-2</isis-level>
                        <nsap-address>49.0002.0000.01245.9999.00</nsap-address>
                        <lsp-lifetime>65535</lsp-lifetime>
                        <lsp-refresh>65000</lsp-refresh>
                        <authentication-key>my_password</authentication-key>
                        <authentication-type>plaintext</authentication-type>
                        <isis-multi-topology-cfg>
                            <ipv4-unicast>true</ipv4-unicast>
                        </isis-multi-topology-cfg>

                        <isis-level-2-cfg>
                            <metric-type>wide-only</metric-type>
                            <default-ipv4-unicast-metric>11111111</default-ipv4-unicast-metric>
                        </isis-level-2-cfg>
                        <interfaces>
                            <interface>
                                <name>eth0</name>
                                <lsp-interval>100</lsp-interval>
                                <csnp-interval>10</csnp-interval>
                                <interface-type>point-to-point</interface-type>
                                <level-2>
                                    <ipv4-unicast-metric>200</ipv4-unicast-metric>
                                </level-2>
                            </interface>
                            <interface>
                                <name>lo0</name>
                                <level-2>
                                    <ipv4-unicast-metric>1</ipv4-unicast-metric>
                                </level-2>
                                <passive>true</passive>
                            </interface>
                        </interfaces>
                    </isis-cfg>
                </routing-protocol>
            </routing-protocols>
        </routing-instance>
    </routing>
</data>

Author's Address

   Stephane Litkowski
   Orange

   Email: stephane.litkowski@orange.com

Litkowski               Expires December 26, 2014              [Page 48]