wlan: Deprecate all WAPI ioctls

ALL WAPI ioctls WLAN_PRIV_SET_WAPI_MODE, WLAN_PRIV_GET_WAPI_MODE
WLAN_PRIV_SET_WAPI_ASSOC_INFO, WLAN_PRIV_SET_WAPI_KEY,
WLAN_PRIV_SET_WAPI_BKID, WLAN_PRIV_GET_WAPI_BKID are not being
used, hence removing the source code related to all these ioctls

Change-Id: I204cd579b4e29df7e995f30cc0aa8612bc7965ee
CRs-Fixed: 677410
Bug: 27776888
This commit is contained in:
Girish Gowli 2016-04-15 16:50:13 -07:00 committed by Min Chong
parent a2d9b94c20
commit fc976934bd

View file

@ -250,17 +250,12 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2},
#define WLAN_PRIV_DEL_TSPEC (SIOCIWFIRSTPRIV + 11)
#define WLAN_PRIV_GET_TSPEC (SIOCIWFIRSTPRIV + 13)
#ifdef FEATURE_WLAN_WAPI
/* Private ioctls EVEN NO: SET, ODD NO:GET */
#define WLAN_PRIV_SET_WAPI_MODE (SIOCIWFIRSTPRIV + 8)
#define WLAN_PRIV_GET_WAPI_MODE (SIOCIWFIRSTPRIV + 16)
#define WLAN_PRIV_SET_WAPI_ASSOC_INFO (SIOCIWFIRSTPRIV + 10)
#define WLAN_PRIV_SET_WAPI_KEY (SIOCIWFIRSTPRIV + 12)
#define WLAN_PRIV_SET_WAPI_BKID (SIOCIWFIRSTPRIV + 14)
#define WLAN_PRIV_GET_WAPI_BKID (SIOCIWFIRSTPRIV + 15)
#define WAPI_PSK_AKM_SUITE 0x02721400
#define WAPI_CERT_AKM_SUITE 0x01721400
#endif
/* (SIOCIWFIRSTPRIV + 8) is currently unused */
/* (SIOCIWFIRSTPRIV + 16) is currently unused */
/* (SIOCIWFIRSTPRIV + 10) is currently unused */
/* (SIOCIWFIRSTPRIV + 12) is currently unused */
/* (SIOCIWFIRSTPRIV + 14) is currently unused */
/* (SIOCIWFIRSTPRIV + 15) is currently unused */
#ifdef FEATURE_OEM_DATA_SUPPORT
/* Private ioctls for setting the measurement configuration */
@ -4948,287 +4943,6 @@ static int iw_get_tspec(struct net_device *dev, struct iw_request_info *info,
return 0;
}
#ifdef FEATURE_WLAN_WAPI
static int iw_qcom_set_wapi_mode(struct net_device *dev, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
hdd_wext_state_t *pWextState = WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter);
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
tCsrRoamProfile *pRoamProfile = &pWextState->roamProfile;
WAPI_FUNCTION_MODE *pWapiMode = (WAPI_FUNCTION_MODE *)wrqu->data.pointer;
hddLog(LOG1, "The function iw_qcom_set_wapi_mode called");
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
hddLog(LOG1, "%s: Input Data (wreq) WAPI Mode:%02d", __func__, pWapiMode->wapiMode);
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
"%s:LOGP in Progress. Ignore!!!", __func__);
return -EBUSY;
}
if(WZC_ORIGINAL == pWapiMode->wapiMode) {
hddLog(LOG1, "%s: WAPI Mode Set to OFF", __func__);
/* Set Encryption mode to defualt , this allows next successfull non-WAPI Association */
pRoamProfile->EncryptionType.numEntries = 1;
pRoamProfile->EncryptionType.encryptionType[0] = eCSR_ENCRYPT_TYPE_NONE;
pRoamProfile->mcEncryptionType.numEntries = 1;
pRoamProfile->mcEncryptionType.encryptionType[0] = eCSR_ENCRYPT_TYPE_NONE;
pRoamProfile->AuthType.numEntries = 1;
pHddStaCtx->conn_info.authType = eCSR_AUTH_TYPE_OPEN_SYSTEM;
pRoamProfile->AuthType.authType[0] = pHddStaCtx->conn_info.authType;
}
else if(WAPI_EXTENTION == pWapiMode->wapiMode) {
hddLog(LOG1, "%s: WAPI Mode Set to ON", __func__);
}
else
return -EINVAL;
pAdapter->wapi_info.nWapiMode = pWapiMode->wapiMode;
return 0;
}
static int iw_qcom_get_wapi_mode(struct net_device *dev, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
WAPI_FUNCTION_MODE *pWapiMode = (WAPI_FUNCTION_MODE *)(extra);
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
"%s:LOGP in Progress. Ignore!!!", __func__);
return -EBUSY;
}
hddLog(LOG1, "The function iw_qcom_get_wapi_mode called");
pWapiMode->wapiMode = pAdapter->wapi_info.nWapiMode;
hddLog(LOG1, "%s: GET WAPI Mode Value:%02d", __func__, pWapiMode->wapiMode);
printk("\nGET WAPI MODE:%d",pWapiMode->wapiMode);
return 0;
}
static int iw_qcom_set_wapi_assoc_info(struct net_device *dev, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
// WAPI_AssocInfo *pWapiAssocInfo = (WAPI_AssocInfo *)(wrqu->data.pointer);
WAPI_AssocInfo *pWapiAssocInfo = (WAPI_AssocInfo *)(extra);
int i = 0, j = 0;
hddLog(LOG1, "The function iw_qcom_set_wapi_assoc_info called");
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
hddLog(LOG1, "%s: Received data %s", __func__, (char*)extra);
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
"%s:LOGP in Progress. Ignore!!!", __func__);
return -EBUSY;
}
VOS_ASSERT(pWapiAssocInfo);
hddLog(LOG1, "%s: INPUT DATA:\nElement ID:0x%02x Length:0x%02x Version:0x%04x\n",__func__,pWapiAssocInfo->elementID,pWapiAssocInfo->length,pWapiAssocInfo->version);
hddLog(LOG1,"%s: akm Suite Cnt:0x%04x",__func__,pWapiAssocInfo->akmSuiteCount);
for(i =0 ; i < 16 ; i++)
hddLog(LOG1,"akm suite[%02d]:0x%08lx",i,pWapiAssocInfo->akmSuite[i]);
hddLog(LOG1,"%s: Unicast Suite Cnt:0x%04x",__func__,pWapiAssocInfo->unicastSuiteCount);
for(i =0 ; i < 16 ; i++)
hddLog(LOG1, "Unicast suite[%02d]:0x%08lx",i,pWapiAssocInfo->unicastSuite[i]);
hddLog(LOG1,"%s: Multicast suite:0x%08lx Wapi capa:0x%04x",__func__,pWapiAssocInfo->multicastSuite,pWapiAssocInfo->wapiCability);
hddLog(LOG1, "%s: BKID Cnt:0x%04x\n",__func__,pWapiAssocInfo->bkidCount);
for(i = 0 ; i < 16 ; i++) {
hddLog(LOG1, "BKID List[%02d].bkid:0x",i);
for(j = 0 ; j < 16 ; j++)
hddLog(LOG1,"%02x",pWapiAssocInfo->bkidList[i].bkid[j]);
}
/* We are not using the entire IE as provided by the supplicant.
* This is being calculated by SME. This is the same as in the
* case of WPA. Only the auth mode information needs to be
* extracted here*/
if ( pWapiAssocInfo->akmSuite[0] == WAPI_PSK_AKM_SUITE ) {
hddLog(LOG1, "%s: WAPI AUTH MODE SET TO PSK",__func__);
pAdapter->wapi_info.wapiAuthMode = WAPI_AUTH_MODE_PSK;
}
if ( pWapiAssocInfo->akmSuite[0] == WAPI_CERT_AKM_SUITE) {
hddLog(LOG1, "%s: WAPI AUTH MODE SET TO CERTIFICATE",__func__);
pAdapter->wapi_info.wapiAuthMode = WAPI_AUTH_MODE_CERT;
}
return 0;
}
static int iw_qcom_set_wapi_key(struct net_device *dev, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
eHalStatus halStatus = eHAL_STATUS_SUCCESS;
tANI_U32 roamId = 0xFF;
tANI_U8 *pKeyPtr = NULL;
v_BOOL_t isConnected = TRUE;
tCsrRoamSetKey setKey;
int i = 0;
WLAN_WAPI_KEY *pWapiKey = (WLAN_WAPI_KEY *)(extra);
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
"%s:LOGP in Progress. Ignore!!!", __func__);
return -EBUSY;
}
hddLog(LOG1, "The function iw_qcom_set_wapi_key called ");
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
hddLog(LOG1, "%s: Received data %s", __func__, (char*)extra);
hddLog(LOG1,":%s: INPUT DATA:\nKey Type:0x%02x Key Direction:0x%02x KEY ID:0x%02x\n", __func__, pWapiKey->keyType, pWapiKey->keyDirection, pWapiKey->keyId);
hddLog(LOG1,"Add Index:0x");
for(i =0 ; i < 12 ; i++)
hddLog(LOG1,"%02x",pWapiKey->addrIndex[i]);
hddLog(LOG1,"\n%s: WAPI ENCRYPTION KEY LENGTH:0x%04x", __func__,pWapiKey->wpiekLen);
hddLog(LOG1, "WAPI ENCRYPTION KEY:0x");
for(i =0 ; i < 16 ; i++)
hddLog(LOG1,"%02x",pWapiKey->wpiek[i]);
hddLog(LOG1,"\n%s: WAPI INTEGRITY CHECK KEY LENGTH:0x%04x", __func__,pWapiKey->wpickLen);
hddLog(LOG1,"WAPI INTEGRITY CHECK KEY:0x");
for(i =0 ; i < 16 ; i++)
hddLog(LOG1,"%02x",pWapiKey->wpick[i]);
hddLog(LOG1,"\nWAPI PN NUMBER:0x");
for(i = 0 ; i < 16 ; i++)
hddLog(LOG1,"%02x",pWapiKey->pn[i]);
// Clear the setkey memory
vos_mem_zero(&setKey,sizeof(tCsrRoamSetKey));
// Store Key ID
setKey.keyId = (unsigned char)( pWapiKey->keyId );
// SET WAPI Encryption
setKey.encType = eCSR_ENCRYPT_TYPE_WPI;
// Key Directionn both TX and RX
setKey.keyDirection = eSIR_TX_RX; // Do WE NEED to update this based on Key Type as GRP/UNICAST??
// the PAE role
setKey.paeRole = 0 ;
switch ( pWapiKey->keyType )
{
case PAIRWISE_KEY:
{
isConnected = hdd_connIsConnected(pHddStaCtx);
vos_mem_copy(setKey.peerMac,&pHddStaCtx->conn_info.bssId,WNI_CFG_BSSID_LEN);
break;
}
case GROUP_KEY:
{
vos_set_macaddr_broadcast( (v_MACADDR_t *)setKey.peerMac );
break;
}
default:
{
//Any other option is invalid.
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
"[%4d] %s() failed to Set Key. Invalid key type %d", __LINE__,__func__ , -1 );
hddLog(LOGE," %s: Error WAPI Key Add Type",__func__);
halStatus = !eHAL_STATUS_SUCCESS; // NEED TO UPDATE THIS WITH CORRECT VALUE
break; // NEED RETURN FROM HERE ????
}
}
// Concatenating the Encryption Key (EK) and the MIC key (CK): EK followed by CK
setKey.keyLength = (v_U16_t)((pWapiKey->wpiekLen)+(pWapiKey->wpickLen));
pKeyPtr = setKey.Key;
memcpy( pKeyPtr, pWapiKey->wpiek, pWapiKey->wpiekLen );
pKeyPtr += pWapiKey->wpiekLen;
memcpy( pKeyPtr, pWapiKey->wpick, pWapiKey->wpickLen );
// Set the new key with SME.
pHddStaCtx->roam_info.roamingState = HDD_ROAM_STATE_SETTING_KEY;
if ( isConnected ) {
halStatus = sme_RoamSetKey( WLAN_HDD_GET_HAL_CTX(pAdapter), pAdapter->sessionId, &setKey, &roamId );
if ( halStatus != eHAL_STATUS_SUCCESS )
{
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
"[%4d] sme_RoamSetKey returned ERROR status= %d", __LINE__, halStatus );
pHddStaCtx->roam_info.roamingState = HDD_ROAM_STATE_NONE;
}
}
#if 0 /// NEED TO CHECK ON THIS
else
{
// Store the keys in the adapter to be moved to the profile & passed to
// SME in the ConnectRequest if we are not yet in connected state.
memcpy( &pAdapter->setKey[ setKey.keyId ], &setKey, sizeof( setKey ) );
pAdapter->fKeySet[ setKey.keyId ] = TRUE;
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_MED,
" Saving key [idx= %d] to apply when moving to connected state ",
setKey.keyId );
}
#endif
return halStatus;
}
static int iw_qcom_set_wapi_bkid(struct net_device *dev, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
#ifdef WLAN_DEBUG
int i = 0;
WLAN_BKID_LIST *pBkid = ( WLAN_BKID_LIST *) (wrqu->data.pointer);
#endif
hddLog(LOG1, "The function iw_qcom_set_wapi_bkid called");
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
hddLog(LOG1, "%s: Received data %s", __func__, (char*)extra);
hddLog(LOG1,"%s: INPUT DATA:\n BKID Length:0x%08lx\n", __func__,pBkid->length);
hddLog(LOG1,"%s: BKID Cnt:0x%04lx",pBkid->BKIDCount);
hddLog(LOG1,"BKID KEY LIST[0]:0x");
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
"%s:LOGP in Progress. Ignore!!!", __func__);
return -EBUSY;
}
#ifdef WLAN_DEBUG
for(i =0 ; i < 16 ; i++)
hddLog(LOG1,"%02x",pBkid->BKID[0].bkid[i]);
#endif
return 0;
}
static int iw_qcom_get_wapi_bkid(struct net_device *dev, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
/* Yet to implement this function, 19th April 2010 */
hddLog(LOG1, "The function iw_qcom_get_wapi_bkid called ");
return 0;
}
#endif /* FEATURE_WLAN_WAPI */
#ifdef WLAN_FEATURE_VOWIFI_11R
//
//
@ -6895,14 +6609,6 @@ static const iw_handler we_private[] = {
[WLAN_PRIV_GET_OEM_DATA_RSP - SIOCIWFIRSTPRIV] = iw_get_oem_data_rsp, //oem data req Specifc
#endif
#ifdef FEATURE_WLAN_WAPI
[WLAN_PRIV_SET_WAPI_MODE - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_mode,
[WLAN_PRIV_GET_WAPI_MODE - SIOCIWFIRSTPRIV] = iw_qcom_get_wapi_mode,
[WLAN_PRIV_SET_WAPI_ASSOC_INFO - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_assoc_info,
[WLAN_PRIV_SET_WAPI_KEY - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_key,
[WLAN_PRIV_SET_WAPI_BKID - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_bkid,
[WLAN_PRIV_GET_WAPI_BKID - SIOCIWFIRSTPRIV] = iw_qcom_get_wapi_bkid,
#endif /* FEATURE_WLAN_WAPI */
#ifdef WLAN_FEATURE_VOWIFI_11R
[WLAN_PRIV_SET_FTIES - SIOCIWFIRSTPRIV] = iw_set_fties,
#endif
@ -7251,44 +6957,6 @@ static const struct iw_priv_args we_private_args[] = {
"get_oem_data_rsp" },
#endif
#ifdef FEATURE_WLAN_WAPI
/* handlers for main ioctl SET_WAPI_MODE */
{ WLAN_PRIV_SET_WAPI_MODE,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
0,
"SET_WAPI_MODE" },
/* handlers for main ioctl GET_WAPI_MODE */
{ WLAN_PRIV_GET_WAPI_MODE,
0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
"GET_WAPI_MODE" },
/* handlers for main ioctl SET_ASSOC_INFO */
{ WLAN_PRIV_SET_WAPI_ASSOC_INFO,
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 400,
0,
"SET_WAPI_ASSOC" },
/* handlers for main ioctl SET_WAPI_KEY */
{ WLAN_PRIV_SET_WAPI_KEY,
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 71,
0,
"SET_WAPI_KEY" },
/* handlers for main ioctl SET_WAPI_BKID */
{ WLAN_PRIV_SET_WAPI_BKID,
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 24,
0,
"SET_WAPI_BKID" },
/* handlers for main ioctl GET_WAPI_BKID */
{ WLAN_PRIV_GET_WAPI_BKID,
0,
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 24,
"GET_WAPI_BKID" },
#endif /* FEATURE_WLAN_WAPI */
/* handlers for main ioctl - host offload */
{
WLAN_PRIV_SET_HOST_OFFLOAD,