Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4|回复: 4
打印 上一主题 下一主题

强制修改系统支持超过8个,会出现如下错误

[复制链接]

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
跳转到指定楼层
楼主
发表于 2016-5-13 05:52:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<4>[ 3647.901338]<0> (0)[2689:tx_thread][wlan] nicRxProcessMgmtPacket: (INIT INFO) QM RX MGT: net 1 sta idx 254 wlan idx 0 ssn 2208 ptype 3 subtype 11 11 1
<4>[ 3647.901422]<0> (0)[2689:tx_thread][wlan] p2pFuncValidateAuth: (P2P TRACE) p2pValidate Authentication Frame
<4>[ 3647.901583]<0> (0)[2689:tx_thread][wlan] nicTxCmd: (INIT TRACE) Wait Cmd TxSeqNum:25
<4>[ 3647.901893]<0>-(0)[2689:tx_thread][wlan] nicTxReleaseResource: (TX STATE) Release: TC4 count 1, Free=3; TC5 count 0, Free=8
<4>[ 3647.902562]<0> (0)[2689:tx_thread][wlan] nicRxProcessMgmtPacket: (INIT INFO) QM RX MGT: net 1 sta idx 8 wlan idx 0 ssn 2208 ptype 3 subtype 11 11 1
<4>[ 3647.902637]<0> (0)[2689:tx_thread][wlan] p2pFuncValidateAuth: (P2P TRACE) p2pValidate Authentication Frame
<4>[ 3647.902700]<0> (0)[2689:tx_thread][wlan] **Warning[/media/doraemon/works/android/mtk/6735/b2/alps_ok/kernel-3.10/drivers/misc/mediatek/connectivity/conn_soc/drv_wlan/mt_wifi/wlan/mgmt/aaa_fsm.c:440]-[wlan] aaaFsmRunEventRxAuth: (AAA WARN) Previous AuthAssocState (7) != IDLE.
<4>[ 3647.902814]<0> (0)[2689:tx_thread][wlan] nicTxCmd: (INIT TRACE) Wait Cmd TxSeqNum:26
<4>[ 3647.907316]<0>-(0)[2689:tx_thread][wlan] nicTxReleaseResource: (TX STATE) Release: TC4 count 1, Free=3; TC5 count 0, Free=8
<4>[ 3647.907410]<0> (0)[2689:tx_thread][wlan] nicRxProcessEventPacket: (INIT TRACE) prEvent->ucEID = 23
<4>[ 3647.907464]<0> (0)[2689:tx_thread][wlan] nicRxProcessEventPacket: (INIT TRACE) EVENT_ID_TX_DONE PacketSeq:25 ucStatus: 0 SN: 2774

回复

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
沙发
 楼主| 发表于 2016-5-13 06:24:25 | 只看该作者
