All Downloads are FREE. Search and download functionalities are using the official Maven repository.

[email protected] Maven / Gradle / Ivy

There is a newer version: 0.22.2
Show newest version
module ospf-topology {
    yang-version 1;
    namespace "urn:TBD:params:xml:ns:yang:ospf-topology";
    // replace with IANA namespace when assigned

    prefix "ospf";

    import network-topology {
        prefix "nt";
        revision-date 2013-10-21;
    }

    import l3-unicast-igp-topology {
        prefix "l3t";
        revision-date 2013-10-21;
    }
    import ietf-inet-types {
        prefix "inet";
        revision-date 2013-07-15;
    }
    import ted {
        prefix "ted";
        revision-date 2013-10-21;
    }

    organization "TBD";
    contact "TBD";
    description "OSPF Topology model";

    revision "2013-10-21" {
        description "Initial revision";
        reference "TBD";
    }

    typedef area-id {
        description "OSPF Area ID";
        type uint32;
    }

    grouping ospf-topology-type {
        container ospf {
            presence "indiates OSPF Topology";
        }
    }

    augment "/nt:network-topology/nt:topology/nt:topology-types/l3t:l3-unicast-igp-topology" {
        uses ospf-topology-type;
    }

    augment "/nt:network-topology/nt:topology/l3t:igp-topology-attributes" {
        when "../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
        container ospf-topology-attributes {
            leaf area-id {
                type area-id;
            }
        }
    }

    augment "/nt:network-topology/nt:topology/nt:node/l3t:igp-node-attributes" {
        when "../../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
        uses ospf-node-attributes;
    }

    augment "/nt:network-topology/nt:topology/nt:link/l3t:igp-link-attributes" {
        when "../../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
        uses ospf-link-attributes;
    }

    augment "/nt:network-topology/nt:topology/nt:node/l3t:igp-node-attributes/l3t:prefix" {
        when "../../../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
        uses ospf-prefix-attributes;
    }

    grouping ospf-node-attributes {
        container ospf-node-attributes {
            choice router-type {
                case abr {
                    leaf abr {
                        type empty;
                    }
                }
                case asbr {
                    leaf asbr {
                        type empty;
                    }
                }
                case internal {
                    leaf internal {
                        type empty;
                    }
                }
                case pseudonode {
                    leaf pseudonode {
                        type empty;
                    }
                }
            }
            leaf dr-interface-id {
                when "../router-type/pseudonode";
                description "For pseudonodes, DR interface-id";
                default "0";
                type uint32;
            }
            leaf-list multi-topology-id {
                description "List of Multi-Topology Identifier up-to 128 (0-127). RFC 4915";
                max-elements "128";

                type uint8 {
                    range "0..127";
                }
            }
            leaf capabilities {
                description "OSPF capabilities as bit vector. RFC 4970";
                type bits {
                    bit graceful-restart-capable {
                        position 0;
                    }
                    bit graceful-restart-helper {
                        position 1;
                    }
                    bit stub-router-support {
                        position 2;
                    }
                    bit traffic-engineering-support {
                        position 3;
                    }
                    bit point-to-point-over-lan {
                        position 4;
                    }
                    bit experimental-te {
                        position 5;
                    }
                }
            }
            container ted {
                uses ted:ted-node-attributes;
            }
        } // ospf
    } // ospf-node-attributes

    grouping ospf-link-attributes {
        container ospf-link-attributes {
            leaf multi-topology-id {
                type uint8 {
                    range "0..127";
                }
            }
            container ted {
                uses ted:ted-link-attributes;
            }
        }
    } // ospf-link-attributes

    grouping ospf-prefix-attributes {
        container ospf-prefix-attributes {

            leaf forwarding-address {
                when "../../l3t:l3-unicast-igp-topology/l3t:ospf/l3t:router-type/l3t:asbr";
                type inet:ipv4-address;
            }
        }
    }

    augment "/l3t:igp-node-event" {
        uses ospf-topology-type;
        uses ospf:ospf-node-attributes;
    }

    augment "/l3t:igp-link-event" {
        uses ospf-topology-type;
        uses ospf:ospf-link-attributes;
    }

    augment "/l3t:igp-prefix-event" {
        uses ospf-topology-type;
        uses ospf:ospf-prefix-attributes;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy