Cisco-IOS-XE-wireless-hotspot-cfg

Model for managing WiFi Alliance Hotspot 2.0 and 802.11u configuration Copyright (c) 2019-2020 by Cisco Systems, Inc. All rights...

  • Version: 2021-03-01

    Cisco-IOS-XE-wireless-hotspot-cfg@2021-03-01


    
      module Cisco-IOS-XE-wireless-hotspot-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XE-wireless-hotspot-cfg";
    
        prefix wireless-hotspot-cfg;
    
        import ietf-yang-types {
          prefix yang;
        }
        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 WiFi Alliance Hotspot 2.0 and 802.11u configuration
         Copyright (c) 2019-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-03-01" {
          description
            "- Added support for AAA operator name attribute";
          reference
            "2.2.0";
    
        }
    
        revision "2020-11-01" {
          description
            "- Added Hotspot flag to append AP MAC to URL in venue entry";
          reference
            "2.1.0";
    
        }
    
        revision "2020-07-01" {
          description
            "- Added hierarchy for Hotspot 2.0 release 3.
           - Added hierarchy for inner authentication method.
           - Added obsolete status for inner EAP authentication parameter hierarchy.";
          reference
            "2.0.0";
    
        }
    
        revision "2019-04-01" {
          description "Initial revision";
          reference
            "1.0.0";
    
        }
    
        cisco-semver:module-version "2.2.0";
        cisco-semver:module-version "2.1.0";
        cisco-semver:module-version "2.0.0";
        cisco-semver:module-version "1.0.0";
    
        typedef enum-hotspot-venue-group-type {
          type enumeration {
            enum "hs-unspecified-unspecified" {
              value 0;
              description
                "Unspecified venue type";
            }
            enum "hs-assembly-unspecified" {
              value 256;
              description
                "Assembly unspecified venue type";
            }
            enum "hs-assembly-arena" {
              value 257;
              description
                "Assembly arena venue type";
            }
            enum "hs-assembly-stadium" {
              value 258;
              description
                "Assembly stadium venue type";
            }
            enum "hs-assembly-terminal" {
              value 259;
              description
                "Assembly passenger terminal venue type";
            }
            enum "hs-assembly-amphitheater" {
              value 260;
              description
                "Assembly amphitheater venue type";
            }
            enum "hs-assembly-amusement-park" {
              value 261;
              description
                "Assembly amusement park venue type";
            }
            enum "hs-assembly-place-of-worship" {
              value 262;
              description
                "Assembly worship place venue type";
            }
            enum "hs-assembly-convention-center" {
              value 263;
              description
                "Assembly convention center venue type";
            }
            enum "hs-assembly-library" {
              value 264;
              description
                "Assembly library venue type";
            }
            enum "hs-assembly-museum" {
              value 265;
              description
                "Assembly museum venue type";
            }
            enum "hs-assembly-restaurant" {
              value 266;
              description
                "Assembly restaurant venue type";
            }
            enum "hs-assembly-theater" {
              value 267;
              description
                "Assembly theater venue type";
            }
            enum "hs-assembly-bar" {
              value 268;
              description
                "Assembly bar venue type";
            }
            enum "hs-assembly-coffee-shop" {
              value 269;
              description
                "Assembly coffee shop venue type";
            }
            enum "hs-assembly-zoo" {
              value 270;
              description
                "Assembly zoo aquarium venue type";
            }
            enum "hs-assembly-emergency-center" {
              value 271;
              description
                "Assembly emergency coordination center venue type";
            }
            enum "hs-business-unspecified" {
              value 512;
              description
                "Business unspecified venue type";
            }
            enum "hs-business-doctor" {
              value 513;
              description
                "Business doctor or dentist venue type";
            }
            enum "hs-business-bank" {
              value 514;
              description
                "Business bank venue type";
            }
            enum "hs-business-fire-station" {
              value 515;
              description
                "Business fire station venue type";
            }
            enum "hs-business-police-station" {
              value 516;
              description
                "Business police station venue type";
            }
            enum "hs-business-post-office" {
              value 518;
              description
                "Business post office venue type";
            }
            enum "hs-business-prof-office" {
              value 519;
              description
                "Business professional office venue type";
            }
            enum "hs-business-rd-facility" {
              value 520;
              description
                "Business rd facility venue type";
            }
            enum "hs-business-attorney" {
              value 521;
              description
                "Business attorney office venue type";
            }
            enum "hs-educational-unspecified" {
              value 768;
              description
                "Educational unspecified educational venue type";
            }
            enum "hs-educational-primary-school" {
              value 769;
              description
                "Educational school primary venue type";
            }
            enum "hs-educational-sec-school" {
              value 770;
              description
                "Educational school secondary venue type";
            }
            enum "hs-educational-university" {
              value 771;
              description
                "Educational university venue type";
            }
            enum "hs-industrial-unspecified" {
              value 1024;
              description
                "Industrial unspecified venue type";
            }
            enum "hs-industrial-factory" {
              value 1025;
              description
                "Industrial factory venue type";
            }
            enum "hs-institutional-unspecified" {
              value 1280;
              description
                "Institutional unspecified venue type";
            }
            enum "hs-institutional-hospital" {
              value 1281;
              description
                "Institutional hospital venue type";
            }
            enum
              "hs-institutional-long-term-care" {
              value 1282;
              description
                "Institutional long term care facility venue type";
            }
            enum "hs-institutional-drug-center" {
              value 1283;
              description
                "Institutional alcohol and drug rehab center venue type";
            }
            enum "hs-institutional-group-home" {
              value 1284;
              description
                "Institutional group home venue type";
            }
            enum "hs-institutional-jail" {
              value 1285;
              description
                "Institutional jail venue type";
            }
            enum "hs-mercantile-unspecified" {
              value 1536;
              description
                "Mercantile unspecified venue type";
            }
            enum "hs-mercantile-retail-store" {
              value 1537;
              description
                "Mercantile retail store venue type";
            }
            enum "hs-mercantile-grocery-market" {
              value 1538;
              description
                "Mercantile grocery market venue type";
            }
            enum "hs-mercantile-auto-station" {
              value 1539;
              description
                "Mercantile automotive service station venue type";
            }
            enum "hs-mercantile-shopping-mall" {
              value 1540;
              description
                "Mercantile shopping mall venue type";
            }
            enum "hs-mercantile-gas-station" {
              value 1541;
              description
                "Mercantile gas station venue type";
            }
            enum "hs-residential-unspecified" {
              value 1792;
              description
                "Residential unspecified venue type";
            }
            enum "hs-residential-private" {
              value 1793;
              description
                "Residential private residence venue type";
            }
            enum "hs-residential-hotel" {
              value 1794;
              description
                "Residential hotel venue type";
            }
            enum "hs-residential-dormitory" {
              value 1795;
              description
                "Residential dormitory venue type";
            }
            enum "hs-residential-boarding-house" {
              value 1796;
              description
                "Residential boarding house venue type";
            }
            enum "hs-storage-unspecified" {
              value 2048;
              description
                "Storage unspecified venue type";
            }
            enum "hs-utility-unspecified" {
              value 2304;
              description
                "Utility unspecified venue type";
            }
            enum "hs-vehicular-unspecified" {
              value 2560;
              description
                "Vehicular unspecified venue type";
            }
            enum "hs-vehicular-automobile-truck" {
              value 2561;
              description
                "Vehicular automobile truck venue type";
            }
            enum "hs-vehicular-airplane" {
              value 2562;
              description
                "Vehicular airplane venue type";
            }
            enum "hs-vehicular-bus" {
              value 2563;
              description
                "Vehicular bus venue type";
            }
            enum "hs-vehicular-ferry" {
              value 2564;
              description
                "Vehicular ferry venue type";
            }
            enum "hs-vehicular-boat" {
              value 2565;
              description
                "Vehicular boat venue type";
            }
            enum "hs-vehicular-train" {
              value 2566;
              description
                "Vehicular train venue type";
            }
            enum "hs-vehicular-motorbike" {
              value 2567;
              description
                "Vehicular motorbike venue type";
            }
            enum "hs-outdoor-unspecified" {
              value 2816;
              description
                "Outdoor unspecified venue type";
            }
            enum "hs-outdoor-muni-mesh" {
              value 2817;
              description
                "Outdoor muni mesh network venue type";
            }
            enum "hs-outdoor-city-park" {
              value 2818;
              description
                "Outdoor city park venue type";
            }
            enum "hs-outdoor-rest-area" {
              value 2819;
              description
                "Outdoor rest area venue type";
            }
            enum "hs-outdoor-traffic-control" {
              value 2820;
              description
                "Outdoor traffic control venue type";
            }
            enum "hs-outdoor-bus-stop" {
              value 2821;
              description
                "Outdoor bus stop venue type";
            }
            enum "hs-outdoor-kiosk" {
              value 2822;
              description
                "Outdoor kiosk venue type";
            }
          }
          description
            "Venue type advertised in 802.11u WLAN beacon";
        }
    
        typedef enum-hotspot-network-type {
          type enumeration {
            enum "hs-private-network" {
              value 0;
              description "Private network type";
            }
            enum "hs-guest-private-network" {
              value 1;
              description
                "Private guest network type";
            }
            enum "hs-chargeable-public-network" {
              value 2;
              description
                "Chargeable public network type";
            }
            enum "hs-free-public-network" {
              value 3;
              description
                "Free public network type";
            }
            enum "hs-personal-device-network" {
              value 4;
              description
                "Personal device network type";
            }
            enum "hs-emergency-network" {
              value 5;
              description
                "Emergency network type";
            }
            enum "hs-test-network" {
              value 14;
              description "Test network type";
            }
            enum "hs-wildcard-network" {
              value 15;
              description
                "Wild-card network type";
            }
          }
          description
            "Type of network advertised in the 802.11u WLAN beacon";
        }
    
        typedef enum-hotspot-network-access {
          type enumeration {
            enum "hs-internet-access-forbidden" {
              value 0;
              description
                "Internet access disabled";
            }
            enum "hs-internet-access-allowed" {
              value 1;
              description
                "Internet access allowed";
            }
          }
          description
            "Ability to access internet in the 802.11u WLAN beacon";
        }
    
        typedef enum-hotspot-network-authentication-type {
          type enumeration {
            enum "hs-terms-and-conditions" {
              value 0;
              description
                "Terms and Conditions to accept";
            }
            enum "hs-online-enrollment" {
              value 1;
              description "Online enrollment";
            }
            enum "hs-http-https-redirect" {
              value 2;
              description
                "HTTP/HTTPS redirection";
            }
            enum "hs-dns-redirect" {
              value 3;
              description "DNS Redirection";
            }
          }
          description
            "Type of network authentication";
        }
    
        typedef enum-hotspot-ipv6-addr-type {
          type enumeration {
            enum "hs-ipv6-addr-not-available" {
              value 0;
              description
                "IPv6 address type not available";
            }
            enum "hs-ipv6-addr-available" {
              value 1;
              description
                "IPv6 address type available";
            }
            enum "hs-ipv6-addr-not-known" {
              value 2;
              description
                "IPv6 address type availability not known";
            }
          }
          description "Type of IPv6 address";
        }
    
        typedef enum-hotspot-ipv4-addr-type {
          type enumeration {
            enum "hs-ipv4-addr-not-available" {
              value 0;
              description
                "IPv4 address type not available";
            }
            enum "hs-ipv4-addr-public" {
              value 1;
              description
                "Public IPv4 address available";
            }
            enum "hs-ipv4-addr-port-restricted" {
              value 2;
              description
                "Port-restricted IPv4 address available";
            }
            enum "hs-ipv4-addr-1-nated-private" {
              value 3;
              description
                "Single NATed private IPv4 address available";
            }
            enum "hs-ipv4-addr-2-nated-private" {
              value 4;
              description
                "Double NATed private IPv4 address available";
            }
            enum
              "hs-ipv4-addr-port-restr-1-nated" {
              value 5;
              description
                "Port-restricted IPv4 address and single NATed IPv4 address available";
            }
            enum
              "hs-ipv4-addr-port-restr-2-nated" {
              value 6;
              description
                "Port-restricted IPv4 address and double NATed IPv4 address available";
            }
            enum "hs-ipv4-addr-not-known" {
              value 7;
              description
                "IPv4 address type availability not known";
            }
          }
          description "Type of IPv4 address";
        }
    
        typedef enum-hotspot-eap-method-type {
          type enumeration {
            enum "hs-eap-reserved" {
              value 0;
              description "EAP reserved type";
            }
            enum "hs-eap-tls" {
              value 13;
              description "EAP TLS method type";
            }
            enum "hs-eap-leap" {
              value 17;
              description "EAP LEAP method type";
            }
            enum "hs-eap-sim" {
              value 18;
              description "EAP SIM method type";
            }
            enum "hs-eap-ttls" {
              value 21;
              description "EAP TTLS method type";
            }
            enum "hs-eap-aka" {
              value 23;
              description "EAP AKA method type";
            }
            enum "hs-eap-peap" {
              value 25;
              description "EAP PEAP method type";
            }
            enum "hs-eap-fast" {
              value 43;
              description "EAP FAST method type";
            }
          }
          description
            "Type of Hotspot NAI Realm EAP Method";
        }
    
        typedef enum-hotspot-authentication-type {
          type enumeration {
            enum "hs-non-eap-pap" {
              value 0;
              description "Non EAP PAP";
            }
            enum "hs-non-eap-chap" {
              value 1;
              description "Non EAP CHAP";
            }
            enum "hs-non-eap-mschap" {
              value 2;
              description "Non EAP MSCHAP";
            }
            enum "hs-non-eap-mschap-v2" {
              value 3;
              description "Non EAP MSCHAP-v2";
            }
            enum "hs-inner-eap-tls" {
              value 4;
              description "EAP TLS";
            }
            enum "hs-inner-eap-leap" {
              value 5;
              description "EAP LEAP";
            }
            enum "hs-inner-eap-sim" {
              value 6;
              description "EAP SIM";
            }
            enum "hs-inner-eap-ttls" {
              value 7;
              description "EAP TTLS";
            }
            enum "hs-inner-eap-aka" {
              value 8;
              description "EAP AKA";
            }
            enum "hs-inner-eap-peap" {
              value 9;
              description "EAP PEAP";
            }
            enum "hs-inner-eap-fast" {
              value 10;
              description "EAP FAST";
            }
            enum "hs-cred-sim" {
              value 11;
              description "SIM credential";
            }
            enum "hs-cred-usim" {
              value 12;
              description "USIM credential";
            }
            enum "hs-cred-nfc" {
              value 13;
              description "NFC credential";
            }
            enum "hs-cred-hw-token" {
              value 14;
              description
                "Hardware token credential";
            }
            enum "hs-cred-softoken" {
              value 15;
              description "Softoken credential";
            }
            enum "hs-cred-certificate" {
              value 16;
              description
                "Certificate credential";
            }
            enum "hs-cred-user-password" {
              value 17;
              description
                "Username and password credential";
            }
            enum "hs-cred-none" {
              value 18;
              description "No credentials";
            }
            enum "hs-tunn-eap-cred-sim" {
              value 19;
              description
                "SIM tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-usim" {
              value 20;
              description
                "USIM tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-nfc" {
              value 21;
              description
                "NFC tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-hw-token" {
              value 22;
              description
                "Hardware token tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-softoken" {
              value 23;
              description
                "Softoken tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-certificate" {
              value 24;
              description
                "Certificate tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-user-pass" {
              value 25;
              description
                "Username and password tunneled EAP credential";
            }
            enum "hs-tunn-eap-cred-anonymous" {
              value 26;
              description
                "Anonymous tunneled EAP credential";
            }
          }
          description "Authentication Type";
        }
    
        typedef enum-hotspot-authentication-param-type {
          type enumeration {
            enum "hs-inner-auth-non-eap" {
              value 2;
              description
                "Non-EAP Inner Authentication";
            }
            enum "hs-inner-auth-eap" {
              value 3;
              description "Inner Authentication";
            }
            enum "hs-credential" {
              value 5;
              description
                "Credential Authentication";
            }
            enum "hs-tunneled-eap-credential" {
              value 6;
              description
                "Tunneled-Credential Authentication";
            }
          }
          description
            "Type of EAP method authentication parameter";
        }
    
        typedef enum-hotspot-non-eap-inner-auth-type {
          type enumeration {
            enum "hs-non-eap-reserved" {
              value 0;
              description
                "Reserved non EAP method";
            }
            enum "hs-pap" {
              value 1;
              description "Non EAP PAP";
            }
            enum "hs-chap" {
              value 2;
              description "Non EAP CHAP";
            }
            enum "hs-mschap" {
              value 3;
              description "Non EAP MSCHAP";
            }
            enum "hs-mschap-v2" {
              value 4;
              description "Non EAP MSCHAP-V2";
            }
          }
          description
            "Non-EAP Inner Authentication Type";
        }
    
        typedef enum-hotspot-credential-type {
          type enumeration {
            enum "hs-credential-reserved" {
              value 0;
              description "Reserved credential";
            }
            enum "hs-credential-sim" {
              value 1;
              description "Credential SIM";
            }
            enum "hs-credential-usim" {
              value 2;
              description "Credential USIM";
            }
            enum "hs-credential-nfc" {
              value 3;
              description "Credential NFC";
            }
            enum "hs-credential-hw-token" {
              value 4;
              description
                "Credential Hardware Token";
            }
            enum "hs-credential-softoken" {
              value 5;
              description "Credential Softoken";
            }
            enum "hs-credential-certificate" {
              value 6;
              description
                "Credential Certificate";
            }
            enum "hs-credential-username-passwd" {
              value 7;
              description
                "Credential Username/Password";
            }
            enum "hs-credential-none" {
              value 8;
              description "Credential None";
            }
          }
          description
            "Credential Authentication Type";
        }
    
        typedef enum-hotspot-tunneled-eap-credential-type {
          type enumeration {
            enum "hs-tunnel-reserved" {
              value 0;
              description
                "Reserved Tunneled credential";
            }
            enum "hs-tunnel-sim" {
              value 1;
              description
                "Tunneled credential SIM";
            }
            enum "hs-tunnel-usim" {
              value 2;
              description
                "Tunneled credential USIM";
            }
            enum "hs-tunnel-nfc" {
              value 3;
              description
                "Tunneled credential NFC";
            }
            enum "hs-tunnel-hw-token" {
              value 4;
              description
                "Tunneled credential hardware token";
            }
            enum "hs-tunnel-softoken" {
              value 5;
              description
                "Tunneled credential softoken";
            }
            enum "hs-tunnel-certificate" {
              value 6;
              description
                "Tunneled credential certificate";
            }
            enum "hs-tunnel-username-password" {
              value 7;
              description
                "Credential username/password";
            }
            enum "hs-tunnel-anonymous" {
              value 9;
              description
                "Tunneled credential anonymous";
            }
          }
          description
            "Tunneled Credential Authentication Type";
        }
    
        typedef enum-hotspot-link-status {
          type enumeration {
            enum "hs-not-configured" {
              value 0;
              description
                "WAN link status is not configured";
            }
            enum "hs-up" {
              value 1;
              description "WAN link is UP";
            }
            enum "hs-down" {
              value 2;
              description "WAN link is DOWN";
            }
            enum "hs-test-state" {
              value 3;
              description
                "WAN link in test state";
            }
          }
          description "Status of WAN link";
        }
    
        typedef enum-osu-method-type {
          type enumeration {
            enum "hs-oma-dm" {
              value 0;
              description "OMA DM method";
            }
            enum "hs-soap-xml-spp" {
              value 1;
              description "SOAP/XML SPP method";
            }
            enum "hs-none" {
              value 255;
              description "No method configured";
            }
          }
          description "OSU Method Type";
        }
    
        typedef enum-hotspot-connection-status-type {
          type enumeration {
            enum "hs-closed" {
              value 0;
              description "Connection is CLOSED";
            }
            enum "hs-open" {
              value 1;
              description "Connection is OPEN";
            }
            enum "hs-unknown" {
              value 2;
              description
                "Connection is UNKNOWN";
            }
          }
          description "Status of connection";
        }
    
        typedef enum-hotspot-advice-charge-type {
          type enumeration {
            enum "hs-charge-time-based" {
              value 0;
              description
                "Advice of charge is time based";
            }
            enum "hs-charge-data-volume-based" {
              value 1;
              description
                "Advice of charge is data volume based";
            }
            enum
              "hs-charge-time-data-volume-based" {
              value 2;
              description
                "Advice of charge is time and data volume based";
            }
            enum "hs-charge-unlimited" {
              value 3;
              description
                "Advice of charge is unlimited";
            }
          }
          description "Advice charge type";
        }
    
        container hotspot-cfg-data {
          description
            "Configuration for the WiFi Alliance Hotspot 2.0 (Passpoint) capabilities of the wireless controller, including configuration for 802.11u";
          container hotspot-anqp-server-configs {
            description
              "Configuration of all the different ANQP Servers available on the wireless controller";
            list hotspot-anqp-server-config {
              key "server-name";
              description
                "Configuration of a given ANQP Server";
              leaf server-name {
                type string {
                  length "1..220";
                  pattern
                    "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                }
                description
                  "Name of the ANQP server configuration";
              }
    
              leaf description {
                type string {
                  length "0..220";
                  pattern
                    "[\\] A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']*";
                }
                default "";
                description
                  "Description of the ANQP server configuration";
              }
    
              container server-settings {
                description
                  "General settings of this ANQP server";
                leaf gas-request-timeout {
                  type uint16 {
                    range "100 .. 10000";
                  }
                  default "1000";
                  description
                    "Timeout of a fragmented GAS/ANQP reply";
                }
    
                leaf fragmentation-threshold {
                  type uint16 {
                    range "16 .. 1462";
                  }
                  default "1462";
                  description
                    "Fragmentation threshold for ANQP replies";
                }
              }  // container server-settings
    
              container beacon-params {
                description
                  "Hotspot beacon related settings of this ANQP server";
                leaf internet-enabled {
                  type enum-hotspot-network-access;
                  default
                    "hs-internet-access-forbidden";
                  description
                    "Indicates to 802.11u and Hotspot 2.0 wireless clients if they can get Internet access on this Hotspot 2.0 WLAN";
                }
    
                leaf network-type {
                  type enum-hotspot-network-type;
                  default "hs-private-network";
                  description
                    "Type of network advertised to Hotspot 2.0 and 802.11u wireless clients in the WLAN beacon";
                }
    
                leaf group-type {
                  type enum-hotspot-venue-group-type;
                  default
                    "hs-unspecified-unspecified";
                  description
                    "Venue group and type information advertised to Hotspot 2.0 and 802.11u wireless clients in the WLAN beacon";
                }
    
                leaf hessid {
                  type yang:mac-address;
                  description
                    "Homogenous extended service set advertised to Hotspot 2.0 and 802.11u wireless clients in the WLAN beacon";
                }
    
                leaf anqp-domain-id {
                  when
                    "boolean(../anqp-domain-id-present)";
                  type uint16;
                  description
                    "Hotspot 2.0 ANQP Domain ID to advertise in the beacon and probe requests";
                }
    
                leaf anqp-domain-id-present {
                  type empty;
                  description
                    "When this element is set, the domain ID from anqp-domain-id is advertised in the Hotspot 2.0 beacon and probe requests";
                }
              }  // container beacon-params
    
              leaf ipv4-type {
                type enum-hotspot-ipv4-addr-type;
                default "hs-ipv4-addr-not-known";
                description
                  "Available IPv4 address type settings of this ANQP server";
              }
    
              leaf ipv6-type {
                type enum-hotspot-ipv6-addr-type;
                default "hs-ipv6-addr-not-known";
                description
                  "Available IPv6 address type settings of this ANQP server";
              }
    
              container wan-metrics {
                description
                  "WAN metrics of this ANQP server";
                leaf downlink-speed {
                  type uint32;
                  units "kbps";
                  description
                    "Downlink speed of WAN connection";
                }
    
                leaf uplink-speed {
                  type uint32;
                  units "kbps";
                  description
                    "Uplink speed of WAN connection";
                }
    
                leaf downlink-load {
                  type uint8;
                  description
                    "Downlink load (scaled linearly with 255 representing 100%)";
                }
    
                leaf uplink-load {
                  type uint8;
                  description
                    "Uplink load (scaled linearly with 255 representing 100%)";
                }
    
                leaf load-measurement-duration {
                  type uint16;
                  units "tenths of a second";
                  description
                    "Duration over which the Downlink Load and Uplink Load have been measured";
                }
    
                leaf link-status {
                  type enum-hotspot-link-status;
                  default "hs-not-configured";
                  description
                    "Status of WAN link";
                }
    
                leaf full-capacity-link {
                  type boolean;
                  description
                    "Set if WAN link is currently operating at its maximum capacity";
                }
              }  // container wan-metrics
    
              leaf osu-ssid {
                type string {
                  length "1..32";
                  pattern
                    "[\\] A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                }
                description
                  "Hotspot 2.0 SSID to use for online sign-up (OSU)";
              }
    
              container roaming-elements {
                description
                  "Roaming OIs defined for this ANQP server";
                list roaming-element {
                  key "roaming-element";
                  max-elements 258;
                  description
                    "Settings of one roaming OI";
                  leaf is-beacon {
                    type boolean;
                    description
                      "Indicates whether this roaming entry is included in the WLAN beacon (Maximum 3)";
                  }
    
                  leaf roaming-element {
                    type string {
                      length "6|10";
                      pattern '[0-9a-fA-F]*';
                    }
                    description
                      "Hex-encoded (byte-string) roaming OI value";
                  }
                }  // list roaming-element
              }  // container roaming-elements
    
              container network-auth-types {
                description
                  "Authentication types required on this network, returned to the wireless clients";
                list network-auth-type {
                  key "type";
                  max-elements 4;
                  description
                    "Type of one authentication";
                  leaf type {
                    type enum-hotspot-network-authentication-type;
                    description
                      "Type of the network authentication";
                  }
    
                  leaf url {
                    type string {
                      length "1..220";
                      pattern
                        "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    must
                      "string-length(current()) = 0 or ../type = 'hs-terms-and-conditions' or ../type = 'hs-http-https-redirect'" {
                      error-message
                        "URL is only allowed for Terms & Conditions or HTTP/HTTPS redirection authentication type";
                      error-app-tag
                        "must-violation";
                    }
                    description
                      "URL for Terms & Conditions or HTTP/HTTPS redirection authentication types";
                  }
                }  // list network-auth-type
              }  // container network-auth-types
    
              container domain-names {
                description
                  "Domain names returned by this ANQP Server";
                list domain-name {
                  key "name";
                  max-elements 32;
                  description
                    "Available domain name";
                  leaf name {
                    type string {
                      length "1..220";
                      pattern '[a-z0-9.-]+';
                    }
                    description
                      "Name of the domain";
                  }
    
                  leaf aaa-operator-name {
                    type boolean;
                    default "false";
                    description
                      "Use this domain name as AAA operator name attribute";
                  }
                }  // list domain-name
              }  // container domain-names
    
              container venue-names {
                description
                  "Venue names & translations returned by this ANQP Server";
                list venue-name {
                  key "language";
                  max-elements 32;
                  description
                    "Settings of one venue name translation";
                  leaf language {
                    type string {
                      length "2|3";
                      pattern '[a-z]*';
                    }
                    description
                      "Language code (2 or 3 characters) of this venue name";
                  }
    
                  leaf name {
                    type string {
                      length "1..220";
                      pattern
                        "[\\] A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    mandatory true;
                    description
                      "Name of the venue in the language specified by the 'language' attribute. Non ASCII characters need to be encoded using Character Reference as specified in the XML 1.0 standard.";
                  }
    
                  leaf url {
                    type string {
                      length "1..220";
                      pattern
                        "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    description
                      "URL of the venue (optional)";
                  }
    
                  leaf add-ap-mac {
                    type empty;
                    description
                      "Append AP MAC to URL (optional)";
                  }
                }  // list venue-name
              }  // container venue-names
    
              container nai-realms {
                description
                  "NAI Realms returned by this ANQP Server";
                list nai-realm {
                  key "nai-realm";
                  max-elements 32;
                  description
                    "Available NAI Realm";
                  leaf nai-realm {
                    type string {
                      length "1..220";
                      pattern
                        "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    description "NAI realm";
                  }
    
                  container eap-methods {
                    description
                      "EAP methods returned by this NAI Realm";
                    list eap-method {
                      key "eap-method";
                      max-elements 255;
                      description
                        "Settings of one EAP method";
                      leaf eap-method {
                        type enum-hotspot-eap-method-type;
                        must
                          "../eap-method != 'hs-eap-reserved'" {
                          error-message
                            "Reserved EAP method not permitted";
                          error-app-tag
                            "must-violation";
                        }
                        description
                          "NAI Realm EAP method";
                      }
    
                      container auth-params {
                        status obsolete;
                        description
                          "Authentication parameters returned by an EAP method";
                        list auth-param {
                          key "eap-auth-type-key";
                          max-elements 255;
                          status obsolete;
                          description
                            "Settings of one EAP authentication parameter";
                          leaf eap-auth-type-key {
                            type enum-hotspot-authentication-param-type;
                            description
                              "EAP Authentication Parameter Type Key";
                          }
    
                          leaf non-eap-inner-value {
                            when
                              "(../eap-auth-type-key = 'hs-inner-auth-non-eap')";
                            type enum-hotspot-non-eap-inner-auth-type;
                            must
                              "../non-eap-inner-value != 'hs-non-eap-reserved'" {
                              error-message
                                "Reserved non EAP inner authentication value not permitted";
                              error-app-tag
                                "must-violation";
                            }
                            default
                              "hs-non-eap-reserved";
                            description
                              "Non-EAP Inner Authentication value";
                          }
    
                          leaf inner-eap-method-value {
                            when
                              "(../eap-auth-type-key = 'hs-inner-auth-eap')";
                            type enum-hotspot-eap-method-type;
                            must
                              "../inner-eap-method-value != 'hs-eap-reserved'" {
                              error-message
                                "Reserved inner authentication EAP value not permitted";
                              error-app-tag
                                "must-violation";
                            }
                            default
                              "hs-eap-reserved";
                            description
                              "Inner Authentication EAP value";
                          }
    
                          leaf credential-value {
                            when
                              "(../eap-auth-type-key = 'hs-credential')";
                            type enum-hotspot-credential-type;
                            must
                              "../credential-value != 'hs-credential-reserved'" {
                              error-message
                                "Reserved credential value not permitted";
                              error-app-tag
                                "must-violation";
                            }
                            default
                              "hs-credential-reserved";
                            description
                              "Authentication Credential value";
                          }
    
                          leaf tunnel-value {
                            when
                              "(../eap-auth-type-key = 'hs-tunneled-eap-credential')";
                            type enum-hotspot-tunneled-eap-credential-type;
                            must
                              "../tunnel-value != 'hs-tunnel-reserved'" {
                              error-message
                                "Reserved tunneled EAP credential value not permitted";
                              error-app-tag
                                "must-violation";
                            }
                            default
                              "hs-tunnel-reserved";
                            description
                              "Tunneled EAP Credential value";
                          }
                        }  // list auth-param
                      }  // container auth-params
    
                      container auth-types {
                        description
                          "Authentication types returned by an EAP method";
                        list auth-type {
                          key "eap-auth-type-key";
                          max-elements 255;
                          description
                            "Settings of one EAP authentication type";
                          leaf eap-auth-type-key {
                            type enum-hotspot-authentication-type;
                            description
                              "EAP Authentication Type Key";
                          }
                        }  // list auth-type
                      }  // container auth-types
                    }  // list eap-method
                  }  // container eap-methods
                }  // list nai-realm
              }  // container nai-realms
    
              container hotspot-3gpp-cellular-networks {
                description
                  "3GPP Cellular Networks returned by this ANQP Server";
                list hotspot-3gpp-cellular-network {
                  key "mcc mnc";
                  max-elements 32;
                  description
                    "3GPP Cellular Network";
                  leaf mcc {
                    type string {
                      length "3";
                      pattern '[0-9]*';
                    }
                    description
                      "Mobile Country Code";
                  }
    
                  leaf mnc {
                    type string {
                      length "2|3";
                      pattern '[0-9]*';
                    }
                    description
                      "Mobile Network Code";
                  }
                }  // list hotspot-3gpp-cellular-network
              }  // container hotspot-3gpp-cellular-networks
    
              container operator-friendly-names {
                description
                  "Operator names & translations returned by this ANQP Server";
                list operator-friendly-name {
                  key "language";
                  max-elements 32;
                  description
                    "Settings of one operator name translation";
                  leaf language {
                    type string {
                      length "2|3";
                      pattern '[a-z]*';
                    }
                    description
                      "Language code (2 or 3 characters) of this operator name";
                  }
    
                  leaf name {
                    type string {
                      length "1..220";
                      pattern
                        "[\\] A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    mandatory true;
                    description
                      "Name of the operator in the language specified by the 'language' attribute. Non ASCII characters need to be encoded using Character Reference as specified in the XML 1.0 standard.";
                  }
                }  // list operator-friendly-name
              }  // container operator-friendly-names
    
              container operating-classes {
                description
                  "Operating Class Identifiers returned by this ANQP Server";
                list operating-class {
                  key "class-id";
                  max-elements 32;
                  description
                    "Settings of one operating class identifier";
                  leaf class-id {
                    type uint8 {
                      range "1 .. 254";
                    }
                    description
                      "ID number of this operating class";
                  }
                }  // list operating-class
              }  // container operating-classes
    
              container osu-providers {
                description
                  "OSU providers returned by this ANQP Server";
                list osu-provider {
                  key "osu-provider-name";
                  max-elements 32;
                  description
                    "Available OSU provider";
                  container osu-methods {
                    description
                      "OSU methods supported by this OSU provider";
                    leaf primary-method-type {
                      type enum-osu-method-type;
                      default "hs-none";
                      description
                        "Primary method to use for this OSU";
                    }
    
                    leaf secondary-method-type {
                      type enum-osu-method-type;
                      must
                        "../primary-method-type != 'hs-none' or ../secondary-method-type = 'hs-none'" {
                        error-message
                          "OSU primary method needs to be configured if secondary method is set";
                        error-app-tag
                          "must-violation";
                      }
                      default "hs-none";
                      description
                        "Secondary method to use for this OSU";
                    }
                  }  // container osu-methods
    
                  leaf osu-provider-name {
                    type string {
                      length "1..220";
                      pattern
                        "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    description
                      "OSU provider name";
                  }
    
                  leaf osu-server-uri {
                    type string {
                      length "1..220";
                      pattern
                        "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    description "OSU Server URI";
                  }
    
                  leaf osu-nai {
                    type string {
                      length "1..220";
                      pattern
                        "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                    }
                    description "OSU NAI";
                  }
    
                  container osu-friendly-names {
                    description
                      "Friendly names and service descriptions of this OSU provider";
                    list osu-friendly-name {
                      key "language";
                      max-elements 32;
                      description
                        "Friendly name and service description in one language of this OSU provider";
                      leaf language {
                        type string {
                          length "2..3";
                          pattern '[a-z]*';
                        }
                        description
                          "Language of the OSU friendly name and service description if provided";
                      }
    
                      leaf name {
                        type string {
                          length "1..220";
                          pattern
                            "[\\] A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                        }
                        mandatory true;
                        description
                          "OSU friendly name in the given language. Non ASCII characters need to be encoded using Character Reference as specified in the XML 1.0 standard.";
                      }
    
                      leaf description {
                        type string {
                          length "1..220";
                          pattern
                            "[\\] A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                        }
                        description
                          "OSU service description in the given language. Non ASCII characters need to be encoded using Character Reference as specified in the XML 1.0 standard.";
                      }
                    }  // list osu-friendly-name
                  }  // container osu-friendly-names
    
                  container osu-icons {
                    description
                      "Icons of this OSU provider";
                    list osu-icon {
                      key "filename";
                      max-elements 32;
                      description
                        "Settings of one OSU icon";
                      leaf filename {
                        type string {
                          length "1..100";
                          pattern
                            '[A-Za-z0-9.\-_]+';
                        }
                        must
                          "(../filename != '.') and (../filename != '..')" {
                          error-message
                            "Icon filename shall not be '.' nor '..'";
                          error-app-tag
                            "must-violation";
                        }
                        description
                          "Icon filename";
                      }
                    }  // list osu-icon
                  }  // container osu-icons
                }  // list osu-provider
              }  // container osu-providers
    
              container connection-capabilities {
                description
                  "Connection capabilities returned by this ANQP Server";
                list connection-capability {
                  key "port-number ip-protocol";
                  max-elements 255;
                  description
                    "Settings of one connection capability";
                  leaf status {
                    type enum-hotspot-connection-status-type;
                    default "hs-closed";
                    description
                      "Connection status";
                  }
    
                  leaf port-number {
                    type uint16;
                    description "Port number";
                  }
    
                  leaf ip-protocol {
                    type uint8;
                    description
                      "IP protocol number";
                  }
                }  // list connection-capability
              }  // container connection-capabilities
    
              container terms-conditions-timestamp {
                description
                  "Terms and conditions timestamp";
                leaf date {
                  type string {
                    pattern
                      '([1-9][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[0-1])';
                  }
                  description
                    "Date of terms and conditions timestamp";
                }
    
                leaf time {
                  type string {
                    pattern
                      '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]';
                  }
                  description
                    "Time of terms and conditions timestamp in UTC";
                }
              }  // container terms-conditions-timestamp
    
              leaf terms-conditions-filename {
                type string {
                  length "1..100";
                  pattern '[A-Za-z0-9.\-_]+';
                }
                must
                  "(../terms-conditions-filename != '.') and (../terms-conditions-filename != '..')" {
                  error-message
                    "Terms and conditions filename shall not be '.' nor '..'";
                  error-app-tag "must-violation";
                }
                description
                  "Terms and conditions filename";
              }
    
              leaf terms-conditions-urlfilter {
                type string {
                  length "1..32";
                  pattern "[^#'%?+ ]+";
                }
                description
                  "Terms and conditions URL filter name";
              }
    
              container advice-charges {
                description
                  "Advice of charge types";
                list advice-charge {
                  key "charge-type";
                  max-elements 32;
                  description
                    "Settings of one advice charge";
                  leaf charge-type {
                    type enum-hotspot-advice-charge-type;
                    description
                      "Advice of charge type";
                  }
    
                  container nai-realms {
                    description
                      "NAI realm information for advice of charge";
                    list charge-nai-realm {
                      key "nai-realm";
                      max-elements 32;
                      description
                        "Settings of NAI realm information for advice of charge";
                      leaf nai-realm {
                        type string {
                          length "1..220";
                          pattern
                            "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                        }
                        description
                          "NAI realm name for advice of charge";
                      }
                    }  // list charge-nai-realm
                  }  // container nai-realms
    
                  container plan-informations {
                    description
                      "Advice of charge plan information";
                    list plan-information {
                      key "language currency";
                      max-elements 32;
                      description
                        "Settings of advice of charge plan";
                      leaf filename {
                        type string {
                          length "1..100";
                          pattern
                            '[A-Za-z0-9.\-_]+';
                        }
                        must
                          "(../filename != '.') and (../filename != '..')" {
                          error-message
                            "Charge plan information filename shall not be '.' nor '..'";
                          error-app-tag
                            "must-violation";
                        }
                        description
                          "Filename of the XML description for charge plan information";
                      }
    
                      leaf path {
                        type string;
                        must
                          "(../path = 'bootflash') or (../path = 'flash')" {
                          error-message
                            "Charge plan information file shall be in flash or bootflash only";
                          error-app-tag
                            "must-violation";
                        }
                        mandatory true;
                        description
                          "Path where charge plan information file is stored (bootflash or flash)";
                      }
    
                      leaf language {
                        type string {
                          length "2..3";
                          pattern '[a-z]*';
                        }
                        description
                          "Language code of the cost information";
                      }
    
                      leaf currency {
                        type string {
                          length "3";
                          pattern '[A-Z]*';
                        }
                        description
                          "Currency code";
                      }
                    }  // list plan-information
                  }  // container plan-informations
                }  // list advice-charge
              }  // container advice-charges
            }  // list hotspot-anqp-server-config
          }  // container hotspot-anqp-server-configs
    
          container hotspot-icons {
            description
              "Configuration for all the Hotspot icons available on the wireless controller";
            list hotspot-icon {
              key "filename";
              max-elements 255;
              description
                "Configuration of a given Hotspot icon";
              leaf width {
                type uint16;
                units "pixels";
                mandatory true;
                description
                  "Icon width (in pixels)";
              }
    
              leaf height {
                type uint16;
                units "pixels";
                mandatory true;
                description
                  "Icon height (in pixels)";
              }
    
              leaf filename {
                type string {
                  length "1..100";
                  pattern '[A-Za-z0-9.\-_]+';
                }
                must
                  "(../filename != '.') and (../filename != '..')" {
                  error-message
                    "Icon filename shall not be '.' nor '..'";
                  error-app-tag "must-violation";
                }
                description "Icon filename";
              }
    
              leaf path {
                type string;
                must
                  "(../path = 'bootflash') or (../path = 'flash')" {
                  error-message
                    "Icon file shall be in flash or bootflash only";
                  error-app-tag "must-violation";
                }
                mandatory true;
                description
                  "Icon file path (flash/bootflash)";
              }
    
              leaf language {
                type string {
                  length "2|3";
                  pattern '[a-z]*';
                }
                mandatory true;
                description
                  "Language code (2 or 3 characters) of this icon file";
              }
    
              leaf icon-type {
                type string {
                  length "1..80";
                  pattern
                    "[\\]A-Za-z0-9!\"#%&()*+,\\-./:;<=>^?@\\\\$_`{|}\\[']+";
                }
                mandatory true;
                description "Icon type";
              }
            }  // list hotspot-icon
          }  // container hotspot-icons
    
          container hotspot-global-config {
            presence "hotspot-global-config";
            description
              "Configuration of the global settings for the Hotspot 2.0 feature";
            leaf max-gas-req-per-sec {
              type uint16 {
                range "1 .. 2500";
              }
              default "2500";
              description
                "Maximum number of GAS/ANQP requests to process per seconds. Further requests will be dropped";
            }
          }  // container hotspot-global-config
        }  // container hotspot-cfg-data
      }  // module Cisco-IOS-XE-wireless-hotspot-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.