module isis-topology { yang-version 1; namespace "urn:TBD:params:xml:ns:yang:network:isis-topology"; // replace with IANA namespace when assigned prefix "isis"; import network-topology { prefix nt; revision-date 2013-10-21; } import l3-unicast-igp-topology { prefix igp; revision-date 2013-10-21; } import ted { prefix ted; revision-date 2013-10-21; } organization "TBD"; contact "TBD"; description "ISIS Topology model"; revision "2013-10-21" { description "Initial version"; } typedef iso-system-id { description "ISO System ID. RFC 1237"; type string { pattern '[0-9a-fA-F]{4}(\.[0-9a-fA-F]{4}){2}'; } } typedef iso-pseudonode-id { description "ISO pseudonode id for broadcast network"; type string { pattern '[0-9a-fA-F]{2}'; } } typedef iso-net-id { description "ISO NET ID. RFC 1237"; type string { pattern '[0-9a-fA-F]{2}((\.[0-9a-fA-F]{4}){6})'; } } grouping isis-topology-type { container isis { presence "Indicates ISIS Topology"; } } augment "/nt:network-topology/nt:topology/nt:topology-types/igp:l3-unicast-igp-topology" { uses isis-topology-type; } augment "/nt:network-topology/nt:topology/igp:igp-topology-attributes" { when "../nt:topology-types/igp:l3-unicast-igp-topology/isis"; container isis-topology-attributes { leaf net { type iso-net-id; } } } augment "/nt:network-topology/nt:topology/nt:node/igp:igp-node-attributes" { when "../../nt:topology-types/igp:l3-unicast-igp-topology/isis"; uses isis-node-attributes; } augment "/nt:network-topology/nt:topology/nt:link/igp:igp-link-attributes" { when "../../nt:topology-types/igp:l3-unicast-igp-topology/isis"; uses isis-link-attributes; } grouping isis-node-attributes { container isis-node-attributes { container iso { leaf iso-system-id { type iso-system-id; } leaf iso-pseudonode-id { default "00"; type iso-pseudonode-id; } } leaf-list net { max-elements 3; type iso-net-id; } leaf-list multi-topology-id { description "List of Multi Topology Identifier upto 128 (0-127). RFC 4915"; max-elements "128"; type uint8 { range "0..127"; } } choice router-type { case level-2 { leaf level-2 { type empty; } } case level-1 { leaf level-1 { type empty; } } case level-1-2 { leaf level-1-2 { type empty; } } } container ted { uses ted:ted-node-attributes; } } } grouping isis-link-attributes { container isis-link-attributes { leaf multi-topology-id { type uint8 { range "0..127"; } } container ted { uses ted:ted-link-attributes; } } } augment "/igp:igp-node-event" { uses isis-topology-type; uses isis-node-attributes; } augment "/igp:igp-link-event" { uses isis-topology-type; uses isis-link-attributes; } } // Module isis-topology