Cisco-IOS-XR-segment-routing-ms-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR segment-routing-ms package configuration. This module co...

  • Version: 2019-06-19

    Cisco-IOS-XR-segment-routing-ms-cfg@2019-06-19


    
      module Cisco-IOS-XR-segment-routing-ms-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-segment-routing-ms-cfg";
    
        prefix segment-routing-ms-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR segment-routing-ms package configuration.
         
         This module contains definitions
         for the following management objects:
           sr: Segment Routing
         
         Copyright (c) 2013-2019 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2019-06-19" {
          description
            "Additional options added to configuration model.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2017-09-07" {
          description
            "Fixed type translation error.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "1.0.1";
        semver:module-version "1.0.0";
    
        typedef Srms-mi-flag {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable flag";
            }
            enum "enable" {
              value 1;
              description "Enable flag";
            }
          }
          description "Srms mi flag";
        }
    
        typedef Srms-address-family {
          type enumeration {
            enum "ipv4" {
              value 1;
              description "IP version 4";
            }
            enum "ipv6" {
              value 2;
              description "IP version 6";
            }
          }
          description "Srms address family";
        }
    
        typedef Srlb-string {
          type string {
            pattern "(srlb_default)";
          }
          description
            "srlb_default:Default SRLB block";
        }
    
        typedef Sid-type-list {
          type enumeration {
            enum "absolute" {
              value 1;
              description "Absolute SID";
            }
            enum "index" {
              value 2;
              description "Index SID";
            }
          }
          description "Sid type list";
        }
    
        container sr {
          description "Segment Routing";
          container local-block {
            presence
              "Indicates a local-block node is configured.";
            description
              "Segment Routing Local Block of Labels";
            leaf lower-bound {
              type uint32 {
                range "15000..1048574";
              }
              mandatory true;
              description "SRLB Lower Bound";
            }
    
            leaf upper-bound {
              type uint32 {
                range "15001..1048575";
              }
              mandatory true;
              description "SRLB Upper Bound";
            }
          }  // container local-block
    
          container mappings {
            description "Mapping Server";
            list mapping {
              key "af ip mask";
              description
                "IP prefix to SID mapping";
              leaf af {
                type Srms-address-family;
                description "Address Family";
              }
    
              leaf ip {
                type inet:ip-address-no-zone;
                description "IP prefix";
              }
    
              leaf mask {
                type uint32 {
                  range "1..128";
                }
                description "Mask";
              }
    
              leaf sid-start {
                type uint32 {
                  range "0..1048575";
                }
                description
                  "Start of SID index range";
              }
    
              leaf sid-range {
                type uint32 {
                  range "0..65535";
                }
                description
                  "Range (number of SIDs)";
              }
    
              leaf flag-attached {
                type Srms-mi-flag;
                description
                  "Enable/Disable Attached flag";
              }
            }  // list mapping
          }  // container mappings
    
          container adjacency-sid {
            description
              "Segment Routing Adjacency SID";
            container interfaces {
              description
                "Segment Routing Adjacency SID Interface Table";
              list interface {
                key "interface";
                description
                  "Segment Routing Adjacency SID Interface";
                container address-families {
                  description
                    "Segment Routing Adjacency SID Interface
                   Address Family Table";
                  list address-family {
                    key "address-family";
                    description
                      "Segment Routing Adjacency SID Interface
                     Address Family";
                    container next-hops {
                      description
                        "Segment Routing Adjacency SID Interface
                       Address Family NextHop Table";
                      list next-hop {
                        must
                          "(count(../next-hop)=1) or ((count(../next-hop[ip-addr='0.0.0.0'])=0) and (count(../next-hop[ip-addr='::0'])=0))";
                        key "ip-addr";
                        unique "l2-adjacency-sid/sid-type l2-adjacency-sid/index-sid l2-adjacency-sid/absolute-sid l2-adjacency-sid/srlb";
                        description
                          "Segment Routing Adjacency SID Interface
                         Address Family NextHop, use a single
                         ANYADDR (0.0.0.0 or ::) NextHop for point
                         to point links";
                        container l2-adjacency-sid {
                          description
                            "L2 Adjacency SID type and value";
                          leaf sid-type {
                            type Sid-type-list;
                            description
                              "SID type";
                          }
    
                          leaf absolute-sid {
                            when
                              "../sid-type = 'absolute'" {
                              description
                                "../SIDType = absolute";
                            }
                            type uint32 {
                              range
                                "15000..1048575";
                            }
                            description
                              "SID value";
                          }
    
                          leaf index-sid {
                            when
                              "../sid-type = 'index'" {
                              description
                                "../SIDType = index";
                            }
                            type uint32 {
                              range "0..1048575";
                            }
                            description
                              "SID value";
                          }
    
                          leaf srlb {
                            when
                              "../sid-type = 'absolute' or ../sid-type = 'index'" {
                              description
                                "../SIDType = absolute or ../SIDType =
                               index";
                            }
                            type Srlb-string;
                            mandatory true;
                            description
                              "SRLB block name";
                          }
                        }  // container l2-adjacency-sid
    
                        leaf ip-addr {
                          type inet:ip-address-no-zone;
                          description
                            "NextHop IP address";
                        }
                      }  // list next-hop
                    }  // container next-hops
    
                    leaf address-family {
                      type Srms-address-family;
                      description
                        "Address Family";
                    }
                  }  // list address-family
                }  // container address-families
    
                leaf interface {
                  type xr:Interface-name;
                  description "Interface name";
                }
              }  // list interface
            }  // container interfaces
          }  // container adjacency-sid
    
          container global-block {
            presence
              "Indicates a global-block node is configured.";
            description
              "Global Block Segment Routing";
            leaf lower-bound {
              type uint32 {
                range "16000..1048574";
              }
              mandatory true;
              description "SRGB Lower Bound";
            }
    
            leaf upper-bound {
              type uint32 {
                range "16001..1048575";
              }
              mandatory true;
              description "SRGB Upper Bound";
            }
          }  // container global-block
    
          leaf enable {
            type empty;
            description "enable SR";
          }
        }  // container sr
      }  // module Cisco-IOS-XR-segment-routing-ms-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.