Cisco-IOS-XR-um-pool-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR pool package configuration. This YANG module augments th...

  • Version: 2021-05-10

    Cisco-IOS-XR-um-pool-cfg@2021-05-10


    
      module Cisco-IOS-XR-um-pool-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-pool-cfg";
    
        prefix um-pool-cfg;
    
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-um-snmp-server-cfg {
          prefix a1;
        }
        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 pool package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-05-10" {
          description "Initial release";
        }
    
        semver:module-version "1.0.0";
    
        container pool {
          description
            "Distributed Address Pool Service";
          container vrfs {
            description "Specify VRF name";
            list vrf {
              key "vrf-name";
              description "Enter the VRF name";
              leaf vrf-name {
                type union {
                  type string {
                    pattern "all";
                  }
                  type string {
                    pattern "default";
                  }
                  type xr:Cisco-ios-xr-string {
                    length "1..63";
                  }
                }
                description "Enter the VRF name";
              }
    
              container ipv6s {
                description
                  "Specify IPv6 Pool name";
                list ipv6 {
                  key "pool-name";
                  description
                    "Enter the IPv6 Pool name";
                  leaf pool-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..63";
                    }
                    description
                      "Enter the IPv6 Pool name";
                  }
    
                  container address-ranges {
                    description
                      "Specify address range for allocation";
                    list address-range {
                      must
                        "last-address-in-range";
                      key "first-address-in-range";
                      description
                        "Specify address range for allocation";
                      leaf first-address-in-range {
                        type inet:ipv6-address-no-zone;
                        description
                          "Specify address range for allocation";
                      }
    
                      leaf last-address-in-range {
                        type inet:ipv6-address-no-zone;
                        description
                          "Enter the last IPv6 address in range";
                      }
    
                      container block {
                        must
                          "../last-address-in-range";
                        presence
                          "Indicates a block node is configured.";
                        description
                          "block address-range";
                      }  // container block
                    }  // list address-range
                  }  // container address-ranges
    
                  container prefix-ranges {
                    description
                      "Specify prefix range for allocation";
                    list prefix-range {
                      must
                        "last-prefix-in-range";
                      key "first-prefix-in-range";
                      description
                        "Specify prefix range for allocation";
                      leaf first-prefix-in-range {
                        type inet:ipv6-address-no-zone;
                        description
                          "Specify prefix range for allocation";
                      }
    
                      leaf last-prefix-in-range {
                        type inet:ipv6-address-no-zone;
                        description
                          "Enter the last IPv6 prefix in range";
                      }
    
                      container block {
                        must
                          "../last-prefix-in-range";
                        presence
                          "Indicates a block node is configured.";
                        description
                          "block address-range";
                      }  // container block
                    }  // list prefix-range
                  }  // container prefix-ranges
    
                  container networks {
                    description
                      "Specify network for allocation";
                    list network {
                      key "address";
                      description
                        "Specify network for allocation";
                      leaf address {
                        type inet:ipv6-address-no-zone;
                        description
                          "Specify network for allocation";
                      }
    
                      leaf length {
                        type uint32 {
                          range "0..128";
                        }
                        mandatory true;
                        description
                          "Specify network address mask length";
                      }
    
                      container block {
                        presence
                          "Indicates a block node is configured.";
                        description
                          "block address-range";
                      }  // container block
                    }  // list network
                  }  // container networks
    
                  leaf prefix-length {
                    type uint32 {
                      range "1..128";
                    }
                    description
                      "Specify prefix-length to be used";
                  }
    
                  container excludes {
                    description
                      "Exclude IPv6 addresses / prefixes";
                    list exclude {
                      key "first-address-in-range";
                      description
                        "Exclude IPv6 addresses / prefixes";
                      leaf first-address-in-range {
                        type inet:ipv6-address-no-zone;
                        description
                          "Exclude IPv6 addresses / prefixes";
                      }
    
                      leaf last-address-in-range {
                        type inet:ipv6-address-no-zone;
                        description
                          "Last IPv6 address / prefix in range";
                      }
                    }  // list exclude
                  }  // container excludes
    
                  container utilization-mark {
                    description
                      "Specify utilization mark";
                    leaf high {
                      type uint32 {
                        range "0..100";
                      }
                      must "../low";
                      description
                        "Specify high mark";
                    }
    
                    leaf low {
                      type uint32 {
                        range "0..100";
                      }
                      must "../high";
                      description
                        "Specify low mark";
                    }
                  }  // container utilization-mark
                }  // list ipv6
              }  // container ipv6s
    
              container ipv4s {
                description
                  "Specify IPv4 Pool name";
                list ipv4 {
                  when "../../vrf-name != 'all'";
                  key "ipv4-name";
                  description
                    "Specify IPv4 Pool name";
                  leaf ipv4-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..63";
                    }
                    description
                      "Specify IPv4 Pool name";
                  }
    
                  container networks {
                    description
                      "Specify network for allocation";
                    list network {
                      key "address";
                      description
                        "Specify network for allocation";
                      leaf address {
                        type inet:ipv4-address-no-zone;
                        description
                          "Specify network for allocation";
                      }
    
                      leaf length {
                        type uint32 {
                          range "0..32";
                        }
                        mandatory true;
                        description
                          "Specify network address mask length";
                      }
    
                      leaf default-router {
                        type inet:ipv4-address-no-zone;
                        description
                          "Default Gateway for subnet";
                      }
    
                      container block {
                        presence
                          "Indicates a block node is configured.";
                        description
                          "block subnet test";
                      }  // container block
                    }  // list network
                  }  // container networks
    
                  container excludes {
                    description
                      "Exclude addresses";
                    list exclude {
                      key "first-address-in-range";
                      description
                        "Exclude addresses";
                      leaf first-address-in-range {
                        type inet:ipv4-address-no-zone;
                        description
                          "Exclude addresses";
                      }
    
                      leaf last-address-in-range {
                        type inet:ipv4-address-no-zone;
                        description
                          "Last exclude address in range";
                      }
                    }  // list exclude
                  }  // container excludes
    
                  container utilization-mark {
                    description
                      "Specify utilization mark";
                    leaf high {
                      type uint32 {
                        range "0..100";
                      }
                      must "../low";
                      description
                        "Specify high mark";
                    }
    
                    leaf low {
                      type uint32 {
                        range "0..100";
                      }
                      must "../high";
                      description
                        "Specify low mark";
                    }
                  }  // container utilization-mark
    
                  container address-ranges {
                    description
                      "Specify address range for allocation";
                    list address-range {
                      must
                        "last-address-in-range";
                      key "first-address-in-range";
                      description
                        "Specify address range for allocation";
                      leaf first-address-in-range {
                        type inet:ipv4-address-no-zone;
                        description
                          "Specify address range for allocation";
                      }
    
                      leaf last-address-in-range {
                        type inet:ipv4-address-no-zone;
                        description
                          "Enter the last address in range";
                      }
    
                      container block {
                        must
                          "../last-address-in-range";
                        presence
                          "Indicates a block node is configured.";
                        description
                          "block address-range";
                      }  // container block
                    }  // list address-range
                  }  // container address-ranges
                }  // list ipv4
              }  // container ipv4s
            }  // list vrf
          }  // container vrfs
    
          container onfly {
            description
              "Allow to delete/edit pool and release subscriber IP for ipv4";
            container pppoe {
              presence
                "Indicates a pppoe node is configured.";
              description
                "Enable onfly feature for pppoe subscriber";
            }  // container pppoe
          }  // container onfly
        }  // container pool
      }  // module Cisco-IOS-XR-um-pool-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.