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
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"; } grouping st-hotspot-venue-name { description "Hotspot 2.0 venue name configuration"; 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)"; } } // grouping st-hotspot-venue-name grouping st-hotspot-roaming-element { description "802.11u roaming configuration (Operator Identifiers)"; 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"; } } // grouping st-hotspot-roaming-element grouping st-hotspot-network-auth-type { description "802.11u network authentication configuration returned to the wireless clients"; 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"; } } // grouping st-hotspot-network-auth-type grouping st-hotspot-domain-name { description "802.11u domain name configuration"; 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"; } } // grouping st-hotspot-domain-name grouping st-hotspot-osu-friendly-name { description "Hotspot 2.0 OSU friendly name configuration"; 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."; } } // grouping st-hotspot-osu-friendly-name grouping st-hotspot-osu-method { description "Hotspot 2.0 OSU methods configuration"; 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"; } } // grouping st-hotspot-osu-method grouping st-hotspot-osu-icon { description "Hotspot 2.0 OSU icon configuration"; 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"; } } // grouping st-hotspot-osu-icon grouping st-hotspot-osu-provider { description "Hotspot 2.0 online sign-up (OSU) provider configuration"; container osu-methods { description "OSU methods supported by this OSU provider"; uses wireless-hotspot-cfg:st-hotspot-osu-method; } // 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"; uses wireless-hotspot-cfg:st-hotspot-osu-friendly-name; } // 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"; uses wireless-hotspot-cfg:st-hotspot-osu-icon; } // list osu-icon } // container osu-icons } // grouping st-hotspot-osu-provider grouping st-hotspot-icon { description "Hotspot 2.0 icon configuration"; 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"; } } // grouping st-hotspot-icon grouping st-hotspot-operator-friendly-name { description "Hotspot 2.0 Operator friendly name configuration"; 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."; } } // grouping st-hotspot-operator-friendly-name grouping st-hotspot-charge-plan-cost-info { description "Advice of charge plan information"; 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"; } } // grouping st-hotspot-charge-plan-cost-info grouping st-hotspot-charge-plan-info { description "Advice of charge information tuple"; 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)"; } } // grouping st-hotspot-charge-plan-info grouping st-hotspot-charge-nai-realm { description "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"; } } // grouping st-hotspot-charge-nai-realm grouping st-hotspot-advice-charge { description "Advice of charge configuration"; 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"; uses wireless-hotspot-cfg:st-hotspot-charge-nai-realm; } // 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"; uses wireless-hotspot-cfg:st-hotspot-charge-plan-info; uses wireless-hotspot-cfg:st-hotspot-charge-plan-cost-info; } // list plan-information } // container plan-informations } // grouping st-hotspot-advice-charge grouping st-hotspot-operating-class { description "Hotspot 2.0 Operating Class Identifier configuration"; leaf class-id { type uint8 { range "1 .. 254"; } description "ID number of this operating class"; } } // grouping st-hotspot-operating-class grouping st-hotspot-mcc-mnc { description "802.11u 3GPP Mobile Country Code and Mobile Network Code configuration"; 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"; } } // grouping st-hotspot-mcc-mnc grouping st-hotspot-wan-metrics { description "Hotspot 2.0 WAN metrics configuration"; 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"; } } // grouping st-hotspot-wan-metrics grouping st-hotspot-protocol-port { description "Hotspot 2.0 connection capability protocol/port tuple configuration"; leaf port-number { type uint16; description "Port number"; } leaf ip-protocol { type uint8; description "IP protocol number"; } } // grouping st-hotspot-protocol-port grouping st-hotspot-connection-capability { description "Hotspot 2.0 connection capability configuration"; leaf status { type enum-hotspot-connection-status-type; default "hs-closed"; description "Connection status"; } } // grouping st-hotspot-connection-capability grouping st-hotspot-beacon-params { description "Configuration of the Hotspot 2.0 and 802.11u beacon settings advertised in a WLAN"; 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"; } } // grouping st-hotspot-beacon-params grouping st-anqp-server-settings { description "802.11u GAS-related configuration"; 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"; } } // grouping st-anqp-server-settings grouping st-hotspot-nai-realm { description "802.11u NAI Realm configuration"; 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"; uses wireless-hotspot-cfg:st-hotspot-eap-method; } // list eap-method } // container eap-methods } // grouping st-hotspot-nai-realm grouping st-hotspot-eap-method { description "802.11u NAI Realm EAP method configuration"; 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"; uses wireless-hotspot-cfg:st-hotspot-eap-auth-param; } // 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"; uses wireless-hotspot-cfg:st-hotspot-eap-auth-type; } // list auth-type } // container auth-types } // grouping st-hotspot-eap-method grouping st-hotspot-eap-auth-param { description "802.11u EAP Authentication Parameter Type configuration"; 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"; } } // grouping st-hotspot-eap-auth-param grouping st-hotspot-eap-auth-type { description "802.11u EAP Authentication Type configuration"; leaf eap-auth-type-key { type enum-hotspot-authentication-type; description "EAP Authentication Type Key"; } } // grouping st-hotspot-eap-auth-type grouping st-hotspot-string-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"; } } // grouping st-hotspot-string-timestamp grouping st-hotspot-anqp-server { description "Hotspot 2.0 ANQP server configuration"; 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"; uses wireless-hotspot-cfg:st-anqp-server-settings; } // container server-settings container beacon-params { description "Hotspot beacon related settings of this ANQP server"; uses wireless-hotspot-cfg:st-hotspot-beacon-params; } // 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"; uses wireless-hotspot-cfg:st-hotspot-wan-metrics; } // 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"; uses wireless-hotspot-cfg:st-hotspot-roaming-element; } // 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"; uses wireless-hotspot-cfg:st-hotspot-network-auth-type; } // 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"; uses wireless-hotspot-cfg:st-hotspot-domain-name; } // 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"; uses wireless-hotspot-cfg:st-hotspot-venue-name; } // 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"; uses wireless-hotspot-cfg:st-hotspot-nai-realm; } // 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"; uses wireless-hotspot-cfg:st-hotspot-mcc-mnc; } // 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"; uses wireless-hotspot-cfg:st-hotspot-operator-friendly-name; } // 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"; uses wireless-hotspot-cfg:st-hotspot-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"; uses wireless-hotspot-cfg:st-hotspot-osu-provider; } // 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"; uses wireless-hotspot-cfg:st-hotspot-connection-capability; uses wireless-hotspot-cfg:st-hotspot-protocol-port; } // list connection-capability } // container connection-capabilities container terms-conditions-timestamp { description "Terms and conditions timestamp"; uses wireless-hotspot-cfg:st-hotspot-string-timestamp; } // 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"; uses wireless-hotspot-cfg:st-hotspot-advice-charge; } // list advice-charge } // container advice-charges } // grouping st-hotspot-anqp-server grouping st-hotspot-global-config { description "Configuration of global Hotspot 2.0 settings"; 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"; } } // grouping st-hotspot-global-config 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"; uses wireless-hotspot-cfg:st-hotspot-anqp-server; } // 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"; uses wireless-hotspot-cfg:st-hotspot-icon; } // 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"; uses wireless-hotspot-cfg:st-hotspot-global-config; } // container hotspot-global-config } // container hotspot-cfg-data } // module Cisco-IOS-XE-wireless-hotspot-cfg
© 2023 YumaWorks, Inc. All rights reserved.