1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * WPS IE definitions 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Portions of this code are copyright (c) 2021 Cypress Semiconductor Corporation 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Copyright (C) 1999-2017, Broadcom Corporation 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Unless you and Broadcom execute a separate written software license 9*4882a593Smuzhiyun * agreement governing use of this software, this software is licensed to you 10*4882a593Smuzhiyun * under the terms of the GNU General Public License version 2 (the "GPL"), 11*4882a593Smuzhiyun * available at http://www.broadcom.com/licenses/GPLv2.php, with the 12*4882a593Smuzhiyun * following added to such license: 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * As a special exception, the copyright holders of this software give you 15*4882a593Smuzhiyun * permission to link this software with independent modules, and to copy and 16*4882a593Smuzhiyun * distribute the resulting executable under terms of your choice, provided that 17*4882a593Smuzhiyun * you also meet, for each linked independent module, the terms and conditions of 18*4882a593Smuzhiyun * the license of that module. An independent module is a module which is not 19*4882a593Smuzhiyun * derived from this software. The special exception does not apply to any 20*4882a593Smuzhiyun * modifications of the software. 21*4882a593Smuzhiyun * 22*4882a593Smuzhiyun * Notwithstanding the above, under no circumstances may you combine this 23*4882a593Smuzhiyun * software in any way with any other Broadcom software provided under a license 24*4882a593Smuzhiyun * other than the GPL, without Broadcom's express prior written consent. 25*4882a593Smuzhiyun * 26*4882a593Smuzhiyun * 27*4882a593Smuzhiyun * <<Broadcom-WL-IPTag/Open:>> 28*4882a593Smuzhiyun * 29*4882a593Smuzhiyun * $Id$ 30*4882a593Smuzhiyun */ 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #ifndef _WPS_ 33*4882a593Smuzhiyun #define _WPS_ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #ifdef __cplusplus 36*4882a593Smuzhiyun extern "C" { 37*4882a593Smuzhiyun #endif // endif 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun /* Data Element Definitions */ 40*4882a593Smuzhiyun #define WPS_ID_AP_CHANNEL 0x1001 41*4882a593Smuzhiyun #define WPS_ID_ASSOC_STATE 0x1002 42*4882a593Smuzhiyun #define WPS_ID_AUTH_TYPE 0x1003 43*4882a593Smuzhiyun #define WPS_ID_AUTH_TYPE_FLAGS 0x1004 44*4882a593Smuzhiyun #define WPS_ID_AUTHENTICATOR 0x1005 45*4882a593Smuzhiyun #define WPS_ID_CONFIG_METHODS 0x1008 46*4882a593Smuzhiyun #define WPS_ID_CONFIG_ERROR 0x1009 47*4882a593Smuzhiyun #define WPS_ID_CONF_URL4 0x100A 48*4882a593Smuzhiyun #define WPS_ID_CONF_URL6 0x100B 49*4882a593Smuzhiyun #define WPS_ID_CONN_TYPE 0x100C 50*4882a593Smuzhiyun #define WPS_ID_CONN_TYPE_FLAGS 0x100D 51*4882a593Smuzhiyun #define WPS_ID_CREDENTIAL 0x100E 52*4882a593Smuzhiyun #define WPS_ID_DEVICE_NAME 0x1011 53*4882a593Smuzhiyun #define WPS_ID_DEVICE_PWD_ID 0x1012 54*4882a593Smuzhiyun #define WPS_ID_E_HASH1 0x1014 55*4882a593Smuzhiyun #define WPS_ID_E_HASH2 0x1015 56*4882a593Smuzhiyun #define WPS_ID_E_SNONCE1 0x1016 57*4882a593Smuzhiyun #define WPS_ID_E_SNONCE2 0x1017 58*4882a593Smuzhiyun #define WPS_ID_ENCR_SETTINGS 0x1018 59*4882a593Smuzhiyun #define WPS_ID_ENCR_TYPE 0x100F 60*4882a593Smuzhiyun #define WPS_ID_ENCR_TYPE_FLAGS 0x1010 61*4882a593Smuzhiyun #define WPS_ID_ENROLLEE_NONCE 0x101A 62*4882a593Smuzhiyun #define WPS_ID_FEATURE_ID 0x101B 63*4882a593Smuzhiyun #define WPS_ID_IDENTITY 0x101C 64*4882a593Smuzhiyun #define WPS_ID_IDENTITY_PROOF 0x101D 65*4882a593Smuzhiyun #define WPS_ID_KEY_WRAP_AUTH 0x101E 66*4882a593Smuzhiyun #define WPS_ID_KEY_IDENTIFIER 0x101F 67*4882a593Smuzhiyun #define WPS_ID_MAC_ADDR 0x1020 68*4882a593Smuzhiyun #define WPS_ID_MANUFACTURER 0x1021 69*4882a593Smuzhiyun #define WPS_ID_MSG_TYPE 0x1022 70*4882a593Smuzhiyun #define WPS_ID_MODEL_NAME 0x1023 71*4882a593Smuzhiyun #define WPS_ID_MODEL_NUMBER 0x1024 72*4882a593Smuzhiyun #define WPS_ID_NW_INDEX 0x1026 73*4882a593Smuzhiyun #define WPS_ID_NW_KEY 0x1027 74*4882a593Smuzhiyun #define WPS_ID_NW_KEY_INDEX 0x1028 75*4882a593Smuzhiyun #define WPS_ID_NEW_DEVICE_NAME 0x1029 76*4882a593Smuzhiyun #define WPS_ID_NEW_PWD 0x102A 77*4882a593Smuzhiyun #define WPS_ID_OOB_DEV_PWD 0x102C 78*4882a593Smuzhiyun #define WPS_ID_OS_VERSION 0x102D 79*4882a593Smuzhiyun #define WPS_ID_POWER_LEVEL 0x102F 80*4882a593Smuzhiyun #define WPS_ID_PSK_CURRENT 0x1030 81*4882a593Smuzhiyun #define WPS_ID_PSK_MAX 0x1031 82*4882a593Smuzhiyun #define WPS_ID_PUBLIC_KEY 0x1032 83*4882a593Smuzhiyun #define WPS_ID_RADIO_ENABLED 0x1033 84*4882a593Smuzhiyun #define WPS_ID_REBOOT 0x1034 85*4882a593Smuzhiyun #define WPS_ID_REGISTRAR_CURRENT 0x1035 86*4882a593Smuzhiyun #define WPS_ID_REGISTRAR_ESTBLSHD 0x1036 87*4882a593Smuzhiyun #define WPS_ID_REGISTRAR_LIST 0x1037 88*4882a593Smuzhiyun #define WPS_ID_REGISTRAR_MAX 0x1038 89*4882a593Smuzhiyun #define WPS_ID_REGISTRAR_NONCE 0x1039 90*4882a593Smuzhiyun #define WPS_ID_REQ_TYPE 0x103A 91*4882a593Smuzhiyun #define WPS_ID_RESP_TYPE 0x103B 92*4882a593Smuzhiyun #define WPS_ID_RF_BAND 0x103C 93*4882a593Smuzhiyun #define WPS_ID_R_HASH1 0x103D 94*4882a593Smuzhiyun #define WPS_ID_R_HASH2 0x103E 95*4882a593Smuzhiyun #define WPS_ID_R_SNONCE1 0x103F 96*4882a593Smuzhiyun #define WPS_ID_R_SNONCE2 0x1040 97*4882a593Smuzhiyun #define WPS_ID_SEL_REGISTRAR 0x1041 98*4882a593Smuzhiyun #define WPS_ID_SERIAL_NUM 0x1042 99*4882a593Smuzhiyun #define WPS_ID_SC_STATE 0x1044 100*4882a593Smuzhiyun #define WPS_ID_SSID 0x1045 101*4882a593Smuzhiyun #define WPS_ID_TOT_NETWORKS 0x1046 102*4882a593Smuzhiyun #define WPS_ID_UUID_E 0x1047 103*4882a593Smuzhiyun #define WPS_ID_UUID_R 0x1048 104*4882a593Smuzhiyun #define WPS_ID_VENDOR_EXT 0x1049 105*4882a593Smuzhiyun #define WPS_ID_VERSION 0x104A 106*4882a593Smuzhiyun #define WPS_ID_X509_CERT_REQ 0x104B 107*4882a593Smuzhiyun #define WPS_ID_X509_CERT 0x104C 108*4882a593Smuzhiyun #define WPS_ID_EAP_IDENTITY 0x104D 109*4882a593Smuzhiyun #define WPS_ID_MSG_COUNTER 0x104E 110*4882a593Smuzhiyun #define WPS_ID_PUBKEY_HASH 0x104F 111*4882a593Smuzhiyun #define WPS_ID_REKEY_KEY 0x1050 112*4882a593Smuzhiyun #define WPS_ID_KEY_LIFETIME 0x1051 113*4882a593Smuzhiyun #define WPS_ID_PERM_CFG_METHODS 0x1052 114*4882a593Smuzhiyun #define WPS_ID_SEL_REG_CFG_METHODS 0x1053 115*4882a593Smuzhiyun #define WPS_ID_PRIM_DEV_TYPE 0x1054 116*4882a593Smuzhiyun #define WPS_ID_SEC_DEV_TYPE_LIST 0x1055 117*4882a593Smuzhiyun #define WPS_ID_PORTABLE_DEVICE 0x1056 118*4882a593Smuzhiyun #define WPS_ID_AP_SETUP_LOCKED 0x1057 119*4882a593Smuzhiyun #define WPS_ID_APP_LIST 0x1058 120*4882a593Smuzhiyun #define WPS_ID_EAP_TYPE 0x1059 121*4882a593Smuzhiyun #define WPS_ID_INIT_VECTOR 0x1060 122*4882a593Smuzhiyun #define WPS_ID_KEY_PROVIDED_AUTO 0x1061 123*4882a593Smuzhiyun #define WPS_ID_8021X_ENABLED 0x1062 124*4882a593Smuzhiyun #define WPS_ID_WEP_TRANSMIT_KEY 0x1064 125*4882a593Smuzhiyun #define WPS_ID_REQ_DEV_TYPE 0x106A 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun /* WSC 2.0, WFA Vendor Extension Subelements */ 128*4882a593Smuzhiyun #define WFA_VENDOR_EXT_ID "\x00\x37\x2A" 129*4882a593Smuzhiyun #define WPS_WFA_SUBID_VERSION2 0x00 130*4882a593Smuzhiyun #define WPS_WFA_SUBID_AUTHORIZED_MACS 0x01 131*4882a593Smuzhiyun #define WPS_WFA_SUBID_NW_KEY_SHAREABLE 0x02 132*4882a593Smuzhiyun #define WPS_WFA_SUBID_REQ_TO_ENROLL 0x03 133*4882a593Smuzhiyun #define WPS_WFA_SUBID_SETTINGS_DELAY_TIME 0x04 134*4882a593Smuzhiyun #define WPS_WFA_SUBID_REG_CFG_METHODS 0x05 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun /* WCN-NET Windows Rally Vertical Pairing Vendor Extensions */ 137*4882a593Smuzhiyun #define MS_VENDOR_EXT_ID "\x00\x01\x37" 138*4882a593Smuzhiyun #define WPS_MS_ID_VPI 0x1001 /* Vertical Pairing Identifier TLV */ 139*4882a593Smuzhiyun #define WPS_MS_ID_TRANSPORT_UUID 0x1002 /* Transport UUID TLV */ 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun /* Vertical Pairing Identifier TLV Definitions */ 142*4882a593Smuzhiyun #define WPS_MS_VPI_TRANSPORT_NONE 0x00 /* None */ 143*4882a593Smuzhiyun #define WPS_MS_VPI_TRANSPORT_DPWS 0x01 /* Devices Profile for Web Services */ 144*4882a593Smuzhiyun #define WPS_MS_VPI_TRANSPORT_UPNP 0x02 /* uPnP */ 145*4882a593Smuzhiyun #define WPS_MS_VPI_TRANSPORT_SDNWS 0x03 /* Secure Devices Profile for Web Services */ 146*4882a593Smuzhiyun #define WPS_MS_VPI_NO_PROFILE_REQ 0x00 /* Wi-Fi profile not requested. 147*4882a593Smuzhiyun * Not supported in Windows 7 148*4882a593Smuzhiyun */ 149*4882a593Smuzhiyun #define WPS_MS_VPI_PROFILE_REQ 0x01 /* Wi-Fi profile requested. */ 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun /* sizes of the fixed size elements */ 152*4882a593Smuzhiyun #define WPS_ID_AP_CHANNEL_S 2 153*4882a593Smuzhiyun #define WPS_ID_ASSOC_STATE_S 2 154*4882a593Smuzhiyun #define WPS_ID_AUTH_TYPE_S 2 155*4882a593Smuzhiyun #define WPS_ID_AUTH_TYPE_FLAGS_S 2 156*4882a593Smuzhiyun #define WPS_ID_AUTHENTICATOR_S 8 157*4882a593Smuzhiyun #define WPS_ID_CONFIG_METHODS_S 2 158*4882a593Smuzhiyun #define WPS_ID_CONFIG_ERROR_S 2 159*4882a593Smuzhiyun #define WPS_ID_CONN_TYPE_S 1 160*4882a593Smuzhiyun #define WPS_ID_CONN_TYPE_FLAGS_S 1 161*4882a593Smuzhiyun #define WPS_ID_DEVICE_PWD_ID_S 2 162*4882a593Smuzhiyun #define WPS_ID_ENCR_TYPE_S 2 163*4882a593Smuzhiyun #define WPS_ID_ENCR_TYPE_FLAGS_S 2 164*4882a593Smuzhiyun #define WPS_ID_FEATURE_ID_S 4 165*4882a593Smuzhiyun #define WPS_ID_MAC_ADDR_S 6 166*4882a593Smuzhiyun #define WPS_ID_MSG_TYPE_S 1 167*4882a593Smuzhiyun #define WPS_ID_SC_STATE_S 1 168*4882a593Smuzhiyun #define WPS_ID_RF_BAND_S 1 169*4882a593Smuzhiyun #define WPS_ID_OS_VERSION_S 4 170*4882a593Smuzhiyun #define WPS_ID_VERSION_S 1 171*4882a593Smuzhiyun #define WPS_ID_SEL_REGISTRAR_S 1 172*4882a593Smuzhiyun #define WPS_ID_SEL_REG_CFG_METHODS_S 2 173*4882a593Smuzhiyun #define WPS_ID_REQ_TYPE_S 1 174*4882a593Smuzhiyun #define WPS_ID_RESP_TYPE_S 1 175*4882a593Smuzhiyun #define WPS_ID_AP_SETUP_LOCKED_S 1 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun /* WSC 2.0, WFA Vendor Extension Subelements */ 178*4882a593Smuzhiyun #define WPS_WFA_SUBID_VERSION2_S 1 179*4882a593Smuzhiyun #define WPS_WFA_SUBID_NW_KEY_SHAREABLE_S 1 180*4882a593Smuzhiyun #define WPS_WFA_SUBID_REQ_TO_ENROLL_S 1 181*4882a593Smuzhiyun #define WPS_WFA_SUBID_SETTINGS_DELAY_TIME_S 1 182*4882a593Smuzhiyun #define WPS_WFA_SUBID_REG_CFG_METHODS_S 2 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* Association states */ 185*4882a593Smuzhiyun #define WPS_ASSOC_NOT_ASSOCIATED 0 186*4882a593Smuzhiyun #define WPS_ASSOC_CONN_SUCCESS 1 187*4882a593Smuzhiyun #define WPS_ASSOC_CONFIG_FAIL 2 188*4882a593Smuzhiyun #define WPS_ASSOC_ASSOC_FAIL 3 189*4882a593Smuzhiyun #define WPS_ASSOC_IP_FAIL 4 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun /* Authentication types */ 192*4882a593Smuzhiyun #define WPS_AUTHTYPE_OPEN 0x0001 193*4882a593Smuzhiyun #define WPS_AUTHTYPE_WPAPSK 0x0002 /* Deprecated in WSC 2.0 */ 194*4882a593Smuzhiyun #define WPS_AUTHTYPE_SHARED 0x0004 /* Deprecated in WSC 2.0 */ 195*4882a593Smuzhiyun #define WPS_AUTHTYPE_WPA 0x0008 /* Deprecated in WSC 2.0 */ 196*4882a593Smuzhiyun #define WPS_AUTHTYPE_WPA2 0x0010 197*4882a593Smuzhiyun #define WPS_AUTHTYPE_WPA2PSK 0x0020 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun /* Config methods */ 200*4882a593Smuzhiyun #define WPS_CONFMET_USBA 0x0001 /* Deprecated in WSC 2.0 */ 201*4882a593Smuzhiyun #define WPS_CONFMET_ETHERNET 0x0002 /* Deprecated in WSC 2.0 */ 202*4882a593Smuzhiyun #define WPS_CONFMET_LABEL 0x0004 203*4882a593Smuzhiyun #define WPS_CONFMET_DISPLAY 0x0008 204*4882a593Smuzhiyun #define WPS_CONFMET_EXT_NFC_TOK 0x0010 205*4882a593Smuzhiyun #define WPS_CONFMET_INT_NFC_TOK 0x0020 206*4882a593Smuzhiyun #define WPS_CONFMET_NFC_INTF 0x0040 207*4882a593Smuzhiyun #define WPS_CONFMET_PBC 0x0080 208*4882a593Smuzhiyun #define WPS_CONFMET_KEYPAD 0x0100 209*4882a593Smuzhiyun /* WSC 2.0 */ 210*4882a593Smuzhiyun #define WPS_CONFMET_VIRT_PBC 0x0280 211*4882a593Smuzhiyun #define WPS_CONFMET_PHY_PBC 0x0480 212*4882a593Smuzhiyun #define WPS_CONFMET_VIRT_DISPLAY 0x2008 213*4882a593Smuzhiyun #define WPS_CONFMET_PHY_DISPLAY 0x4008 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun /* WPS error messages */ 216*4882a593Smuzhiyun #define WPS_ERROR_NO_ERROR 0 217*4882a593Smuzhiyun #define WPS_ERROR_OOB_INT_READ_ERR 1 218*4882a593Smuzhiyun #define WPS_ERROR_DECRYPT_CRC_FAIL 2 219*4882a593Smuzhiyun #define WPS_ERROR_CHAN24_NOT_SUPP 3 220*4882a593Smuzhiyun #define WPS_ERROR_CHAN50_NOT_SUPP 4 221*4882a593Smuzhiyun #define WPS_ERROR_SIGNAL_WEAK 5 /* Deprecated in WSC 2.0 */ 222*4882a593Smuzhiyun #define WPS_ERROR_NW_AUTH_FAIL 6 /* Deprecated in WSC 2.0 */ 223*4882a593Smuzhiyun #define WPS_ERROR_NW_ASSOC_FAIL 7 /* Deprecated in WSC 2.0 */ 224*4882a593Smuzhiyun #define WPS_ERROR_NO_DHCP_RESP 8 /* Deprecated in WSC 2.0 */ 225*4882a593Smuzhiyun #define WPS_ERROR_FAILED_DHCP_CONF 9 /* Deprecated in WSC 2.0 */ 226*4882a593Smuzhiyun #define WPS_ERROR_IP_ADDR_CONFLICT 10 /* Deprecated in WSC 2.0 */ 227*4882a593Smuzhiyun #define WPS_ERROR_FAIL_CONN_REGISTRAR 11 228*4882a593Smuzhiyun #define WPS_ERROR_MULTI_PBC_DETECTED 12 229*4882a593Smuzhiyun #define WPS_ERROR_ROGUE_SUSPECTED 13 230*4882a593Smuzhiyun #define WPS_ERROR_DEVICE_BUSY 14 231*4882a593Smuzhiyun #define WPS_ERROR_SETUP_LOCKED 15 232*4882a593Smuzhiyun #define WPS_ERROR_MSG_TIMEOUT 16 /* Deprecated in WSC 2.0 */ 233*4882a593Smuzhiyun #define WPS_ERROR_REG_SESSION_TIMEOUT 17 /* Deprecated in WSC 2.0 */ 234*4882a593Smuzhiyun #define WPS_ERROR_DEV_PWD_AUTH_FAIL 18 235*4882a593Smuzhiyun #define WPS_ERROR_60GHZ_NOT_SUPPORT 19 236*4882a593Smuzhiyun #define WPS_ERROR_PKH_MISMATCH 20 /* Public Key Hash Mismatch */ 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun /* Connection types */ 239*4882a593Smuzhiyun #define WPS_CONNTYPE_ESS 0x01 240*4882a593Smuzhiyun #define WPS_CONNTYPE_IBSS 0x02 241*4882a593Smuzhiyun 242*4882a593Smuzhiyun /* Device password ID */ 243*4882a593Smuzhiyun #define WPS_DEVICEPWDID_DEFAULT 0x0000 244*4882a593Smuzhiyun #define WPS_DEVICEPWDID_USER_SPEC 0x0001 245*4882a593Smuzhiyun #define WPS_DEVICEPWDID_MACHINE_SPEC 0x0002 246*4882a593Smuzhiyun #define WPS_DEVICEPWDID_REKEY 0x0003 247*4882a593Smuzhiyun #define WPS_DEVICEPWDID_PUSH_BTN 0x0004 248*4882a593Smuzhiyun #define WPS_DEVICEPWDID_REG_SPEC 0x0005 249*4882a593Smuzhiyun #define WPS_DEVICEPWDID_IBSS 0x0006 250*4882a593Smuzhiyun #define WPS_DEVICEPWDID_NFC_CHO 0x0007 /* NFC-Connection-Handover */ 251*4882a593Smuzhiyun #define WPS_DEVICEPWDID_WFDS 0x0008 /* Wi-Fi Direct Services Specification */ 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun /* Encryption type */ 254*4882a593Smuzhiyun #define WPS_ENCRTYPE_NONE 0x0001 255*4882a593Smuzhiyun #define WPS_ENCRTYPE_WEP 0x0002 /* Deprecated in WSC 2.0 */ 256*4882a593Smuzhiyun #define WPS_ENCRTYPE_TKIP 0x0004 /* Deprecated in version 2.0. TKIP can only 257*4882a593Smuzhiyun * be advertised on the AP when Mixed Mode 258*4882a593Smuzhiyun * is enabled (Encryption Type is 0x000c). 259*4882a593Smuzhiyun */ 260*4882a593Smuzhiyun #define WPS_ENCRTYPE_AES 0x0008 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun /* WPS Message Types */ 263*4882a593Smuzhiyun #define WPS_ID_BEACON 0x01 264*4882a593Smuzhiyun #define WPS_ID_PROBE_REQ 0x02 265*4882a593Smuzhiyun #define WPS_ID_PROBE_RESP 0x03 266*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M1 0x04 267*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M2 0x05 268*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M2D 0x06 269*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M3 0x07 270*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M4 0x08 271*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M5 0x09 272*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M6 0x0A 273*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M7 0x0B 274*4882a593Smuzhiyun #define WPS_ID_MESSAGE_M8 0x0C 275*4882a593Smuzhiyun #define WPS_ID_MESSAGE_ACK 0x0D 276*4882a593Smuzhiyun #define WPS_ID_MESSAGE_NACK 0x0E 277*4882a593Smuzhiyun #define WPS_ID_MESSAGE_DONE 0x0F 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun /* WSP private ID for local use */ 280*4882a593Smuzhiyun #define WPS_PRIVATE_ID_IDENTITY (WPS_ID_MESSAGE_DONE + 1) 281*4882a593Smuzhiyun #define WPS_PRIVATE_ID_WPS_START (WPS_ID_MESSAGE_DONE + 2) 282*4882a593Smuzhiyun #define WPS_PRIVATE_ID_FAILURE (WPS_ID_MESSAGE_DONE + 3) 283*4882a593Smuzhiyun #define WPS_PRIVATE_ID_FRAG (WPS_ID_MESSAGE_DONE + 4) 284*4882a593Smuzhiyun #define WPS_PRIVATE_ID_FRAG_ACK (WPS_ID_MESSAGE_DONE + 5) 285*4882a593Smuzhiyun #define WPS_PRIVATE_ID_EAPOL_START (WPS_ID_MESSAGE_DONE + 6) 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun /* Device Type categories for primary and secondary device types */ 288*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_COMPUTER 1 289*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_INPUT_DEVICE 2 290*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_PRINTER 3 291*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_CAMERA 4 292*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_STORAGE 5 293*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_NW_INFRA 6 294*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_DISPLAYS 7 295*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_MM_DEVICES 8 296*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_GAME_DEVICES 9 297*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_TELEPHONE 10 298*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_CAT_AUDIO_DEVICES 11 /* WSC 2.0 */ 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun /* Device Type sub categories for primary and secondary device types */ 301*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_PC 1 302*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_SERVER 2 303*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_MEDIA_CTR 3 304*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_UM_PC 4 /* WSC 2.0 */ 305*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_NOTEBOOK 5 /* WSC 2.0 */ 306*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_DESKTOP 6 /* WSC 2.0 */ 307*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_MID 7 /* WSC 2.0 */ 308*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_COMP_NETBOOK 8 /* WSC 2.0 */ 309*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_Keyboard 1 /* WSC 2.0 */ 310*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_MOUSE 2 /* WSC 2.0 */ 311*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_JOYSTICK 3 /* WSC 2.0 */ 312*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_TRACKBALL 4 /* WSC 2.0 */ 313*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_GAM_CTRL 5 /* WSC 2.0 */ 314*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_REMOTE 6 /* WSC 2.0 */ 315*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_TOUCHSCREEN 7 /* WSC 2.0 */ 316*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_BIO_READER 8 /* WSC 2.0 */ 317*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_INP_BAR_READER 9 /* WSC 2.0 */ 318*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PRTR_PRINTER 1 319*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PRTR_SCANNER 2 320*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PRTR_FAX 3 /* WSC 2.0 */ 321*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PRTR_COPIER 4 /* WSC 2.0 */ 322*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PRTR_ALLINONE 5 /* WSC 2.0 */ 323*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_CAM_DGTL_STILL 1 324*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_CAM_VIDEO_CAM 2 /* WSC 2.0 */ 325*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_CAM_WEB_CAM 3 /* WSC 2.0 */ 326*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_CAM_SECU_CAM 4 /* WSC 2.0 */ 327*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_STOR_NAS 1 328*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_NW_AP 1 329*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_NW_ROUTER 2 330*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_NW_SWITCH 3 331*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_NW_GATEWAY 4 /* WSC 2.0 */ 332*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_NW_BRIDGE 5 /* WSC 2.0 */ 333*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_DISP_TV 1 334*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_DISP_PIC_FRAME 2 335*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_DISP_PROJECTOR 3 336*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_DISP_MONITOR 4 /* WSC 2.0 */ 337*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_MM_DAR 1 338*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_MM_PVR 2 339*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_MM_MCX 3 340*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_MM_STB 4 /* WSC 2.0 */ 341*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_MM_MS_ME 5 /* WSC 2.0 */ 342*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_MM_PVP 6 /* WSC 2.0 */ 343*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_GAM_XBOX 1 344*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_GAM_XBOX_360 2 345*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_GAM_PS 3 346*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_GAM_GC 4 /* WSC 2.0 */ 347*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_GAM_PGD 5 /* WSC 2.0 */ 348*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PHONE_WM 1 349*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PHONE_PSM 2 /* WSC 2.0 */ 350*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PHONE_PDM 3 /* WSC 2.0 */ 351*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PHONE_SSM 4 /* WSC 2.0 */ 352*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_PHONE_SDM 5 /* WSC 2.0 */ 353*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_TUNER 1 /* WSC 2.0 */ 354*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_SPEAKERS 2 /* WSC 2.0 */ 355*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_PMP 3 /* WSC 2.0 */ 356*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_HEADSET 4 /* WSC 2.0 */ 357*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_HPHONE 5 /* WSC 2.0 */ 358*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_MPHONE 6 /* WSC 2.0 */ 359*4882a593Smuzhiyun #define WPS_DEVICE_TYPE_SUB_CAT_AUDIO_HTS 7 /* WSC 2.0 */ 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun /* Device request/response type */ 362*4882a593Smuzhiyun #define WPS_MSGTYPE_ENROLLEE_INFO_ONLY 0x00 363*4882a593Smuzhiyun #define WPS_MSGTYPE_ENROLLEE_OPEN_8021X 0x01 364*4882a593Smuzhiyun #define WPS_MSGTYPE_REGISTRAR 0x02 365*4882a593Smuzhiyun #define WPS_MSGTYPE_AP_WLAN_MGR 0x03 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun /* RF Band */ 368*4882a593Smuzhiyun #define WPS_RFBAND_24GHZ 0x01 369*4882a593Smuzhiyun #define WPS_RFBAND_50GHZ 0x02 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun /* Simple Config state */ 372*4882a593Smuzhiyun #define WPS_SCSTATE_UNCONFIGURED 0x01 373*4882a593Smuzhiyun #define WPS_SCSTATE_CONFIGURED 0x02 374*4882a593Smuzhiyun #define WPS_SCSTATE_OFF 11 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun /* WPS Vendor extension key */ 377*4882a593Smuzhiyun #define WPS_OUI_HEADER_LEN 2 378*4882a593Smuzhiyun #define WPS_OUI_HEADER_SIZE 4 379*4882a593Smuzhiyun #define WPS_OUI_FIXED_HEADER_OFF 16 380*4882a593Smuzhiyun #define WPS_WFA_SUBID_V2_OFF 3 381*4882a593Smuzhiyun #define WPS_WFA_V2_OFF 5 382*4882a593Smuzhiyun 383*4882a593Smuzhiyun #ifdef __cplusplus 384*4882a593Smuzhiyun } 385*4882a593Smuzhiyun #endif // endif 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun #endif /* _WPS_ */ 388