Cisco-IOS-XE-wireless-flex-cfg

Model for managing flex configurations Copyright (c) 2016-2020 by Cisco Systems, Inc. All rights reserved.

  • Version: 2021-07-01

    Cisco-IOS-XE-wireless-flex-cfg@2021-07-01


    
      module Cisco-IOS-XE-wireless-flex-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XE-wireless-flex-cfg";
    
        prefix wireless-flex-cfg;
    
        import Cisco-IOS-XE-wireless-apf-cfg {
          prefix wireless-apf-cfg;
        }
        import Cisco-IOS-XE-wireless-enum-types {
          prefix wireless-enum-types;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import cisco-semver {
          prefix cisco-semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
    
         Postal: 170 W Tasman Drive
         San Jose, CA 95134
    
         Tel: +1 1800 553-NETS
    
         E-mail: cs-yang@cisco.com";
    
        description
          "Model for managing flex configurations
         Copyright (c) 2016-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-07-01" {
          description
            "- Added flex local auth password constraints";
          reference
            "9.0.0";
    
        }
    
        revision "2021-03-01" {
          description
            "- Add ASCII 32-126 and leading/trailing spaces restriction for flex profile name";
          reference
            "8.0.0";
    
        }
    
        revision "2020-11-01" {
          description
            "- Added DHCP broadcast configuration under flex profile";
          reference
            "7.2.0";
    
        }
    
        revision "2020-07-01" {
          description
            "- Added mDNS flex profile name configuration
           - Added ingress and egress ACL for vlan-acl mapping under flex profile
           - Added IP overlap configuration
           - Deprecated acl-name under client VLAN (use acl-name-in/acl-name-out)
           - Added ACL constraints (vlan-acl mappings under flex profile)";
          reference
            "7.1.0";
    
        }
    
        revision "2020-03-01" {
          description
            "- Added a constraint on leaf vlan-id
           - Added validation to disallow IPv4/IPv6 default ACLs";
          reference
            "7.0.0";
    
        }
    
        revision "2019-11-01" {
          description
            "- Added Radius server group name for accounting
           - Added umbrella-profile under flex profile
           - Marked VLAN-ACLs obsolete";
          reference
            "6.0.0";
    
        }
    
        revision "2019-05-01" {
          description "Added semantic version";
          reference
            "5.1.0";
    
        }
    
        revision "2019-02-12" {
          description
            "Removed Unsupported multicast overridden-interface from flex profile";
          reference
            "5.0.0";
    
        }
    
        revision "2019-02-11" {
          description
            "- Removed unused RLAN related leaves
           - Changed range constraint and default value of native-vlan-id
           - Restrict password type options available for local user under FLEX profile
           - Semantical and default value cleanup and
             moved RLAN configuration related entries to new config model
           - Change type of boolean leafs of security parameters to empty
           - Leaf rename: is-punt to is-cwa.";
          reference
            "4.0.0";
    
        }
    
        revision "2018-06-05" {
          description
            "- Add constraints
           - Password encryption type configuration";
          reference
            "3.0.0";
    
        }
    
        revision "2018-03-08" {
          description
            "Add remote LAN configuration";
          reference
            "2.1.0";
    
        }
    
        revision "2018-01-24" {
          description
            "The first generally available version";
          reference
            "2.0.0";
    
        }
    
        revision "2017-05-05" {
          description "Initial revision";
          reference
            "1.0.0";
    
        }
    
        cisco-semver:module-version "9.0.0";
        cisco-semver:module-version "8.0.0";
        cisco-semver:module-version "7.2.0";
        cisco-semver:module-version "7.1.0";
        cisco-semver:module-version "7.0.0";
        cisco-semver:module-version "6.0.0";
        cisco-semver:module-version "5.1.0";
        cisco-semver:module-version "5.0.0";
        cisco-semver:module-version "4.0.0";
        cisco-semver:module-version "3.0.0";
        cisco-semver:module-version "2.1.0";
        cisco-semver:module-version "2.0.0";
        cisco-semver:module-version "1.0.0";
    
        container flex-cfg-data {
          description
            "Yang model for configuring site";
          container flex-policy-entries {
            description
              "Flex policy profile configuration";
            list flex-policy-entry {
              key "policy-name";
              description
                "Flex profile name mapped to the site tag";
              leaf policy-name {
                type string {
                  pattern '[!-~]([ -~]*[!-~])?';
                }
                description
                  "Name of the flex profile";
              }
    
              leaf description {
                type string;
                description
                  "Description for the flex profile";
              }
    
              leaf eap-fast-profile-name {
                type string;
                description
                  "EAP fast profile used for local auth";
              }
    
              leaf radius-server-group-name {
                type string;
                description
                  "Radius server group name for authentication";
              }
    
              leaf fallback-radio-shut {
                type boolean;
                default "false";
                description
                  "Whether Fallback Radio Shut feature is enabled for the flexconnect Access Points connected to the Wireless LAN Controller";
              }
    
              leaf arp-caching {
                type boolean;
                default "true";
                description
                  "Whether ARP cache feature is enabled for the flexconnect Access Points connected to the Wireless LAN Controller";
              }
    
              leaf cts-inline-tagging {
                type boolean;
                default "false";
                description
                  "Whether CTS inline tagging feature is enabled for the flexconnect Access Points connected to the Wireless LAN Controller";
              }
    
              leaf cts-rolebased-enforce {
                type boolean;
                default "false";
                description
                  "Whether CTS rolebased enforcement feature is enabled for flexconnect Access Points connected to the Wireless LAN Controller";
              }
    
              leaf cts-profile-name {
                type string;
                default "default-sxp-profile";
                description
                  "CTS SXP profile name";
              }
    
              leaf join-min-latency {
                type boolean;
                default "false";
                description
                  "REAP AP should join controller with smallest latency";
              }
    
              leaf radius-enable {
                type boolean;
                default "true";
                description
                  "Enable or Disable RADIUS";
              }
    
              leaf vlan-enable {
                type boolean;
                default "true";
                description
                  "Availability of Native VLAN configured on this REAP";
              }
    
              leaf is-home-ap-enable {
                type boolean;
                default "false";
                description
                  "APs connected to this profile/group are used as Home APs";
              }
    
              leaf is-radio-backhaul {
                type boolean;
                default "false";
                description
                  "Enable or Disable WLAN on backhaul radio";
              }
    
              leaf is-resilient-mode {
                type boolean;
                default "false";
                description
                  "Enable or Disable Standalone mode support on a REAP AP.";
              }
    
              leaf efficient-ap-upgrade-enable {
                type boolean;
                default "true";
                description
                  "Efficient AP image upgrade is enabled";
              }
    
              leaf http-proxy-ip {
                type inet:ip-address;
                default "0.0.0.0";
                description
                  "HTTP proxy Ip address";
              }
    
              container security {
                description
                  "Flex policy security parameters";
                leaf is-peap {
                  type empty;
                  description
                    "Enable or Disable Protected Extensible Authentication Protocol(PEAP)";
                }
    
                leaf is-leap {
                  type empty;
                  description
                    "Enable or Disable Lightweight Extensible Authentication Protocol(LEAP)";
                }
    
                leaf is-eap {
                  type empty;
                  description
                    "Enable or Disable Extensible Authentication Protocol(EAP)";
                }
    
                leaf is-tls {
                  type empty;
                  description
                    "Enable or Disable Transport Layer Security(TLS)";
                }
              }  // container security
    
              leaf native-vlan-id {
                type uint32 {
                  range "1 .. 4094";
                }
                default "1";
                description
                  "Native VLAN ID for the particular AP";
              }
    
              leaf slave-max-retry-count {
                type uint32;
                default "0";
                description
                  "Maximum retries the slave has to undertake to start the download from the master in the HREAP group";
              }
    
              leaf http-proxy-port {
                type uint16 {
                  range "0 .. 65535";
                }
                default "0";
                description "HTTP proxy port";
              }
    
              container vlan-acls {
                status obsolete;
                description "VLAN ACLs";
                list vlan-acl {
                  key "vlan-id";
                  description
                    "List of VLAN ACLs";
                  leaf vlan-id {
                    type uint32;
                    description
                      "VLAN ID to be mapped to the ACL for the REAP group";
                  }
    
                  leaf ingress-acl-name {
                    type string;
                    default "";
                    description
                      "Name of the ingress Access Control List for the vlan-acl mapping";
                  }
    
                  leaf egress-acl-name {
                    type string;
                    default "";
                    description
                      "Name of the egress Access Control List for the vlan-acl mapping";
                  }
                }  // list vlan-acl
              }  // container vlan-acls
    
              container policy-acls {
                description "Policy ACLs";
                list policy-acl {
                  key "acl-name";
                  description
                    "List of Policy ACLs";
                  leaf acl-name {
                    type string;
                    must
                      "../acl-name != 'preauth_v4'" {
                      error-message
                        "Default ACL preauth_v4 is not allowed";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "../acl-name != 'preauth_v6'" {
                      error-message
                        "Default ACL preauth_v6 is not allowed";
                      error-app-tag
                        "must-violation";
                    }
                    description
                      "Name of the webpolicy Access Control List(ACL) to be mapped to the REAP group";
                  }
    
                  leaf is-cwa {
                    type boolean;
                    default "false";
                    description
                      "Enable or Disable central webauth for this ACL.";
                  }
    
                  leaf urlfilterlist-name {
                    type string;
                    description
                      "Mapping of IPv4/IPv6 ACL name to url filter list this ACL.";
                  }
                }  // list policy-acl
              }  // container policy-acls
    
              container local-auth-users {
                description "Local auth users";
                list local-auth-user {
                  key "user-name";
                  description
                    "List of Local auth users";
                  leaf user-name {
                    type string;
                    description
                      "User name for this group, used for authenticating a client associated to an AP within the group";
                  }
    
                  leaf password {
                    type string;
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (not((contains(current(), 'cisco')) or (contains(current(), 'c!sco')) or
     (contains(current(), 'ci$co')) or (contains(current(), 'c1$co')) or
     (contains(current(), 'c1sco')) or (contains(current(), 'c!$co')) or
     (contains(current(), 'Cisco')) or (contains(current(), 'C!sco')) or
     (contains(current(), 'Ci$co')) or (contains(current(), 'C1$co')) or
     (contains(current(), 'C1sco')) or (contains(current(), 'C!$co')) or
     (contains(current(), 'CISCO')) or (contains(current(), 'C1SCO')) or
     (contains(current(), 'C!SCO')) or (contains(current(), 'C!$CO')) or
     (contains(current(), 'CISC0')) or (contains(current(), 'cisc0')) or
     (contains(current(), 'Cisc0')) or (contains(current(), 'c!$c0')) or
     (contains(current(), 'C!$c0')) or (contains(current(), 'C1$c0')) or
     (contains(current(), 'c1$c0')) or (contains(current(), 'C1sc0')) or
     (contains(current(), 'c1sc0')) or (contains(current(), 'ciscO')) or
     (contains(current(), 'CiscO')) or (contains(current(), 'c1scO')) or
     (contains(current(), 'c!scO')) or (contains(current(), 'c1$cO')) or
     (contains(current(), 'C1scO')) or (contains(current(), 'c!$cO')) or
     (contains(current(), 'ci$cO')) or (contains(current(), 'C!scO')))))" {
                      error-message
                        "Flex local auth password should not contain default password e.g., cisco, Cisco, c!sco, ci$co, c!sco";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (not(
     (contains(current(), 'ocsic')) or (contains(current(), 'ocs!c')) or
     (contains(current(), 'oc$ic')) or (contains(current(), 'oc$1c')) or
     (contains(current(), 'ocs1c')) or (contains(current(), 'oc$!c')) or
     (contains(current(), 'ocsiC')) or (contains(current(), 'ocs!C')) or
     (contains(current(), 'oc$iC')) or (contains(current(), 'oc$1C')) or
     (contains(current(), 'ocs1C')) or (contains(current(), 'oc$!C')) or
     (contains(current(), 'OCSIC')) or (contains(current(), 'OCS1C')) or
     (contains(current(), 'OCS!C')) or (contains(current(), 'OC$!C')) or
     (contains(current(), '0CSIC')) or (contains(current(), '0csic')) or
     (contains(current(), '0csiC')) or (contains(current(), '0c$!c')) or
     (contains(current(), '0c$!C')) or (contains(current(), '0c$1C')) or
     (contains(current(), '0c$1c')) or (contains(current(), '0cs1C')) or
     (contains(current(), '0cs1c')) or (contains(current(), 'Ocs1c')) or
     (contains(current(), 'Oc$1C')) or (contains(current(), 'Ocsic')) or
     (contains(current(), 'Ocs!c')) or (contains(current(), 'Oc$iC')) or
     (contains(current(), 'OcsiC')) or (contains(current(), 'Oc$!C')))))" {
                      error-message
                        "Flex local auth password should not contain reverse default password e.g., ocsic, oc$ic";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (contains(current(), 'a')) or (contains(current(), 'b')) or
    (contains(current(), 'c')) or (contains(current(), 'd')) or
    (contains(current(), 'e')) or (contains(current(), 'f')) or
    (contains(current(), 'g')) or (contains(current(), 'h')) or
    (contains(current(), 'i')) or (contains(current(), 'j')) or
    (contains(current(), 'k')) or (contains(current(), 'l')) or
    (contains(current(), 'm')) or (contains(current(), 'n')) or
    (contains(current(), 'o')) or (contains(current(), 'p')) or
    (contains(current(), 'q')) or (contains(current(), 'r')) or
    (contains(current(), 's')) or (contains(current(), 't')) or
    (contains(current(), 'u')) or (contains(current(), 'v')) or
    (contains(current(), 'w')) or (contains(current(), 'x')) or
    (contains(current(), 'y')) or (contains(current(), 'z')))" {
                      error-message
                        "Flex local auth password must contain at least one lower case letter";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (contains(current(), 'A')) or (contains(current(), 'B')) or
    (contains(current(), 'C')) or (contains(current(), 'D')) or
    (contains(current(), 'E')) or (contains(current(), 'F')) or
    (contains(current(), 'G')) or (contains(current(), 'H')) or
    (contains(current(), 'I')) or (contains(current(), 'J')) or
    (contains(current(), 'K')) or (contains(current(), 'L')) or
    (contains(current(), 'M')) or (contains(current(), 'N')) or
    (contains(current(), 'O')) or (contains(current(), 'P')) or
    (contains(current(), 'Q')) or (contains(current(), 'R')) or
    (contains(current(), 'S')) or (contains(current(), 'T')) or
    (contains(current(), 'U')) or (contains(current(), 'V')) or
    (contains(current(), 'W')) or (contains(current(), 'X')) or
    (contains(current(), 'Y')) or (contains(current(), 'Z')))" {
                      error-message
                        "Flex local auth password must contain at least one upper case letter";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (contains(current(), '0')) or (contains(current(), '1')) or
    (contains(current(), '2')) or (contains(current(), '3')) or
    (contains(current(), '4')) or (contains(current(), '5')) or
    (contains(current(), '6')) or (contains(current(), '7')) or
    (contains(current(), '8')) or (contains(current(), '9')))" {
                      error-message
                        "Flex local auth password must contain at least one digit";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (not(
     (contains(current(), 'aaa')) or (contains(current(), 'AAA')) or
     (contains(current(), 'bbb')) or (contains(current(), 'BBB')) or
     (contains(current(), 'ccc')) or (contains(current(), 'CCC')) or
     (contains(current(), 'ddd')) or (contains(current(), 'DDD')) or
     (contains(current(), 'eee')) or (contains(current(), 'EEE')) or
     (contains(current(), 'fff')) or (contains(current(), 'FFF')) or
     (contains(current(), 'ggg')) or (contains(current(), 'GGG')) or
     (contains(current(), 'hhh')) or (contains(current(), 'HHH')) or
     (contains(current(), 'iii')) or (contains(current(), 'III')) or
     (contains(current(), 'jjj')) or (contains(current(), 'JJJ')) or
     (contains(current(), 'kkk')) or (contains(current(), 'KKK')) or
     (contains(current(), 'lll')) or (contains(current(), 'LLL')) or
     (contains(current(), 'mmm')) or (contains(current(), 'MMM')) or
     (contains(current(), 'nnn')) or (contains(current(), 'NNN')) or
     (contains(current(), 'ooo')) or (contains(current(), 'OOO')) or
     (contains(current(), 'ppp')) or (contains(current(), 'PPP')) or
     (contains(current(), 'qqq')) or (contains(current(), 'QQQ')) or
     (contains(current(), 'rrr')) or (contains(current(), 'RRR')) or
     (contains(current(), 'sss')) or (contains(current(), 'SSS')) or
     (contains(current(), 'ttt')) or (contains(current(), 'TTT')) or
     (contains(current(), 'uuu')) or (contains(current(), 'UUU')) or
     (contains(current(), 'vvv')) or (contains(current(), 'VVV')) or
     (contains(current(), 'www')) or (contains(current(), 'WWW')) or
     (contains(current(), 'xxx')) or (contains(current(), 'XXX')) or
     (contains(current(), 'yyy')) or (contains(current(), 'YYY')) or
     (contains(current(), 'zzz')) or (contains(current(), 'ZZZ')))))" {
                      error-message
                        "Flex local auth password should not contain more than two repetitions of characters";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (not((contains(current(), 'abc')) or (contains(current(), 'ABC')) or
     (contains(current(), 'bcd')) or (contains(current(), 'BCD')) or
     (contains(current(), 'cde')) or (contains(current(), 'CDE')) or
     (contains(current(), 'def')) or (contains(current(), 'DEF')) or
     (contains(current(), 'efg')) or (contains(current(), 'EFG')) or
     (contains(current(), 'fgh')) or (contains(current(), 'FGH')) or
     (contains(current(), 'ghi')) or (contains(current(), 'GHI')) or
     (contains(current(), 'hij')) or (contains(current(), 'HIJ')) or
     (contains(current(), 'ijk')) or (contains(current(), 'IJK')) or
     (contains(current(), 'jkl')) or (contains(current(), 'JKL')) or
     (contains(current(), 'klm')) or (contains(current(), 'KLM')) or
     (contains(current(), 'lmn')) or (contains(current(), 'LMN')) or
     (contains(current(), 'mno')) or (contains(current(), 'MNO')) or
     (contains(current(), 'nop')) or (contains(current(), 'NOP')) or
     (contains(current(), 'opq')) or (contains(current(), 'OPQ')) or
     (contains(current(), 'pqr')) or (contains(current(), 'PQR')) or
     (contains(current(), 'qrs')) or (contains(current(), 'QRS')) or
     (contains(current(), 'rst')) or (contains(current(), 'RST')) or
     (contains(current(), 'stu')) or (contains(current(), 'STU')) or
     (contains(current(), 'tuv')) or (contains(current(), 'TUV')) or
     (contains(current(), 'uvw')) or (contains(current(), 'UVW')) or
     (contains(current(), 'vwx')) or (contains(current(), 'VWX')) or
     (contains(current(), 'wxy')) or (contains(current(), 'WXY')) or
     (contains(current(), 'xyz')) or (contains(current(), 'XYZ')))))" {
                      error-message
                        "Flex local auth password should not contain sequential characters";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (not((contains(current(), '000')) or (contains(current(), '111')) or
     (contains(current(), '222')) or (contains(current(), '333')) or
     (contains(current(), '444')) or (contains(current(), '555')) or
     (contains(current(), '666')) or (contains(current(), '777')) or
     (contains(current(), '888')) or (contains(current(), '999')))))" {
                      error-message
                        "Flex local auth password should not contain more than two repetitions of digits";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (not((contains(current(), '012')) or (contains(current(), '123')) or
     (contains(current(), '234')) or (contains(current(), '345')) or
     (contains(current(), '456')) or (contains(current(), '567')) or
     (contains(current(), '678')) or (contains(current(), '789')))))" {
                      error-message
                        "Flex local auth password should not contain sequential digits";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or
    (/wireless-apf-cfg:apf-cfg-data/wireless-apf-cfg:apf/wireless-apf-cfg:pwd-pol-def = 'false') or
    (string-length(current()) >= 8))" {
                      error-message
                        "Flex local auth password length should not be less than 8, when the flex local auth password type is clear text and wireless default password policy is enabled";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "((../password-type != 'clear') or (string-length(current()) <= 120))" {
                      error-message
                        "Flex local auth password length should not exceed 120 chars, when the flex local auth password type is clear text";
                      error-app-tag
                        "must-violation";
                    }
                    default "";
                    description
                      "Password for the given username, to be used for authenticating a client associated to an AP within the group. Following criteria should be met if wireless password policy is configured.
    - Default passwords (cisco, Cisco, C!sco, ci$co, ..) are not allowed.
    - Reverse default passwords are not allowed.
    - At least one lower case letter is mandatory.
    - At least one upper case letter is mandatory.
    - At least one digit is mandatory.
    - Special characters are allowed, but not mandatory.
    - More than two sequential chars or digits (e.g., abc, 123) are not allowed.
    - More than two repeated chars or digits (e.g., 111, aaa) are not allowed.
    - Minimum password length is 8.
    Restriction: Flex local auth password of cleartext type must contain ASCII characters only. This rule is not implemented using constraints.";
                  }
    
                  leaf password-type {
                    type wireless-enum-types:crypt-type;
                    must
                      "((current() = 'clear') or (current() = 'aes'))" {
                      error-message
                        "Password type should be either clear text or AES encryption";
                      error-app-tag
                        "must-violation";
                    }
                    default "clear";
                    description
                      "Password encryption type for authentication by AP";
                  }
                }  // list local-auth-user
              }  // container local-auth-users
    
              container if-name-vlan-ids {
                description
                  "Interface name VLAN IDs";
                list if-name-vlan-id {
                  key "interface-name";
                  description
                    "Interface name VLAN ID list";
                  leaf interface-name {
                    type string;
                    description
                      "VLAN name for the vlan-acl mapping.";
                  }
    
                  leaf vlan-id {
                    when
                      "(../interface-name != '')";
                    type uint32 {
                      range "1 .. 4096";
                    }
                    default "1";
                    description
                      "VLAN ID to be mapped to the ACL for the Access Point identified by VLAN name.";
                  }
    
                  leaf acl-name {
                    type string;
                    default "";
                    status deprecated;
                    description
                      "Name of bidirectional Access Control List (ACL) for the VLAN-ACL mapping";
                  }
    
                  leaf acl-name-in {
                    type string {
                      length "0..32";
                    }
                    must
                      "string-length(current()) = 0 or string-length(../acl-name) = 0" {
                      error-message
                        "Only one ACL per direction can be configured";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "current() != 'in' and current() != 'out'" {
                      error-message
                        "Illegal ACL name. Keywords in and out are not allowed";
                      error-app-tag
                        "must-violation";
                    }
                    description
                      "Name of ingress Access Control List (ACL) for the VLAN-ACL mapping";
                  }
    
                  leaf acl-name-out {
                    type string {
                      length "0..32";
                    }
                    must
                      "string-length(current()) = 0 or string-length(../acl-name) = 0" {
                      error-message
                        "Only one ACL per direction can be configured";
                      error-app-tag
                        "must-violation";
                    }
                    must
                      "current() != 'in' and current() != 'out'" {
                      error-message
                        "Illegal ACL name. Keywords in and out are not allowed";
                      error-app-tag
                        "must-violation";
                    }
                    description
                      "Name of egress Access Control List(ACL) for the VLAN-ACL mapping";
                  }
                }  // list if-name-vlan-id
              }  // container if-name-vlan-ids
    
              leaf acct-radius-server-group-name {
                type string {
                  length "1..32";
                  pattern
                    "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                }
                description
                  "Radius server group name for accounting";
              }
    
              leaf is-local-roaming-enable {
                type boolean;
                default "false";
                description
                  "Enable or Disable distributed client data caching on AP for local roaming.";
              }
    
              container umbrella-profiles {
                description "Umbrella Profiles";
                list umbrella-profile {
                  key "umbrella-name";
                  description
                    "List of umbrella profiles";
                  leaf umbrella-name {
                    type string;
                    description
                      "Umbrella profile name";
                  }
                }  // list umbrella-profile
              }  // container umbrella-profiles
    
              leaf mdns-profile-name {
                type string;
                description
                  "mDNS flex profile name";
              }
    
              container ip-overlap-cfg {
                description
                  "IP overlap configuration";
                leaf flex-overlap-ip-enable {
                  type boolean;
                  default "false";
                  description
                    "Enable IP overlap support for site";
                }
              }  // container ip-overlap-cfg
    
              leaf dhcp-bcast {
                type boolean;
                default "false";
                description
                  "DHCP broadcast for locally switched clients";
              }
            }  // list flex-policy-entry
          }  // container flex-policy-entries
        }  // container flex-cfg-data
      }  // module Cisco-IOS-XE-wireless-flex-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.