/*----------------------------------------------------------------------------*/
/*!
* @brief This function will process the Rx (Re)Association Request Frame and then
*        trigger AAA FSM.
*
* @param[in] prAdapter          Pointer to the Adapter structure.
* @param[in] prSwRfb            Pointer to the SW_RFB_T structure.
*
* @retval WLAN_STATUS_SUCCESS           Always return success
*/
/*----------------------------------------------------------------------------*/
WLAN_STATUS
aaaFsmRunEventRxAssoc (
    IN P_ADAPTER_T prAdapter,
    IN P_SW_RFB_T prSwRfb
    )
{
    P_BSS_INFO_T prBssInfo;
    P_STA_RECORD_T prStaRec = (P_STA_RECORD_T)NULL;
    UINT_16 u2StatusCode = STATUS_CODE_RESERVED;
    BOOLEAN fgReplyAssocResp = FALSE;


    ASSERT(prAdapter);

    do {

        //4 <1> Check if we have the STA_RECORD_T for incoming Assoc Req
        prStaRec = cnmGetStaRecByIndex(prAdapter, prSwRfb->ucStaRecIdx);

        /* We should have the corresponding Sta Record. */
        if ((!prStaRec) || (!prStaRec->fgIsInUse)) {
            ASSERT(0); // Only for debug phase
            break;
        }

        if (!IS_CLIENT_STA(prStaRec)) {
            break;
        }

        if (prStaRec->ucStaState == STA_STATE_3) {
            /* Do Reassocation */
        }
        else if ((prStaRec->ucStaState == STA_STATE_2) &&
                 (prStaRec->eAuthAssocState == AAA_STATE_SEND_AUTH2)) {
            /* Normal case */
        }
        else {
            DBGLOG(AAA, WARN, ("Previous AuthAssocState (%d) != SEND_AUTH2.\n",
                prStaRec->eAuthAssocState));
            break;
        }

        /* update RCPI */
        prStaRec->ucRCPI = prSwRfb->prHifRxHdr->ucRcpi;

        //4 <2> Check P2P network conditions
#if CFG_ENABLE_WIFI_DIRECT
        if ((prAdapter->fgIsP2PRegistered) && (IS_STA_IN_P2P(prStaRec))) {

            prBssInfo = &(prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_P2P_INDEX]);

            if (prBssInfo->fgIsNetActive) {

                //4 <2.1> Validate Assoc Req Frame and get Status Code
                /* Check if for this BSSID */
                if (WLAN_STATUS_SUCCESS ==
                    assocProcessRxAssocReqFrame(prAdapter,
                                                prSwRfb,
                                                &u2StatusCode)) {

                    if (STATUS_CODE_SUCCESSFUL == u2StatusCode) {
                        //4 <2.2> Validate Assoc Req  Frame for Network Specific Conditions
                        fgReplyAssocResp = p2pFuncValidateAssocReq(
                                                prAdapter,
                                                prSwRfb,
                                                (PUINT_16)&u2StatusCode);
                    }
                    else {
                        fgReplyAssocResp = TRUE;
                    }

                    break;
                }
            }
        }
#endif /* CFG_ENABLE_WIFI_DIRECT */

回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
板凳
 楼主| 发表于 2016-5-13 06:26:00 | 只看该作者
/*----------------------------------------------------------------------------*/
/*!
* @brief This function will validate the Rx Auth Frame and then return
*        the status code to AAA to indicate if need to perform following actions
*        when the specified conditions were matched.
*
* @param[in] prAdapter          Pointer to the Adapter structure.
* @param[in] prSwRfb            Pointer to SW RFB data structure.
* @param[in] pprStaRec          Pointer to pointer of STA_RECORD_T structure.
* @param[out] pu2StatusCode     The Status Code of Validation Result
*
* @retval TRUE      Reply the Auth
* @retval FALSE     Don't reply the Auth
*/
/*----------------------------------------------------------------------------*/
BOOLEAN
p2pFuncValidateAuth (
    IN P_ADAPTER_T prAdapter,
    IN P_SW_RFB_T prSwRfb,
    IN PP_STA_RECORD_T pprStaRec,
    OUT PUINT_16 pu2StatusCode
    )
{
    BOOLEAN fgReplyAuth = TRUE;
    P_BSS_INFO_T prP2pBssInfo = (P_BSS_INFO_T)NULL;
    P_STA_RECORD_T prStaRec = (P_STA_RECORD_T)NULL;
    P_WLAN_AUTH_FRAME_T prAuthFrame = (P_WLAN_AUTH_FRAME_T)NULL;

   DBGLOG(P2P, TRACE, ("p2pValidate Authentication Frame\n"))

    do {
        ASSERT_BREAK((prAdapter != NULL) &&
                                    (prSwRfb != NULL) &&
                                    (pprStaRec != NULL) &&
                                    (pu2StatusCode != NULL));

        /* P2P 3.2.8 */
        *pu2StatusCode = STATUS_CODE_REQ_DECLINED;

        prP2pBssInfo = &(prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_P2P_INDEX]);
        prAuthFrame = (P_WLAN_AUTH_FRAME_T)prSwRfb->pvHeader;

        if ((prP2pBssInfo->eCurrentOPMode != OP_MODE_ACCESS_POINT) || (prP2pBssInfo->eIntendOPMode != OP_MODE_NUM)) {
            /* We are not under AP Mode yet. */
            fgReplyAuth = FALSE;
            DBGLOG(P2P, WARN, ("Current OP mode is not under AP mode. (%d)\n", prP2pBssInfo->eCurrentOPMode));
            break;
        }

        prStaRec = cnmGetStaRecByAddress(prAdapter,
                            (UINT_8) NETWORK_TYPE_P2P_INDEX,
                            prAuthFrame->aucSrcAddr);

        if (!prStaRec) {
            prStaRec = cnmStaRecAlloc(prAdapter,
                            (UINT_8) NETWORK_TYPE_P2P_INDEX);

            /* TODO(Kevin): Error handling of allocation of STA_RECORD_T for
             * exhausted case and do removal of unused STA_RECORD_T.
             */
            /* Sent a message event to clean un-used STA_RECORD_T. */
            ASSERT(prStaRec);
                        if (!prStaRec) {
                                DBGLOG(AAA, INFO, ("Station Limit Full. Decline a new Authentication.\n"));
                                break;
                        }

            COPY_MAC_ADDR(prStaRec->aucMacAddr, prAuthFrame->aucSrcAddr);

            prSwRfb->ucStaRecIdx = prStaRec->ucIndex;

            prStaRec->u2BSSBasicRateSet = prP2pBssInfo->u2BSSBasicRateSet;

            prStaRec->u2DesiredNonHTRateSet = RATE_SET_ERP_P2P;

            prStaRec->u2OperationalRateSet = RATE_SET_ERP_P2P;
            prStaRec->ucPhyTypeSet = PHY_TYPE_SET_802_11GN;
            prStaRec->eStaType = STA_TYPE_P2P_GC;

            /* NOTE(Kevin): Better to change state here, not at TX Done */
            cnmStaRecChangeState(prAdapter, prStaRec, STA_STATE_1);
        }
        else {
            prSwRfb->ucStaRecIdx = prStaRec->ucIndex;

            if ((prStaRec->ucStaState > STA_STATE_1) && (IS_STA_IN_P2P(prStaRec))) {

                cnmStaRecChangeState(prAdapter, prStaRec, STA_STATE_1);

                p2pFuncResetStaRecStatus(prAdapter, prStaRec);

                bssRemoveStaRecFromClientList(prAdapter, prP2pBssInfo, prStaRec);
            }

        }

        if (prP2pBssInfo->rStaRecOfClientList.u4NumElem >= P2P_MAXIMUM_CLIENT_COUNT ||
            kalP2PMaxClients(prAdapter->prGlueInfo, prP2pBssInfo->rStaRecOfClientList.u4NumElem)) {
            /* GROUP limit full. */
            /* P2P 3.2.8 */
            DBGLOG(P2P, WARN, ("Group Limit Full. (%d)\n", (INT_16)prP2pBssInfo->rStaRecOfClientList.u4NumElem));

                        bssRemoveStaRecFromClientList(prAdapter, prP2pBssInfo, prStaRec);
                       
            cnmStaRecFree(prAdapter, prStaRec, FALSE);
                        fgReplyAuth = FALSE;
            break;
        }
        else {
           /* Hotspot Blacklist */
            if(prAuthFrame->aucSrcAddr) {
                if(kalP2PCmpBlackList(prAdapter->prGlueInfo, prAuthFrame->aucSrcAddr)) {
                    fgReplyAuth = FALSE;
                    return fgReplyAuth;
                }
            }      
        }

        //prStaRec->eStaType = STA_TYPE_INFRA_CLIENT;
        prStaRec->eStaType = STA_TYPE_P2P_GC;

        prStaRec->ucNetTypeIndex = NETWORK_TYPE_P2P_INDEX;

        /* Update Station Record - Status/Reason Code */
        prStaRec->u2StatusCode = STATUS_CODE_SUCCESSFUL;

        prStaRec->ucJoinFailureCount = 0;

        *pprStaRec = prStaRec;

        *pu2StatusCode = STATUS_CODE_SUCCESSFUL;

    } while (FALSE);


    return fgReplyAuth;

} /* p2pFuncValidateAuth */

