Пример #1
0
/*************************************************************************
* Function:
*
* Description:
*
* Input:
*
* Output:
*
**************************************************************************/
extern void macMgtSyncSrvInit(vmacApInfo_t *vmacSta_p)
{
    /* Init the Synchronization state machines */
    SyncSrvCtor(&vmacSta_p->mgtSync);
    mhsm_initialize(&vmacSta_p->mgtSync.super,&vmacSta_p->mgtSync.sTop);

}
Пример #2
0
/*************************************************************************
* Function: authSrv_Reset
*
* Description:
*
* Input:
*
* Output:
*
**************************************************************************/
extern SINT32 authSrv_Reset(vmacStaInfo_t *vStaInfo_p)
{
    mlmeApiStopTimer(vStaInfo_p, (UINT8 *)&vStaInfo_p->authTimer);
    /* Init the Authentication Request state machines */
    AuthReqSrvStaCtor(&vStaInfo_p->mgtStaAuthReq);
    mhsm_initialize(&vStaInfo_p->mgtStaAuthReq.super,&vStaInfo_p->mgtStaAuthReq.sTop);
    return MLME_SUCCESS;
}
Пример #3
0
void DfsInit(struct net_device  *pNetDev, struct wlprivate_data *wlpd_p)
{
	DfsAp *pdfsApMain = NULL ;

	if( !wlpd_p )
	{
		return ;
	}
	/* Init the DFS state machines */
	if(( pdfsApMain = (DfsAp *)kmalloc( sizeof( DfsAp ), GFP_KERNEL )) == NULL )
	{
		printk("Cannot allocate memory for DFS SM\n");
		return ;
	}
	wlpd_p->pdfsApMain = (DfsAp *)pdfsApMain ;
	DFSApCtor(pNetDev, pdfsApMain);
	mhsm_initialize(&pdfsApMain->super,&pdfsApMain->sTop);
	return ;
}
Пример #4
0
extern extStaDb_StaInfo_t *macMgtStaDbInit(vmacApInfo_t *vmacSta_p,IEEEtypes_MacAddr_t *staMacAddr, IEEEtypes_MacAddr_t *apMacAddr)
{
    MIB_802DOT11 *mib=vmacSta_p->Mib802dot11;
    extStaDb_StaInfo_t StaInfo;
    extStaDb_StaInfo_t *StaInfo_p = NULL;
    struct wlprivate *wlpptr = NETDEV_PRIV_P(struct wlprivate, vmacSta_p->dev);
    PeerInfo_t PeerInfo;

#ifdef DEBUG_PRINT
    printf("macMgtStaDbInit:: entered\n");
#endif
    WLDBG_ENTER(DBG_LEVEL_11);

    /* Station not in Stn table, hence add */
    memcpy(&StaInfo.Addr, staMacAddr, sizeof(IEEEtypes_MacAddr_t));
    memcpy(&StaInfo.Bssid, apMacAddr, sizeof(IEEEtypes_MacAddr_t));

    StaInfo.State = UNAUTHENTICATED;
    StaInfo.PwrMode = PWR_MODE_ACTIVE;
    StaInfo.StnId = AssignStnId();
    StaInfo.Aid = 0;
    StaInfo.AP = FALSE;
#ifdef WDS_FEATURE
    StaInfo.wdsInfo = NULL;
    StaInfo.wdsPortInfo = NULL;
#endif
#ifdef CLIENT_SUPPORT
    StaInfo.Client = FALSE;
#endif
#ifdef APCFGUR
    StaInfo.UR = 0;
#endif
#ifdef STA_INFO_DB
    StaInfo.Sq1 = 0;
    StaInfo.Sq2 = 0;
    StaInfo.RSSI= 0;
    StaInfo.Rate= 0;
#endif
    StaInfo.ClientMode = 0;
    StaInfo.mib_p= mib;
    StaInfo.dev = vmacSta_p->dev;
    if(*(mib->mib_ApMode)==AP_MODE_AandG)
    {
        if(memcmp(apMacAddr,vmacSta_p->macBssId,sizeof(IEEEtypes_MacAddr_t)))
        {
            StaInfo.ApMode=MIXED_MODE;
        }
        else
        {
            StaInfo.ApMode=AONLY_MODE;
        }
    }
#ifdef AP_URPTR
    if (!mib_wbMode)
#endif
    {
        if (extStaDb_AddSta(vmacSta_p,&StaInfo) != ADD_SUCCESS)
        {
            return NULL;
        }

#ifdef NEW_OSIF_POWERSAVE
        psProcessNewStn(staMacAddr, StaInfo.StnId);
#else
        NotifyNewStn(staMacAddr, StaInfo.StnId);
#endif

        if ((StaInfo_p = extStaDb_GetStaInfo(vmacSta_p,staMacAddr, 1)) == NULL)
        {
            return NULL;
        }
        setStaPeerInfoApMode(wlpptr, StaInfo_p, &PeerInfo, *(wlpptr->vmacSta_p->Mib802dot11->mib_ApMode), NULL);
        StaInfo_p->FwStaPtr = wlFwSetNewStn(vmacSta_p->dev, (u_int8_t *)staMacAddr, StaInfo_p->Aid, StaInfo_p->StnId, 0, &PeerInfo,0,0);  //add new station
        wlFwSetSecurity(vmacSta_p->dev,( u_int8_t *)staMacAddr);
        /* Init the state machines */
        /* Init Auth Request Srv SM */
        AuthReqSrvApCtor((AuthReqSrvAp *)&StaInfo_p->mgtAuthReq);
        mhsm_initialize(&StaInfo_p->mgtAuthReq.super,&StaInfo_p->mgtAuthReq.sTop);

        /* Init Auth Response Srv SM */
        AuthRspSrvApCtor((AuthRspSrvAp *)&StaInfo_p->mgtAuthRsp);
        mhsm_initialize(&StaInfo_p->mgtAuthRsp.super,&StaInfo_p->mgtAuthRsp.sTop);

        /* Init Association Srv SM */
        AssocSrvApCtor((AssocSrvAp *)&StaInfo_p->mgtAssoc);
        mhsm_initialize(&StaInfo_p->mgtAssoc.super,&StaInfo_p->mgtAssoc.sTop);


#ifdef APCFGUR
        /* Init remote control Srv SM */
        RemoteCtrlSrvCtor(&StaInfo_p->rmSrv);
        mhsm_initialize(&StaInfo_p->rmSrv.super,&StaInfo_p->rmSrv.sTop);
        StaInfo_p->rmSrv.userdata_p = (unsigned char *)StaInfo_p;
#endif
    }
    StaInfo_p->mgtAssoc.userdata_p = (unsigned char *)StaInfo_p;
    StaInfo_p->mgtAuthReq.userdata_p = (unsigned char *)StaInfo_p;
    StaInfo_p->mgtAuthRsp.userdata_p = (unsigned char *)StaInfo_p;
    WLDBG_EXIT(DBG_LEVEL_11);

    return StaInfo_p;
}
Пример #5
0
/*************************************************************************
* Function: childSrv_VmacStaInfoInit
*
* Description: Inital Client MLME Information Structure.
*              
*
* Input:       
*              
* Output:
**************************************************************************/
extern SINT32 childSrv_VmacStaInfoInit(vmacStaInfo_t *vStaInfo_p)
{
	vStaInfo_p->AssociatedFlag = 0;
#ifdef IEEE80211_DH
	vStaInfo_p->station11hTimerFired = 0;
#endif //IEEE80211_DH
	vStaInfo_p->IBssStartFlag = 0;
	vStaInfo_p->Adhoc_Active = 0;
	vStaInfo_p->ScanForAnyBeacons = TRUE;
	vStaInfo_p->NumScanChannels = 0;
	vStaInfo_p->counterInt = 0;
	vStaInfo_p->misMatchBssidCount = 0;
	vStaInfo_p->bcnCount = 0;
	vStaInfo_p->linkQuality = 0;
	vStaInfo_p->rxBcnCnt	= 0;
	vStaInfo_p->rxBcnPeriod = 100;
	vStaInfo_p->smeMain_State = STATE_IDLE;
	vStaInfo_p->macMgmtMain_State   = STATE_IDLE;
    vStaInfo_p->macMgmtMain_PostScanState = STATE_IDLE;
	vStaInfo_p->PostScanState = STATE_IDLE;
    vStaInfo_p->g_rcvdProbeRsp = 1;
	vStaInfo_p->macMgt_StaMode = *vStaInfo_p->mib_StaMode_p;
#ifdef IEEE80211_DH
	TimerInit( &vStaInfo_p->station11hTimer);
#endif //IEEE80211_DH
#ifdef WMON
	TimerInit( &vStaInfo_p->stationWMONTimer);
#endif //WMON
    /* Remove all the timer */
    /* assocTimer */
    mlmeApiStopTimer(vStaInfo_p, (UINT8 *)&vStaInfo_p->assocTimer);
	/* authTimer; */
    mlmeApiStopTimer(vStaInfo_p, (UINT8 *)&vStaInfo_p->authTimer);
    /* scaningTimer; */
    mlmeApiStopTimer(vStaInfo_p, (UINT8 *)&vStaInfo_p->scaningTimer);
    /* statusTimer; */
    syncSrv_SetStatusTimer(vStaInfo_p, 0); 
    #ifdef WPA_STA
    /* initialize the key management state machine. */
    KeyMgmtStaHskCtor(&vStaInfo_p->keyMgmtInfoSta_p->keyMgmtStaHskHsm);
    mhsm_initialize(&vStaInfo_p->keyMgmtInfoSta_p->keyMgmtStaHskHsm.super,&vStaInfo_p->keyMgmtInfoSta_p->keyMgmtStaHskHsm.sTop);
    if(vStaInfo_p->staSecurityMibs.mib_PrivacyTable_p->RSNEnabled)
    {
        KeyMgmtResetCounter(vStaInfo_p->keyMgmtInfoSta_p);
        CounterMeasureInit_Sta(&vStaInfo_p->keyMgmtInfoSta_p->sta_MIC_Error, TRUE);
    }
    else
    {
        CounterMeasureInit_Sta(&vStaInfo_p->keyMgmtInfoSta_p->sta_MIC_Error, FALSE);
    }
    #endif /* WPA_STA */
	/* Init the STA State Machine Services */
	macMgtSyncSrvStaInit(vStaInfo_p);
    vStaInfo_p->cmdHistory = 0;
	vStaInfo_p->macMgmtMain_PwrMode = PWR_MODE_ACTIVE;
	vStaInfo_p->ContinueScanning =  TRUE;
	vStaInfo_p->JoinRetryCount = 0;
	vStaInfo_p->AssocRetryCount = 0;
	vStaInfo_p->AuthRetryCount = 0;
	return 0;
}