ISIS segment routing management.
Version: 2020-03-09
module huawei-isis-sr { yang-version 1; namespace "urn:huawei:yang:huawei-isis-sr"; prefix isis-sr; import huawei-ifm { prefix ifm; } import huawei-network-instance { prefix ni; } import huawei-isis { prefix isis; } import huawei-routing-policy { prefix rtp; } import huawei-segment-routing { prefix sr; } import huawei-extension { prefix ext; } import ietf-inet-types { prefix inet; } organization "Huawei Technologies Co., Ltd."; contact "Huawei Industrial Base Bantian, Longgang Shenzhen 518129 People's Republic of China Website: http://www.huawei.com Email: support@huawei.com"; description "ISIS segment routing management."; revision "2020-03-09" { description "Modify the description."; reference "Huawei private."; } revision "2020-03-03" { description "Modify the description."; reference "Huawei private."; } revision "2020-02-04" { description "Modify the description."; reference "Huawei private."; } revision "2019-04-04" { description "Initial revision."; reference "Huawei private."; } ext:task-name "isis"; typedef lsp-trigger-type { type enumeration { enum "host" { value 0; description "Trigger SR LSP establishment for 32 bit host routes."; } enum "none" { value 2; description "Do not trigger SR LSP establishment."; } enum "ip-prefix" { value 4; description "Trigger SR LSP establishment based on an IP prefix list."; } } description "ISIS SR LSP trigger type."; } typedef prefix-sid-type { type enumeration { enum "absolute" { value 1; description "Absolute value."; } enum "index" { value 2; description "Index."; } } description "ISIS prefix sid type."; } augment /ni:network-instance/ni:instances/ni:instance/isis:isis/isis:sites/isis:site { description "ISIS SRGB augment to ISIS."; container srgbs { when "../../../../sr:segment-routing/sr:enable='true' and (../isis:cost-style='wide' or ../isis:cost-style='transition' or ../isis:cost-style='wtransition')"; description "List of segment routing global block."; list srgb { key "lower-bound upper-bound"; max-elements 1; description "Configure segment routing global block."; leaf lower-bound { type uint32 { range "16..1048575"; } must "../lower-bound<../upper-bound"; description "SRGB begin value."; } leaf upper-bound { type uint32 { range "16..1048575"; } must "../lower-bound<../upper-bound"; description "SRGB end value."; } } // list srgb } // container srgbs } augment /ni:network-instance/ni:instances/ni:instance/isis:isis/isis:sites/isis:site/isis:afs/isis:af { description "ISIS segment routing augment to ISIS."; container segment-routing { when "../isis:type='afipv4'"; description "Configure ISIS segment routing."; leaf enable { type boolean; must "../enable='false' or ../../../../../../../ni:name='_public_' and ../../../../../../../sr:segment-routing/sr:enable='true' and (../../../../isis:cost-style='wide' or ../../../../isis:cost-style='transition' or ../../../../isis:cost-style='wtransition')"; default "false"; description "Enable/disable segment routing MPLS."; } leaf auto-adj-sid { when "../enable='true'"; type boolean; default "true"; description "Enable/disable apply adj label when build adjency."; } leaf adv-static-sid { when "../enable='true'"; type boolean; default "false"; description "Enable/disable ISIS to advertise static SID capabilities, support static adjacency SID distribution in LSP."; } container binding { when "../enable='true'"; description "Configure ISIS segment routing."; leaf receive { type boolean; default "true"; description "Enable/disable receive remote prefix SID mappings."; } leaf advertise { type boolean; default "false"; description "Enable/disable advertise active local prefix SID mappings."; } } // container binding container lsp-trigger { when "../enable='true'"; description "Configure the SR LSP trigger command."; leaf type { type lsp-trigger-type; must "../type!='ip-prefix' or ../ip-prefix"; default "host"; description "Set the SR LSP trigger type."; } leaf ip-prefix { when "../type='ip-prefix'"; type leafref { path "/rtp:routing-policy/rtp:ipv4-prefix-filters/rtp:ipv4-prefix-filter/rtp:name"; } description "Set the IP prefix name."; } } // container lsp-trigger container inter-level-protect { when "../../isis:frr/isis:enable='true' and ../isis-sr:enable='true'"; description "Configure Inter-Level-Protect."; leaf enable-level1 { type boolean; default "false"; description "Enable/disable Level 1 Inter-Level-Protect."; } leaf preferred { type boolean; must "../enable-level1='true' or ../preferred='false'"; default "false"; description "Enable/disable Inter-Level-Protect Preferred."; } } // container inter-level-protect container sbfd-source { when "../enable='true'"; description "Configure source address for Seamless Bidirectional Forwarding Detection."; leaf address { type inet:ipv4-address-no-zone; description "Source address. Only permit A/B/C Class address and exclude invalid IP addresses in the 0.1.1.1 and 127 network segments."; } } // container sbfd-source } // container segment-routing } augment /ni:network-instance/ni:instances/ni:instance/isis:isis/isis:sites/isis:site/isis:avoid-micro-loop { description "ISIS avoid-microloop segment routing augment to ISIS."; leaf sr-enable-flag { type boolean; must "../sr-enable-flag='false' or ../../isis:afs/isis:af[isis:type='afipv4']/isis-sr:segment-routing/isis-sr:enable='true'"; default "false"; description "Enable/disable SR avoid microloop. Depend on segment routing MPLS."; } leaf sr-new-update-delay { type uint16 { range "1000..60000"; } units "ms"; default "5000"; description "Set the route delivery delay for SR avoid microloop. Depend on segment routing MPLS."; } } augment /ni:network-instance/ni:instances/ni:instance/isis:isis/isis:sites/isis:site/isis:circuits/isis:circuit/isis:afs/isis:af { description "ISIS prefix sid augment to ISIS."; container prefix-sids { when "../../../../../isis:afs/isis:af[isis:type='afipv4']/isis-sr:segment-routing/isis-sr:enable='true' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/../../../isis:name]/ifm:type='LoopBack' and ../isis:type='afipv4'"; description "List of prefix segment ID. Only on the Loopback interface."; list prefix-sid { key "algorithm"; unique "type label"; description "Configure prefix segment ID."; leaf algorithm { type uint8 { range "0 | 128..255"; } must "../algorithm=0 or (../algorithm!=0 and ../../../../../../../isis:fad-bindings/isis:fad-binding[isis:flex-algo-id=current()])"; description "Prefix sid algorithm."; } leaf type { type prefix-sid-type; mandatory true; description "Set the type of prefix sid."; } leaf label { type uint32 { range "0..1048575"; } mandatory true; description "Set the label of prefix sid."; } leaf node-flag { type boolean; default "true"; description "Enable/disable the node flag."; } } // list prefix-sid } // container prefix-sids } } // module huawei-isis-sr
© 2023 YumaWorks, Inc. All rights reserved.