回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
地板
 楼主| 发表于 2016-5-13 06:27:34 | 只看该作者
/*----------------------------------------------------------------------------*/
/*!
* \brief to compare the black list of Hotspot
*
* \param[in]
*           prGlueInfo
*
* \return
*/
/*----------------------------------------------------------------------------*/
BOOLEAN kalP2PCmpBlackList(IN P_GLUE_INFO_T prGlueInfo, IN PARAM_MAC_ADDRESS rbssid)
{
        UINT_8 aucNullAddr[] = NULL_MAC_ADDR;
        BOOLEAN fgIsExsit = FALSE;
        UINT_32 i;

        ASSERT(prGlueInfo);
        ASSERT(prGlueInfo->prP2PInfo);

        for (i = 0; i < 80; i++) {//zcfdebug
                if (UNEQUAL_MAC_ADDR(rbssid, aucNullAddr)) {
                        if (EQUAL_MAC_ADDR(&(prGlueInfo->prP2PInfo->aucblackMACList), rbssid)) {
                                fgIsExsit = TRUE;
                                return fgIsExsit;
                        }
                }
        }

        return fgIsExsit;

}

回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
5#
 楼主| 发表于 2016-5-13 06:28:24 | 只看该作者
#if CFG_SUPPORT_HOTSPOT_WPS_MANAGER
        /* Hotspot Client Management */
        PARAM_MAC_ADDRESS aucblackMACList[80]; // dependent with  #define P2P_MAXIMUM_CLIENT_COUNT 10, fix me to PARAM_MAC_ADDRESS aucblackMACList[P2P_MAXIMUM_CLIENT_COUNT];
        UINT_8 ucMaxClients;
#endif
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2025-12-15 02:20 , Processed in 0.013920 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表