/* * Fundamental types and constants relating to 802.11u - * "Interworking with External Networks" * * IW - InterWorking * * Copyright (C) 2022, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you * under the terms of the GNU General Public License version 2 (the "GPL"), * available at http://www.broadcom.com/licenses/GPLv2.php, with the * following added to such license: * * As a special exception, the copyright holders of this software give you * permission to link this software with independent modules, and to copy and * distribute the resulting executable under terms of your choice, provided that * you also meet, for each linked independent module, the terms and conditions of * the license of that module. An independent module is a module which is not * derived from this software. The special exception does not apply to any * modifications of the software. * * * <> */ #ifndef _802_11u_h_ #define _802_11u_h_ #ifndef _TYPEDEFS_H_ #include #endif /* This marks the start of a packed structure section. */ #include /* 802.11u GAS action frames */ #define GAS_REQUEST_ACTION_FRAME 10 #define GAS_RESPONSE_ACTION_FRAME 11 #define GAS_COMEBACK_REQUEST_ACTION_FRAME 12 #define GAS_COMEBACK_RESPONSE_ACTION_FRAME 13 /* 802.11u interworking access network options */ #define IW_ANT_MASK 0x0f #define IW_INTERNET_MASK 0x10 #define IW_ASRA_MASK 0x20 #define IW_ESR_MASK 0x40 #define IW_UESA_MASK 0x80 /* 802.11u interworking access network type */ #define IW_ANT_PRIVATE_NETWORK 0 #define IW_ANT_PRIVATE_NETWORK_WITH_GUEST 1 #define IW_ANT_CHARGEABLE_PUBLIC_NETWORK 2 #define IW_ANT_FREE_PUBLIC_NETWORK 3 #define IW_ANT_PERSONAL_DEVICE_NETWORK 4 #define IW_ANT_EMERGENCY_SERVICES_NETWORK 5 #define IW_ANT_TEST_NETWORK 14 #define IW_ANT_WILDCARD_NETWORK 15 #define IW_ANT_LEN 1 #define IW_VENUE_LEN 2 #define IW_HESSID_LEN 6 #define IW_HESSID_OFF (IW_ANT_LEN + IW_VENUE_LEN) #define IW_MAX_LEN (IW_ANT_LEN + IW_VENUE_LEN + IW_HESSID_LEN) /* 802.11u advertisement protocol */ #define ADVP_ANQP_PROTOCOL_ID 0 #define ADVP_MIH_PROTOCOL_ID 1 /* 802.11u advertisement protocol masks */ #define ADVP_QRL_MASK 0x7f #define ADVP_PAME_BI_MASK 0x80 /* 802.11u advertisement protocol values */ #define ADVP_QRL_REQUEST 0x00 #define ADVP_QRL_RESPONSE 0x7f #define ADVP_PAME_BI_DEPENDENT 0x00 #define ADVP_PAME_BI_INDEPENDENT ADVP_PAME_BI_MASK /* 802.11u ANQP information ID */ #define ANQP_ID_QUERY_LIST 256 #define ANQP_ID_CAPABILITY_LIST 257 #define ANQP_ID_VENUE_NAME_INFO 258 #define ANQP_ID_EMERGENCY_CALL_NUMBER_INFO 259 #define ANQP_ID_NETWORK_AUTHENTICATION_TYPE_INFO 260 #define ANQP_ID_ROAMING_CONSORTIUM_LIST 261 #define ANQP_ID_IP_ADDRESS_TYPE_AVAILABILITY_INFO 262 #define ANQP_ID_NAI_REALM_LIST 263 #define ANQP_ID_G3PP_CELLULAR_NETWORK_INFO 264 #define ANQP_ID_AP_GEOSPATIAL_LOCATION 265 #define ANQP_ID_AP_CIVIC_LOCATION 266 #define ANQP_ID_AP_LOCATION_PUBLIC_ID_URI 267 #define ANQP_ID_DOMAIN_NAME_LIST 268 #define ANQP_ID_EMERGENCY_ALERT_ID_URI 269 #define ANQP_ID_EMERGENCY_NAI 271 #define ANQP_ID_NEIGHBOR_REPORT 272 #define ANQP_ID_VENDOR_SPECIFIC_LIST 56797 /* 802.11u ANQP ID len */ #define ANQP_INFORMATION_ID_LEN 2 /* 802.11u ANQP OUI */ #define ANQP_OUI_SUBTYPE 9 /* 802.11u venue name */ #define VENUE_LANGUAGE_CODE_SIZE 3 #define VENUE_NAME_SIZE 255 /* 802.11u venue groups */ #define VENUE_UNSPECIFIED 0 #define VENUE_ASSEMBLY 1 #define VENUE_BUSINESS 2 #define VENUE_EDUCATIONAL 3 #define VENUE_FACTORY 4 #define VENUE_INSTITUTIONAL 5 #define VENUE_MERCANTILE 6 #define VENUE_RESIDENTIAL 7 #define VENUE_STORAGE 8 #define VENUE_UTILITY 9 #define VENUE_VEHICULAR 10 #define VENUE_OUTDOOR 11 /* 802.11u network authentication type indicator */ #define NATI_UNSPECIFIED -1 #define NATI_ACCEPTANCE_OF_TERMS_CONDITIONS 0 #define NATI_ONLINE_ENROLLMENT_SUPPORTED 1 #define NATI_HTTP_HTTPS_REDIRECTION 2 #define NATI_DNS_REDIRECTION 3 /* 802.11u IP address type availability - IPv6 */ #define IPA_IPV6_SHIFT 0 #define IPA_IPV6_MASK (0x03 << IPA_IPV6_SHIFT) #define IPA_IPV6_NOT_AVAILABLE 0x00 #define IPA_IPV6_AVAILABLE 0x01 #define IPA_IPV6_UNKNOWN_AVAILABILITY 0x02 /* 802.11u IP address type availability - IPv4 */ #define IPA_IPV4_SHIFT 2 #define IPA_IPV4_MASK (0x3f << IPA_IPV4_SHIFT) #define IPA_IPV4_NOT_AVAILABLE 0x00 #define IPA_IPV4_PUBLIC 0x01 #define IPA_IPV4_PORT_RESTRICT 0x02 #define IPA_IPV4_SINGLE_NAT 0x03 #define IPA_IPV4_DOUBLE_NAT 0x04 #define IPA_IPV4_PORT_RESTRICT_SINGLE_NAT 0x05 #define IPA_IPV4_PORT_RESTRICT_DOUBLE_NAT 0x06 #define IPA_IPV4_UNKNOWN_AVAILABILITY 0x07 /* 802.11u NAI realm encoding */ #define REALM_ENCODING_RFC4282 0 #define REALM_ENCODING_UTF8 1 /* 802.11u IANA EAP method type numbers */ #define REALM_EAP_TLS 13 #define REALM_EAP_LEAP 17 #define REALM_EAP_SIM 18 #define REALM_EAP_TTLS 21 #define REALM_EAP_AKA 23 #define REALM_EAP_PEAP 25 #define REALM_EAP_FAST 43 #define REALM_EAP_PSK 47 #define REALM_EAP_AKAP 50 #define REALM_EAP_EXPANDED 254 /* 802.11u authentication ID */ #define REALM_EXPANDED_EAP 1 #define REALM_NON_EAP_INNER_AUTHENTICATION 2 #define REALM_INNER_AUTHENTICATION_EAP 3 #define REALM_EXPANDED_INNER_EAP 4 #define REALM_CREDENTIAL 5 #define REALM_TUNNELED_EAP_CREDENTIAL 6 #define REALM_VENDOR_SPECIFIC_EAP 221 /* 802.11u non-EAP inner authentication type */ #define REALM_RESERVED_AUTH 0 #define REALM_PAP 1 #define REALM_CHAP 2 #define REALM_MSCHAP 3 #define REALM_MSCHAPV2 4 /* 802.11u credential type */ #define REALM_SIM 1 #define REALM_USIM 2 #define REALM_NFC 3 #define REALM_HARDWARE_TOKEN 4 #define REALM_SOFTOKEN 5 #define REALM_CERTIFICATE 6 #define REALM_USERNAME_PASSWORD 7 #define REALM_SERVER_SIDE 8 #define REALM_RESERVED_CRED 9 #define REALM_VENDOR_SPECIFIC_CRED 10 /* 802.11u 3GPP PLMN */ #define G3PP_GUD_VERSION 0 #define G3PP_PLMN_LIST_IE 0 /* This marks the end of a packed structure section. */ #include #endif /* _802_11u_h_ */