Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96b3c83d authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Greg Kroah-Hartman
Browse files

Staging: rt28x0: run common/*.c files through Lindent

parent 66cd8d6e
Loading
Loading
Loading
Loading
+302 −308
Original line number Original line Diff line number Diff line
@@ -39,10 +39,7 @@
#include "../rt_config.h"
#include "../rt_config.h"
#include "action.h"
#include "action.h"



static VOID ReservedAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem);
static VOID ReservedAction(
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem);


/*
/*
    ==========================================================================
    ==========================================================================
@@ -61,36 +58,47 @@ static VOID ReservedAction(
        MT2_CLS3ERR              cls3err_action
        MT2_CLS3ERR              cls3err_action
    ==========================================================================
    ==========================================================================
 */
 */
VOID ActionStateMachineInit(
VOID ActionStateMachineInit(IN PRTMP_ADAPTER pAd,
    IN	PRTMP_ADAPTER	pAd,
			    IN STATE_MACHINE * S,
			    IN STATE_MACHINE * S,
			    OUT STATE_MACHINE_FUNC Trans[])
			    OUT STATE_MACHINE_FUNC Trans[])
{
{
	StateMachineInit(S, (STATE_MACHINE_FUNC *)Trans, MAX_ACT_STATE, MAX_ACT_MSG, (STATE_MACHINE_FUNC)Drop, ACT_IDLE, ACT_MACHINE_BASE);
	StateMachineInit(S, (STATE_MACHINE_FUNC *) Trans, MAX_ACT_STATE,
			 MAX_ACT_MSG, (STATE_MACHINE_FUNC) Drop, ACT_IDLE,
			 ACT_MACHINE_BASE);


	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_SPECTRUM_CATE, (STATE_MACHINE_FUNC)PeerSpectrumAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_SPECTRUM_CATE,
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_QOS_CATE, (STATE_MACHINE_FUNC)PeerQOSAction);
			      (STATE_MACHINE_FUNC) PeerSpectrumAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_QOS_CATE,
			      (STATE_MACHINE_FUNC) PeerQOSAction);


	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE, (STATE_MACHINE_FUNC)ReservedAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE,
			      (STATE_MACHINE_FUNC) ReservedAction);


	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_BA_CATE, (STATE_MACHINE_FUNC)PeerBAAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_BA_CATE,
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_HT_CATE, (STATE_MACHINE_FUNC)PeerHTAction);
			      (STATE_MACHINE_FUNC) PeerBAAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_ADD_BA_CATE, (STATE_MACHINE_FUNC)MlmeADDBAAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_HT_CATE,
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_ORI_DELBA_CATE, (STATE_MACHINE_FUNC)MlmeDELBAAction);
			      (STATE_MACHINE_FUNC) PeerHTAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_REC_DELBA_CATE, (STATE_MACHINE_FUNC)MlmeDELBAAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_ADD_BA_CATE,
			      (STATE_MACHINE_FUNC) MlmeADDBAAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_ORI_DELBA_CATE,
			      (STATE_MACHINE_FUNC) MlmeDELBAAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_REC_DELBA_CATE,
			      (STATE_MACHINE_FUNC) MlmeDELBAAction);


	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_PUBLIC_CATE, (STATE_MACHINE_FUNC)PeerPublicAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_PUBLIC_CATE,
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_RM_CATE, (STATE_MACHINE_FUNC)PeerRMAction);
			      (STATE_MACHINE_FUNC) PeerPublicAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_PEER_RM_CATE,
			      (STATE_MACHINE_FUNC) PeerRMAction);


	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_QOS_CATE, (STATE_MACHINE_FUNC)MlmeQOSAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_QOS_CATE,
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_DLS_CATE, (STATE_MACHINE_FUNC)MlmeDLSAction);
			      (STATE_MACHINE_FUNC) MlmeQOSAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_ACT_INVALID, (STATE_MACHINE_FUNC)MlmeInvalidAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_MLME_DLS_CATE,
			      (STATE_MACHINE_FUNC) MlmeDLSAction);
	StateMachineSetAction(S, ACT_IDLE, MT2_ACT_INVALID,
			      (STATE_MACHINE_FUNC) MlmeInvalidAction);
}
}


VOID MlmeADDBAAction(
VOID MlmeADDBAAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
    IN PRTMP_ADAPTER pAd,
    IN MLME_QUEUE_ELEM *Elem)

{
{
	MLME_ADDBA_REQ_STRUCT *pInfo;
	MLME_ADDBA_REQ_STRUCT *pInfo;
	UCHAR Addr[6];
	UCHAR Addr[6];
@@ -104,32 +112,35 @@ VOID MlmeADDBAAction(
	pInfo = (MLME_ADDBA_REQ_STRUCT *) Elem->Msg;
	pInfo = (MLME_ADDBA_REQ_STRUCT *) Elem->Msg;
	NdisZeroMemory(&Frame, sizeof(FRAME_ADDBA_REQ));
	NdisZeroMemory(&Frame, sizeof(FRAME_ADDBA_REQ));


	if(MlmeAddBAReqSanity(pAd, Elem->Msg, Elem->MsgLen, Addr))
	if (MlmeAddBAReqSanity(pAd, Elem->Msg, Elem->MsgLen, Addr)) {
	{
		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
		if(NStatus != NDIS_STATUS_SUCCESS)
		if (NStatus != NDIS_STATUS_SUCCESS) {
		{
			DBGPRINT(RT_DEBUG_TRACE,
			DBGPRINT(RT_DEBUG_TRACE,("BA - MlmeADDBAAction() allocate memory failed \n"));
				 ("BA - MlmeADDBAAction() allocate memory failed \n"));
			return;
			return;
		}
		}
		// 1. find entry
		// 1. find entry
		Idx = pAd->MacTab.Content[pInfo->Wcid].BAOriWcidArray[pInfo->TID];
		Idx =
		if (Idx == 0)
		    pAd->MacTab.Content[pInfo->Wcid].BAOriWcidArray[pInfo->TID];
		{
		if (Idx == 0) {
			MlmeFreeMemory(pAd, pOutBuffer);
			MlmeFreeMemory(pAd, pOutBuffer);
			DBGPRINT(RT_DEBUG_ERROR,("BA - MlmeADDBAAction() can't find BAOriEntry \n"));
			DBGPRINT(RT_DEBUG_ERROR,
				 ("BA - MlmeADDBAAction() can't find BAOriEntry \n"));
			return;
			return;
		}
		} else {
		else
		{
			pBAEntry = &pAd->BATable.BAOriEntry[Idx];
			pBAEntry = &pAd->BATable.BAOriEntry[Idx];
		}
		}


		{
		{
			if (ADHOC_ON(pAd))
			if (ADHOC_ON(pAd))
				ActHeaderInit(pAd, &Frame.Hdr, pInfo->pAddr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
				ActHeaderInit(pAd, &Frame.Hdr, pInfo->pAddr,
					      pAd->CurrentAddress,
					      pAd->CommonCfg.Bssid);
			else
			else
				ActHeaderInit(pAd, &Frame.Hdr, pAd->CommonCfg.Bssid, pAd->CurrentAddress, pInfo->pAddr);
				ActHeaderInit(pAd, &Frame.Hdr,
					      pAd->CommonCfg.Bssid,
					      pAd->CurrentAddress,
					      pInfo->pAddr);
		}
		}


		Frame.Category = CATEGORY_BA;
		Frame.Category = CATEGORY_BA;
@@ -141,21 +152,28 @@ VOID MlmeADDBAAction(
		Frame.Token = pInfo->Token;
		Frame.Token = pInfo->Token;
		Frame.TimeOutValue = pInfo->TimeOutValue;
		Frame.TimeOutValue = pInfo->TimeOutValue;
		Frame.BaStartSeq.field.FragNum = 0;
		Frame.BaStartSeq.field.FragNum = 0;
		Frame.BaStartSeq.field.StartSeq = pAd->MacTab.Content[pInfo->Wcid].TxSeq[pInfo->TID];
		Frame.BaStartSeq.field.StartSeq =
		    pAd->MacTab.Content[pInfo->Wcid].TxSeq[pInfo->TID];


		*(USHORT *)(&Frame.BaParm) = cpu2le16(*(USHORT *)(&Frame.BaParm));
		*(USHORT *) (&Frame.BaParm) =
		    cpu2le16(*(USHORT *) (&Frame.BaParm));
		Frame.TimeOutValue = cpu2le16(Frame.TimeOutValue);
		Frame.TimeOutValue = cpu2le16(Frame.TimeOutValue);
		Frame.BaStartSeq.word = cpu2le16(Frame.BaStartSeq.word);
		Frame.BaStartSeq.word = cpu2le16(Frame.BaStartSeq.word);


		MakeOutgoingFrame(pOutBuffer, &FrameLen,
		MakeOutgoingFrame(pOutBuffer, &FrameLen,
		              sizeof(FRAME_ADDBA_REQ), &Frame,
				  sizeof(FRAME_ADDBA_REQ), &Frame, END_OF_ARGS);
		              END_OF_ARGS);


		MiniportMMRequest(pAd, (MGMT_USE_QUEUE_FLAG | MapUserPriorityToAccessCategory[pInfo->TID]), pOutBuffer, FrameLen);
		MiniportMMRequest(pAd,
				  (MGMT_USE_QUEUE_FLAG |
				   MapUserPriorityToAccessCategory[pInfo->TID]),
				  pOutBuffer, FrameLen);


		MlmeFreeMemory(pAd, pOutBuffer);
		MlmeFreeMemory(pAd, pOutBuffer);


		DBGPRINT(RT_DEBUG_TRACE, ("BA - Send ADDBA request. StartSeq = %x,  FrameLen = %ld. BufSize = %d\n", Frame.BaStartSeq.field.StartSeq, FrameLen, Frame.BaParm.BufSize));
		DBGPRINT(RT_DEBUG_TRACE,
			 ("BA - Send ADDBA request. StartSeq = %x,  FrameLen = %ld. BufSize = %d\n",
			  Frame.BaStartSeq.field.StartSeq, FrameLen,
			  Frame.BaParm.BufSize));
	}
	}
}
}


@@ -170,9 +188,7 @@ VOID MlmeADDBAAction(


    ==========================================================================
    ==========================================================================
 */
 */
VOID MlmeDELBAAction(
VOID MlmeDELBAAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
    IN PRTMP_ADAPTER pAd,
    IN MLME_QUEUE_ELEM *Elem)
{
{
	MLME_DELBA_REQ_STRUCT *pInfo;
	MLME_DELBA_REQ_STRUCT *pInfo;
	PUCHAR pOutBuffer = NULL;
	PUCHAR pOutBuffer = NULL;
@@ -186,29 +202,31 @@ VOID MlmeDELBAAction(
	pInfo = (MLME_DELBA_REQ_STRUCT *) Elem->Msg;
	pInfo = (MLME_DELBA_REQ_STRUCT *) Elem->Msg;
	// must send back DELBA
	// must send back DELBA
	NdisZeroMemory(&Frame, sizeof(FRAME_DELBA_REQ));
	NdisZeroMemory(&Frame, sizeof(FRAME_DELBA_REQ));
	DBGPRINT(RT_DEBUG_TRACE, ("==> MlmeDELBAAction(), Initiator(%d) \n", pInfo->Initiator));
	DBGPRINT(RT_DEBUG_TRACE,
		 ("==> MlmeDELBAAction(), Initiator(%d) \n", pInfo->Initiator));


	if(MlmeDelBAReqSanity(pAd, Elem->Msg, Elem->MsgLen))
	if (MlmeDelBAReqSanity(pAd, Elem->Msg, Elem->MsgLen)) {
	{
		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
		if(NStatus != NDIS_STATUS_SUCCESS)
		if (NStatus != NDIS_STATUS_SUCCESS) {
		{
			DBGPRINT(RT_DEBUG_ERROR,
			DBGPRINT(RT_DEBUG_ERROR,("BA - MlmeDELBAAction() allocate memory failed 1. \n"));
				 ("BA - MlmeDELBAAction() allocate memory failed 1. \n"));
			return;
			return;
		}
		}


		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer2);	//Get an unused nonpaged memory
		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer2);	//Get an unused nonpaged memory
		if(NStatus != NDIS_STATUS_SUCCESS)
		if (NStatus != NDIS_STATUS_SUCCESS) {
		{
			MlmeFreeMemory(pAd, pOutBuffer);
			MlmeFreeMemory(pAd, pOutBuffer);
			DBGPRINT(RT_DEBUG_ERROR, ("BA - MlmeDELBAAction() allocate memory failed 2. \n"));
			DBGPRINT(RT_DEBUG_ERROR,
				 ("BA - MlmeDELBAAction() allocate memory failed 2. \n"));
			return;
			return;
		}
		}

		// SEND BAR (Send BAR to refresh peer reordering buffer.)
		// SEND BAR (Send BAR to refresh peer reordering buffer.)
		Idx = pAd->MacTab.Content[pInfo->Wcid].BAOriWcidArray[pInfo->TID];
		Idx =
		    pAd->MacTab.Content[pInfo->Wcid].BAOriWcidArray[pInfo->TID];


		BarHeaderInit(pAd, &FrameBar, pAd->MacTab.Content[pInfo->Wcid].Addr, pAd->CurrentAddress);
		BarHeaderInit(pAd, &FrameBar,
			      pAd->MacTab.Content[pInfo->Wcid].Addr,
			      pAd->CurrentAddress);


		FrameBar.StartingSeq.field.FragNum = 0;	// make sure sequence not clear in DEL funciton.
		FrameBar.StartingSeq.field.FragNum = 0;	// make sure sequence not clear in DEL funciton.
		FrameBar.StartingSeq.field.StartSeq = pAd->MacTab.Content[pInfo->Wcid].TxSeq[pInfo->TID];	// make sure sequence not clear in DEL funciton.
		FrameBar.StartingSeq.field.StartSeq = pAd->MacTab.Content[pInfo->Wcid].TxSeq[pInfo->TID];	// make sure sequence not clear in DEL funciton.
@@ -218,20 +236,27 @@ VOID MlmeDELBAAction(
		FrameBar.BarControl.MTID = 0;	// make sure sequence not clear in DEL funciton.
		FrameBar.BarControl.MTID = 0;	// make sure sequence not clear in DEL funciton.


		MakeOutgoingFrame(pOutBuffer2, &FrameLen,
		MakeOutgoingFrame(pOutBuffer2, &FrameLen,
					  sizeof(FRAME_BAR),	  &FrameBar,
				  sizeof(FRAME_BAR), &FrameBar, END_OF_ARGS);
					  END_OF_ARGS);
		MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer2, FrameLen);
		MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer2, FrameLen);
		MlmeFreeMemory(pAd, pOutBuffer2);
		MlmeFreeMemory(pAd, pOutBuffer2);
		DBGPRINT(RT_DEBUG_TRACE,("BA - MlmeDELBAAction() . Send BAR to refresh peer reordering buffer \n"));
		DBGPRINT(RT_DEBUG_TRACE,
			 ("BA - MlmeDELBAAction() . Send BAR to refresh peer reordering buffer \n"));


		// SEND DELBA FRAME
		// SEND DELBA FRAME
		FrameLen = 0;
		FrameLen = 0;


		{
		{
			if (ADHOC_ON(pAd))
			if (ADHOC_ON(pAd))
				ActHeaderInit(pAd, &Frame.Hdr, pAd->MacTab.Content[pInfo->Wcid].Addr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
				ActHeaderInit(pAd, &Frame.Hdr,
					      pAd->MacTab.Content[pInfo->Wcid].
					      Addr, pAd->CurrentAddress,
					      pAd->CommonCfg.Bssid);
			else
			else
				ActHeaderInit(pAd, &Frame.Hdr,  pAd->CommonCfg.Bssid, pAd->CurrentAddress, pAd->MacTab.Content[pInfo->Wcid].Addr);
				ActHeaderInit(pAd, &Frame.Hdr,
					      pAd->CommonCfg.Bssid,
					      pAd->CurrentAddress,
					      pAd->MacTab.Content[pInfo->Wcid].
					      Addr);
		}
		}


		Frame.Category = CATEGORY_BA;
		Frame.Category = CATEGORY_BA;
@@ -239,52 +264,43 @@ VOID MlmeDELBAAction(
		Frame.DelbaParm.Initiator = pInfo->Initiator;
		Frame.DelbaParm.Initiator = pInfo->Initiator;
		Frame.DelbaParm.TID = pInfo->TID;
		Frame.DelbaParm.TID = pInfo->TID;
		Frame.ReasonCode = 39;	// Time Out
		Frame.ReasonCode = 39;	// Time Out
		*(USHORT *)(&Frame.DelbaParm) = cpu2le16(*(USHORT *)(&Frame.DelbaParm));
		*(USHORT *) (&Frame.DelbaParm) =
		    cpu2le16(*(USHORT *) (&Frame.DelbaParm));
		Frame.ReasonCode = cpu2le16(Frame.ReasonCode);
		Frame.ReasonCode = cpu2le16(Frame.ReasonCode);


		MakeOutgoingFrame(pOutBuffer, &FrameLen,
		MakeOutgoingFrame(pOutBuffer, &FrameLen,
		              sizeof(FRAME_DELBA_REQ),    &Frame,
				  sizeof(FRAME_DELBA_REQ), &Frame, END_OF_ARGS);
		              END_OF_ARGS);
		MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
		MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
		MlmeFreeMemory(pAd, pOutBuffer);
		MlmeFreeMemory(pAd, pOutBuffer);
		DBGPRINT(RT_DEBUG_TRACE, ("BA - MlmeDELBAAction() . 3 DELBA sent. Initiator(%d)\n", pInfo->Initiator));
		DBGPRINT(RT_DEBUG_TRACE,
			 ("BA - MlmeDELBAAction() . 3 DELBA sent. Initiator(%d)\n",
			  pInfo->Initiator));
	}
	}
}
}


VOID MlmeQOSAction(
VOID MlmeQOSAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
    IN PRTMP_ADAPTER pAd,
    IN MLME_QUEUE_ELEM *Elem)
{
{
}
}


VOID MlmeDLSAction(
VOID MlmeDLSAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
    IN PRTMP_ADAPTER pAd,
    IN MLME_QUEUE_ELEM *Elem)
{
{
}
}


VOID MlmeInvalidAction(
VOID MlmeInvalidAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
    IN PRTMP_ADAPTER pAd,
    IN MLME_QUEUE_ELEM *Elem)
{
{
	//PUCHAR                   pOutBuffer = NULL;
	//PUCHAR                   pOutBuffer = NULL;
	//Return the receiving frame except the MSB of category filed set to 1.  7.3.1.11
	//Return the receiving frame except the MSB of category filed set to 1.  7.3.1.11
}
}


VOID PeerQOSAction(
VOID PeerQOSAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem)
{
{
}
}


VOID PeerBAAction(
VOID PeerBAAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem)
{
{
	UCHAR Action = Elem->Msg[LENGTH_802_11 + 1];
	UCHAR Action = Elem->Msg[LENGTH_802_11 + 1];


	switch(Action)
	switch (Action) {
	{
	case ADDBA_REQ:
	case ADDBA_REQ:
		PeerAddBAReqAction(pAd, Elem);
		PeerAddBAReqAction(pAd, Elem);
		break;
		break;
@@ -297,41 +313,32 @@ VOID PeerBAAction(
	}
	}
}
}


VOID PeerPublicAction(
VOID PeerPublicAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem)
{
{
	if (Elem->Wcid >= MAX_LEN_OF_MAC_TABLE)
	if (Elem->Wcid >= MAX_LEN_OF_MAC_TABLE)
		return;
		return;
}
}



static VOID ReservedAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
static VOID ReservedAction(
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem)
{
{
	UCHAR Category;
	UCHAR Category;


	if (Elem->MsgLen <= LENGTH_802_11)
	if (Elem->MsgLen <= LENGTH_802_11) {
	{
		return;
		return;
	}
	}


	Category = Elem->Msg[LENGTH_802_11];
	Category = Elem->Msg[LENGTH_802_11];
	DBGPRINT(RT_DEBUG_TRACE,("Rcv reserved category(%d) Action Frame\n", Category));
	DBGPRINT(RT_DEBUG_TRACE,
		 ("Rcv reserved category(%d) Action Frame\n", Category));
	hex_dump("Reserved Action Frame", &Elem->Msg[0], Elem->MsgLen);
	hex_dump("Reserved Action Frame", &Elem->Msg[0], Elem->MsgLen);
}
}


VOID PeerRMAction(
VOID PeerRMAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem)

{
{
	return;
	return;
}
}


static VOID respond_ht_information_exchange_action(
static VOID respond_ht_information_exchange_action(IN PRTMP_ADAPTER pAd,
	IN PRTMP_ADAPTER pAd,
						   IN MLME_QUEUE_ELEM * Elem)
						   IN MLME_QUEUE_ELEM * Elem)
{
{
	PUCHAR pOutBuffer = NULL;
	PUCHAR pOutBuffer = NULL;
@@ -340,16 +347,14 @@ static VOID respond_ht_information_exchange_action(
	FRAME_HT_INFO HTINFOframe, *pFrame;
	FRAME_HT_INFO HTINFOframe, *pFrame;
	UCHAR *pAddr;
	UCHAR *pAddr;



	// 2. Always send back ADDBA Response
	// 2. Always send back ADDBA Response
	NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
	NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory


	if (NStatus != NDIS_STATUS_SUCCESS)
	if (NStatus != NDIS_STATUS_SUCCESS) {
	{
		DBGPRINT(RT_DEBUG_TRACE,
		DBGPRINT(RT_DEBUG_TRACE,("ACTION - respond_ht_information_exchange_action() allocate memory failed \n"));
			 ("ACTION - respond_ht_information_exchange_action() allocate memory failed \n"));
		return;
		return;
	}
	}

	// get RA
	// get RA
	pFrame = (FRAME_HT_INFO *) & Elem->Msg[0];
	pFrame = (FRAME_HT_INFO *) & Elem->Msg[0];
	pAddr = pFrame->Hdr.Addr2;
	pAddr = pFrame->Hdr.Addr2;
@@ -358,45 +363,48 @@ static VOID respond_ht_information_exchange_action(
	// 2-1. Prepare ADDBA Response frame.
	// 2-1. Prepare ADDBA Response frame.
	{
	{
		if (ADHOC_ON(pAd))
		if (ADHOC_ON(pAd))
			ActHeaderInit(pAd, &HTINFOframe.Hdr, pAddr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
			ActHeaderInit(pAd, &HTINFOframe.Hdr, pAddr,
				      pAd->CurrentAddress,
				      pAd->CommonCfg.Bssid);
		else
		else
			ActHeaderInit(pAd, &HTINFOframe.Hdr, pAd->CommonCfg.Bssid, pAd->CurrentAddress, pAddr);
			ActHeaderInit(pAd, &HTINFOframe.Hdr,
				      pAd->CommonCfg.Bssid, pAd->CurrentAddress,
				      pAddr);
	}
	}


	HTINFOframe.Category = CATEGORY_HT;
	HTINFOframe.Category = CATEGORY_HT;
	HTINFOframe.Action = HT_INFO_EXCHANGE;
	HTINFOframe.Action = HT_INFO_EXCHANGE;
	HTINFOframe.HT_Info.Request = 0;
	HTINFOframe.HT_Info.Request = 0;
	HTINFOframe.HT_Info.Forty_MHz_Intolerant = pAd->CommonCfg.HtCapability.HtCapInfo.Forty_Mhz_Intolerant;
	HTINFOframe.HT_Info.Forty_MHz_Intolerant =
	HTINFOframe.HT_Info.STA_Channel_Width	 = pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth;
	    pAd->CommonCfg.HtCapability.HtCapInfo.Forty_Mhz_Intolerant;
	HTINFOframe.HT_Info.STA_Channel_Width =
	    pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth;


	MakeOutgoingFrame(pOutBuffer, &FrameLen,
	MakeOutgoingFrame(pOutBuffer, &FrameLen,
					  sizeof(FRAME_HT_INFO),	&HTINFOframe,
			  sizeof(FRAME_HT_INFO), &HTINFOframe, END_OF_ARGS);
					  END_OF_ARGS);


	MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
	MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
	MlmeFreeMemory(pAd, pOutBuffer);
	MlmeFreeMemory(pAd, pOutBuffer);
}
}


VOID PeerHTAction(
VOID PeerHTAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem)
	IN PRTMP_ADAPTER pAd,
	IN MLME_QUEUE_ELEM *Elem)
{
{
	UCHAR Action = Elem->Msg[LENGTH_802_11 + 1];
	UCHAR Action = Elem->Msg[LENGTH_802_11 + 1];


	if (Elem->Wcid >= MAX_LEN_OF_MAC_TABLE)
	if (Elem->Wcid >= MAX_LEN_OF_MAC_TABLE)
		return;
		return;


	switch(Action)
	switch (Action) {
	{
	case NOTIFY_BW_ACTION:
	case NOTIFY_BW_ACTION:
			DBGPRINT(RT_DEBUG_TRACE,("ACTION - HT Notify Channel bandwidth action----> \n"));
		DBGPRINT(RT_DEBUG_TRACE,
			 ("ACTION - HT Notify Channel bandwidth action----> \n"));


			if(pAd->StaActive.SupportedPhyInfo.bHtEnable == FALSE)
		if (pAd->StaActive.SupportedPhyInfo.bHtEnable == FALSE) {
			{
			// Note, this is to patch DIR-1353 AP. When the AP set to Wep, it will use legacy mode. But AP still keeps
			// Note, this is to patch DIR-1353 AP. When the AP set to Wep, it will use legacy mode. But AP still keeps
			// sending BW_Notify Action frame, and cause us to linkup and linkdown.
			// sending BW_Notify Action frame, and cause us to linkup and linkdown.
			// In legacy mode, don't need to parse HT action frame.
			// In legacy mode, don't need to parse HT action frame.
				DBGPRINT(RT_DEBUG_TRACE,("ACTION -Ignore HT Notify Channel BW when link as legacy mode. BW = %d---> \n",
			DBGPRINT(RT_DEBUG_TRACE,
				 ("ACTION -Ignore HT Notify Channel BW when link as legacy mode. BW = %d---> \n",
				  Elem->Msg[LENGTH_802_11 + 2]));
				  Elem->Msg[LENGTH_802_11 + 2]));
			break;
			break;
		}
		}
@@ -408,20 +416,17 @@ VOID PeerHTAction(
	case SMPS_ACTION:
	case SMPS_ACTION:
		// 7.3.1.25
		// 7.3.1.25
		DBGPRINT(RT_DEBUG_TRACE, ("ACTION - SMPS action----> \n"));
		DBGPRINT(RT_DEBUG_TRACE, ("ACTION - SMPS action----> \n"));
			if (((Elem->Msg[LENGTH_802_11+2]&0x1) == 0))
		if (((Elem->Msg[LENGTH_802_11 + 2] & 0x1) == 0)) {
			{
			pAd->MacTab.Content[Elem->Wcid].MmpsMode = MMPS_ENABLE;
			pAd->MacTab.Content[Elem->Wcid].MmpsMode = MMPS_ENABLE;
			}
		} else if (((Elem->Msg[LENGTH_802_11 + 2] & 0x2) == 0)) {
			else if (((Elem->Msg[LENGTH_802_11+2]&0x2) == 0))
			{
			pAd->MacTab.Content[Elem->Wcid].MmpsMode = MMPS_STATIC;
			pAd->MacTab.Content[Elem->Wcid].MmpsMode = MMPS_STATIC;
			}
		} else {
			else
			{
			pAd->MacTab.Content[Elem->Wcid].MmpsMode = MMPS_DYNAMIC;
			pAd->MacTab.Content[Elem->Wcid].MmpsMode = MMPS_DYNAMIC;
		}
		}


			DBGPRINT(RT_DEBUG_TRACE,("Aid(%d) MIMO PS = %d\n", Elem->Wcid, pAd->MacTab.Content[Elem->Wcid].MmpsMode));
		DBGPRINT(RT_DEBUG_TRACE,
			 ("Aid(%d) MIMO PS = %d\n", Elem->Wcid,
			  pAd->MacTab.Content[Elem->Wcid].MmpsMode));
		// rt2860c : add something for smps change.
		// rt2860c : add something for smps change.
		break;
		break;


@@ -433,19 +438,21 @@ VOID PeerHTAction(
		{
		{
			HT_INFORMATION_OCTET *pHT_info;
			HT_INFORMATION_OCTET *pHT_info;


				pHT_info = (HT_INFORMATION_OCTET *) &Elem->Msg[LENGTH_802_11+2];
			pHT_info =
			    (HT_INFORMATION_OCTET *) & Elem->Msg[LENGTH_802_11 +
								 2];
			// 7.4.8.10
			// 7.4.8.10
    				DBGPRINT(RT_DEBUG_TRACE,("ACTION - HT Information Exchange action----> \n"));
			DBGPRINT(RT_DEBUG_TRACE,
    				if (pHT_info->Request)
				 ("ACTION - HT Information Exchange action----> \n"));
    				{
			if (pHT_info->Request) {
    					respond_ht_information_exchange_action(pAd, Elem);
				respond_ht_information_exchange_action(pAd,
								       Elem);
			}
			}
		}
		}
		break;
		break;
	}
	}
}
}



/*
/*
	==========================================================================
	==========================================================================
	Description:
	Description:
@@ -460,8 +467,7 @@ VOID PeerHTAction(
				FALSE , then continue indicaterx at this moment.
				FALSE , then continue indicaterx at this moment.
	==========================================================================
	==========================================================================
 */
 */
VOID ORIBATimerTimeout(
VOID ORIBATimerTimeout(IN PRTMP_ADAPTER pAd)
	IN	PRTMP_ADAPTER	pAd)
{
{
	MAC_TABLE_ENTRY *pEntry;
	MAC_TABLE_ENTRY *pEntry;
	INT i, total;
	INT i, total;
@@ -469,23 +475,21 @@ VOID ORIBATimerTimeout(


	total = pAd->MacTab.Size * NUM_OF_TID;
	total = pAd->MacTab.Size * NUM_OF_TID;


	for (i = 1; ((i <MAX_LEN_OF_BA_ORI_TABLE) && (total > 0)) ; i++)
	for (i = 1; ((i < MAX_LEN_OF_BA_ORI_TABLE) && (total > 0)); i++) {
	{
		if (pAd->BATable.BAOriEntry[i].ORI_BA_Status == Originator_Done) {
		if  (pAd->BATable.BAOriEntry[i].ORI_BA_Status == Originator_Done)
			pEntry =
		{
			    &pAd->MacTab.Content[pAd->BATable.BAOriEntry[i].
			pEntry = &pAd->MacTab.Content[pAd->BATable.BAOriEntry[i].Wcid];
						 Wcid];
			TID = pAd->BATable.BAOriEntry[i].TID;
			TID = pAd->BATable.BAOriEntry[i].TID;


			ASSERT(pAd->BATable.BAOriEntry[i].Wcid < MAX_LEN_OF_MAC_TABLE);
			ASSERT(pAd->BATable.BAOriEntry[i].Wcid <
			       MAX_LEN_OF_MAC_TABLE);
		}
		}
		total--;
		total--;
	}
	}
}
}



VOID SendRefreshBAR(IN PRTMP_ADAPTER pAd, IN MAC_TABLE_ENTRY * pEntry)
VOID SendRefreshBAR(
	IN	PRTMP_ADAPTER	pAd,
	IN	MAC_TABLE_ENTRY	*pEntry)
{
{
	FRAME_BAR FrameBar;
	FRAME_BAR FrameBar;
	ULONG FrameLen;
	ULONG FrameLen;
@@ -496,31 +500,29 @@ VOID SendRefreshBAR(
	USHORT idx;
	USHORT idx;
	BA_ORI_ENTRY *pBAEntry;
	BA_ORI_ENTRY *pBAEntry;


	for (i = 0; i <NUM_OF_TID; i++)
	for (i = 0; i < NUM_OF_TID; i++) {
	{
		idx = pEntry->BAOriWcidArray[i];
		idx = pEntry->BAOriWcidArray[i];
		if (idx == 0)
		if (idx == 0) {
		{
			continue;
			continue;
		}
		}
		pBAEntry = &pAd->BATable.BAOriEntry[idx];
		pBAEntry = &pAd->BATable.BAOriEntry[idx];


		if  (pBAEntry->ORI_BA_Status == Originator_Done)
		if (pBAEntry->ORI_BA_Status == Originator_Done) {
		{
			TID = pBAEntry->TID;
			TID = pBAEntry->TID;


			ASSERT(pBAEntry->Wcid < MAX_LEN_OF_MAC_TABLE);
			ASSERT(pBAEntry->Wcid < MAX_LEN_OF_MAC_TABLE);


			NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
			NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);	//Get an unused nonpaged memory
			if(NStatus != NDIS_STATUS_SUCCESS)
			if (NStatus != NDIS_STATUS_SUCCESS) {
			{
				DBGPRINT(RT_DEBUG_ERROR,
				DBGPRINT(RT_DEBUG_ERROR,("BA - MlmeADDBAAction() allocate memory failed \n"));
					 ("BA - MlmeADDBAAction() allocate memory failed \n"));
				return;
				return;
			}
			}


			Sequence = pEntry->TxSeq[TID];
			Sequence = pEntry->TxSeq[TID];


			BarHeaderInit(pAd, &FrameBar, pEntry->Addr, pAd->CurrentAddress);
			BarHeaderInit(pAd, &FrameBar, pEntry->Addr,
				      pAd->CurrentAddress);


			FrameBar.StartingSeq.field.FragNum = 0;	// make sure sequence not clear in DEL function.
			FrameBar.StartingSeq.field.FragNum = 0;	// make sure sequence not clear in DEL function.
			FrameBar.StartingSeq.field.StartSeq = Sequence;	// make sure sequence not clear in DEL funciton.
			FrameBar.StartingSeq.field.StartSeq = Sequence;	// make sure sequence not clear in DEL funciton.
@@ -533,7 +535,11 @@ VOID SendRefreshBAR(
			if (1)	// Now we always send BAR.
			if (1)	// Now we always send BAR.
			{
			{
				//MiniportMMRequestUnlock(pAd, 0, pOutBuffer, FrameLen);
				//MiniportMMRequestUnlock(pAd, 0, pOutBuffer, FrameLen);
				MiniportMMRequest(pAd, (MGMT_USE_QUEUE_FLAG | MapUserPriorityToAccessCategory[TID]), pOutBuffer, FrameLen);
				MiniportMMRequest(pAd,
						  (MGMT_USE_QUEUE_FLAG |
						   MapUserPriorityToAccessCategory
						   [TID]), pOutBuffer,
						  FrameLen);


			}
			}
			MlmeFreeMemory(pAd, pOutBuffer);
			MlmeFreeMemory(pAd, pOutBuffer);
@@ -541,12 +547,9 @@ VOID SendRefreshBAR(
	}
	}
}
}


VOID ActHeaderInit(
VOID ActHeaderInit(IN PRTMP_ADAPTER pAd,
    IN	PRTMP_ADAPTER	pAd,
		   IN OUT PHEADER_802_11 pHdr80211,
		   IN OUT PHEADER_802_11 pHdr80211,
    IN PUCHAR Addr1,
		   IN PUCHAR Addr1, IN PUCHAR Addr2, IN PUCHAR Addr3)
    IN PUCHAR Addr2,
    IN PUCHAR Addr3)
{
{
	NdisZeroMemory(pHdr80211, sizeof(HEADER_802_11));
	NdisZeroMemory(pHdr80211, sizeof(HEADER_802_11));
	pHdr80211->FC.Type = BTYPE_MGMT;
	pHdr80211->FC.Type = BTYPE_MGMT;
@@ -557,11 +560,8 @@ VOID ActHeaderInit(
	COPY_MAC_ADDR(pHdr80211->Addr3, Addr3);
	COPY_MAC_ADDR(pHdr80211->Addr3, Addr3);
}
}


VOID BarHeaderInit(
VOID BarHeaderInit(IN PRTMP_ADAPTER pAd,
	IN	PRTMP_ADAPTER	pAd,
		   IN OUT PFRAME_BAR pCntlBar, IN PUCHAR pDA, IN PUCHAR pSA)
	IN OUT PFRAME_BAR pCntlBar,
	IN PUCHAR pDA,
	IN PUCHAR pSA)
{
{
	NdisZeroMemory(pCntlBar, sizeof(FRAME_BAR));
	NdisZeroMemory(pCntlBar, sizeof(FRAME_BAR));
	pCntlBar->FC.Type = BTYPE_CNTL;
	pCntlBar->FC.Type = BTYPE_CNTL;
@@ -570,14 +570,13 @@ VOID BarHeaderInit(
	pCntlBar->BarControl.Compressed = 1;
	pCntlBar->BarControl.Compressed = 1;
	pCntlBar->BarControl.ACKPolicy = 0;
	pCntlBar->BarControl.ACKPolicy = 0;



	pCntlBar->Duration =
	pCntlBar->Duration = 16 + RTMPCalcDuration(pAd, RATE_1, sizeof(FRAME_BA));
	    16 + RTMPCalcDuration(pAd, RATE_1, sizeof(FRAME_BA));


	COPY_MAC_ADDR(pCntlBar->Addr1, pDA);
	COPY_MAC_ADDR(pCntlBar->Addr1, pDA);
	COPY_MAC_ADDR(pCntlBar->Addr2, pSA);
	COPY_MAC_ADDR(pCntlBar->Addr2, pSA);
}
}



/*
/*
	==========================================================================
	==========================================================================
	Description:
	Description:
@@ -592,19 +591,14 @@ VOID BarHeaderInit(
	Return	: None.
	Return	: None.
	==========================================================================
	==========================================================================
 */
 */
VOID InsertActField(
VOID InsertActField(IN PRTMP_ADAPTER pAd,
	IN PRTMP_ADAPTER pAd,
		    OUT PUCHAR pFrameBuf,
		    OUT PUCHAR pFrameBuf,
	OUT PULONG pFrameLen,
		    OUT PULONG pFrameLen, IN UINT8 Category, IN UINT8 ActCode)
	IN UINT8 Category,
	IN UINT8 ActCode)
{
{
	ULONG TempLen;
	ULONG TempLen;


	MakeOutgoingFrame(pFrameBuf, &TempLen,
	MakeOutgoingFrame(pFrameBuf, &TempLen,
						1,				&Category,
			  1, &Category, 1, &ActCode, END_OF_ARGS);
						1,				&ActCode,
						END_OF_ARGS);


	*pFrameLen = *pFrameLen + TempLen;
	*pFrameLen = *pFrameLen + TempLen;


+682 −772

File changed.

Preview size limit exceeded, changes collapsed.

+506 −597

File changed.

Preview size limit exceeded, changes collapsed.

+1224 −1219

File changed.

Preview size limit exceeded, changes collapsed.

+92 −124
Original line number Original line Diff line number Diff line
@@ -35,16 +35,11 @@
    ---------    ----------    ----------------------------------------------
    ---------    ----------    ----------------------------------------------
*/
*/




#include "../rt_config.h"
#include "../rt_config.h"



char *GetPhyMode(int Mode)
char* GetPhyMode(
	int Mode)
{
	switch(Mode)
{
{
	switch (Mode) {
	case MODE_CCK:
	case MODE_CCK:
		return "CCK";
		return "CCK";


@@ -60,12 +55,9 @@ char* GetPhyMode(
	}
	}
}
}



char *GetBW(int BW)
char* GetBW(
	int BW)
{
	switch(BW)
{
{
	switch (BW) {
	case BW_10:
	case BW_10:
		return "10M";
		return "10M";


@@ -78,7 +70,6 @@ char* GetBW(
	}
	}
}
}



/*
/*
    ==========================================================================
    ==========================================================================
    Description:
    Description:
@@ -89,46 +80,37 @@ char* GetBW(
        TRUE if all parameters are OK, FALSE otherwise
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
    ==========================================================================
*/
*/
INT RT_CfgSetCountryRegion(
INT RT_CfgSetCountryRegion(IN PRTMP_ADAPTER pAd, IN PSTRING arg, IN INT band)
	IN PRTMP_ADAPTER	pAd,
	IN PSTRING			arg,
	IN INT				band)
{
{
	LONG region, regionMax;
	LONG region, regionMax;
	UCHAR *pCountryRegion;
	UCHAR *pCountryRegion;


	region = simple_strtol(arg, 0, 10);
	region = simple_strtol(arg, 0, 10);


	if (band == BAND_24G)
	if (band == BAND_24G) {
	{
		pCountryRegion = &pAd->CommonCfg.CountryRegion;
		pCountryRegion = &pAd->CommonCfg.CountryRegion;
		regionMax = REGION_MAXIMUM_BG_BAND;
		regionMax = REGION_MAXIMUM_BG_BAND;
	}
	} else {
	else
	{
		pCountryRegion = &pAd->CommonCfg.CountryRegionForABand;
		pCountryRegion = &pAd->CommonCfg.CountryRegionForABand;
		regionMax = REGION_MAXIMUM_A_BAND;
		regionMax = REGION_MAXIMUM_A_BAND;
	}
	}


	// TODO: Is it neccesay for following check???
	// TODO: Is it neccesay for following check???
	// Country can be set only when EEPROM not programmed
	// Country can be set only when EEPROM not programmed
	if (*pCountryRegion & 0x80)
	if (*pCountryRegion & 0x80) {
	{
		DBGPRINT(RT_DEBUG_ERROR,
		DBGPRINT(RT_DEBUG_ERROR, ("CfgSetCountryRegion():CountryRegion in eeprom was programmed\n"));
			 ("CfgSetCountryRegion():CountryRegion in eeprom was programmed\n"));
		return FALSE;
		return FALSE;
	}
	}


	if((region >= 0) && (region <= REGION_MAXIMUM_BG_BAND))
	if ((region >= 0) && (region <= REGION_MAXIMUM_BG_BAND)) {
	{
		*pCountryRegion = (UCHAR) region;
		*pCountryRegion = (UCHAR) region;
	}
	} else if ((region == REGION_31_BG_BAND) && (band == BAND_24G)) {
	else if ((region == REGION_31_BG_BAND) && (band == BAND_24G))
	{
		*pCountryRegion = (UCHAR) region;
		*pCountryRegion = (UCHAR) region;
	}
	} else {
	else
		DBGPRINT(RT_DEBUG_ERROR,
	{
			 ("CfgSetCountryRegion():region(%ld) out of range!\n",
		DBGPRINT(RT_DEBUG_ERROR, ("CfgSetCountryRegion():region(%ld) out of range!\n", region));
			  region));
		return FALSE;
		return FALSE;
	}
	}


@@ -136,7 +118,6 @@ INT RT_CfgSetCountryRegion(


}
}



/*
/*
    ==========================================================================
    ==========================================================================
    Description:
    Description:
@@ -145,9 +126,7 @@ INT RT_CfgSetCountryRegion(
        TRUE if all parameters are OK, FALSE otherwise
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
    ==========================================================================
*/
*/
INT RT_CfgSetWirelessMode(
INT RT_CfgSetWirelessMode(IN PRTMP_ADAPTER pAd, IN PSTRING arg)
	IN	PRTMP_ADAPTER	pAd,
	IN	PSTRING			arg)
{
{
	INT MaxPhyMode = PHY_11G;
	INT MaxPhyMode = PHY_11G;
	LONG WirelessMode;
	LONG WirelessMode;
@@ -155,8 +134,7 @@ INT RT_CfgSetWirelessMode(
	MaxPhyMode = PHY_11N_5G;
	MaxPhyMode = PHY_11N_5G;


	WirelessMode = simple_strtol(arg, 0, 10);
	WirelessMode = simple_strtol(arg, 0, 10);
	if (WirelessMode <= MaxPhyMode)
	if (WirelessMode <= MaxPhyMode) {
	{
		pAd->CommonCfg.PhyMode = WirelessMode;
		pAd->CommonCfg.PhyMode = WirelessMode;
		return TRUE;
		return TRUE;
	}
	}
@@ -165,10 +143,7 @@ INT RT_CfgSetWirelessMode(


}
}



INT RT_CfgSetShortSlot(IN PRTMP_ADAPTER pAd, IN PSTRING arg)
INT RT_CfgSetShortSlot(
	IN	PRTMP_ADAPTER	pAd,
	IN	PSTRING			arg)
{
{
	LONG ShortSlot;
	LONG ShortSlot;


@@ -184,7 +159,6 @@ INT RT_CfgSetShortSlot(
	return TRUE;
	return TRUE;
}
}



/*
/*
    ==========================================================================
    ==========================================================================
    Description:
    Description:
@@ -193,11 +167,9 @@ INT RT_CfgSetShortSlot(
        TRUE if all parameters are OK, FALSE otherwise
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
    ==========================================================================
*/
*/
INT	RT_CfgSetWepKey(
INT RT_CfgSetWepKey(IN PRTMP_ADAPTER pAd,
	IN	PRTMP_ADAPTER	pAd,
		    IN PSTRING keyString,
		    IN PSTRING keyString,
	IN	CIPHER_KEY		*pSharedKey,
		    IN CIPHER_KEY * pSharedKey, IN INT keyIdx)
	IN	INT				keyIdx)
{
{
	INT KeyLen;
	INT KeyLen;
	INT i;
	INT i;
@@ -207,8 +179,7 @@ INT RT_CfgSetWepKey(
	// TODO: Shall we do memset for the original key info??
	// TODO: Shall we do memset for the original key info??
	memset(pSharedKey, 0, sizeof(CIPHER_KEY));
	memset(pSharedKey, 0, sizeof(CIPHER_KEY));
	KeyLen = strlen(keyString);
	KeyLen = strlen(keyString);
	switch (KeyLen)
	switch (KeyLen) {
	{
	case 5:		//wep 40 Ascii type
	case 5:		//wep 40 Ascii type
	case 13:		//wep 104 Ascii type
	case 13:		//wep 104 Ascii type
		bKeyIsHex = FALSE;
		bKeyIsHex = FALSE;
@@ -218,8 +189,7 @@ INT RT_CfgSetWepKey(


	case 10:		//wep 40 Hex type
	case 10:		//wep 40 Hex type
	case 26:		//wep 104 Hex type
	case 26:		//wep 104 Hex type
			for(i=0; i < KeyLen; i++)
		for (i = 0; i < KeyLen; i++) {
			{
			if (!isxdigit(*(keyString + i)))
			if (!isxdigit(*(keyString + i)))
				return FALSE;	//Not Hex value;
				return FALSE;	//Not Hex value;
		}
		}
@@ -229,18 +199,21 @@ INT RT_CfgSetWepKey(
		break;
		break;


	default:		//Invalid argument
	default:		//Invalid argument
			DBGPRINT(RT_DEBUG_TRACE, ("RT_CfgSetWepKey(keyIdx=%d):Invalid argument (arg=%s)\n", keyIdx, keyString));
		DBGPRINT(RT_DEBUG_TRACE,
			 ("RT_CfgSetWepKey(keyIdx=%d):Invalid argument (arg=%s)\n",
			  keyIdx, keyString));
		return FALSE;
		return FALSE;
	}
	}


	pSharedKey->CipherAlg = ((KeyLen % 5) ? CIPHER_WEP128 : CIPHER_WEP64);
	pSharedKey->CipherAlg = ((KeyLen % 5) ? CIPHER_WEP128 : CIPHER_WEP64);
	DBGPRINT(RT_DEBUG_TRACE, ("RT_CfgSetWepKey:(KeyIdx=%d,type=%s, Alg=%s)\n",
	DBGPRINT(RT_DEBUG_TRACE,
						keyIdx, (bKeyIsHex == FALSE ? "Ascii" : "Hex"), CipherName[CipherAlg]));
		 ("RT_CfgSetWepKey:(KeyIdx=%d,type=%s, Alg=%s)\n", keyIdx,
		  (bKeyIsHex == FALSE ? "Ascii" : "Hex"),
		  CipherName[CipherAlg]));


	return TRUE;
	return TRUE;
}
}



/*
/*
    ==========================================================================
    ==========================================================================
    Description:
    Description:
@@ -257,31 +230,26 @@ INT RT_CfgSetWepKey(
        TRUE if all parameters are OK, FALSE otherwise
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
    ==========================================================================
*/
*/
INT RT_CfgSetWPAPSKKey(
INT RT_CfgSetWPAPSKKey(IN RTMP_ADAPTER * pAd,
	IN RTMP_ADAPTER	*pAd,
		       IN PSTRING keyString,
		       IN PSTRING keyString,
		       IN UCHAR * pHashStr,
		       IN UCHAR * pHashStr,
	IN INT			hashStrLen,
		       IN INT hashStrLen, OUT PUCHAR pPMKBuf)
	OUT PUCHAR		pPMKBuf)
{
{
	int keyLen;
	int keyLen;
	UCHAR keyMaterial[40];
	UCHAR keyMaterial[40];


	keyLen = strlen(keyString);
	keyLen = strlen(keyString);
	if ((keyLen < 8) || (keyLen > 64))
	if ((keyLen < 8) || (keyLen > 64)) {
	{
		DBGPRINT(RT_DEBUG_TRACE,
		DBGPRINT(RT_DEBUG_TRACE, ("WPAPSK Key length(%d) error, required 8 ~ 64 characters!(keyStr=%s)\n",
			 ("WPAPSK Key length(%d) error, required 8 ~ 64 characters!(keyStr=%s)\n",
			  keyLen, keyString));
			  keyLen, keyString));
		return FALSE;
		return FALSE;
	}
	}


	memset(pPMKBuf, 0, 32);
	memset(pPMKBuf, 0, 32);
	if (keyLen == 64)
	if (keyLen == 64) {
	{
		AtoH(keyString, pPMKBuf, 32);
		AtoH(keyString, pPMKBuf, 32);
	}
	} else {
	else
	{
		PasswordHash(keyString, pHashStr, hashStrLen, keyMaterial);
		PasswordHash(keyString, pHashStr, hashStrLen, keyMaterial);
		NdisMoveMemory(pPMKBuf, keyMaterial, 32);
		NdisMoveMemory(pPMKBuf, keyMaterial, 32);
	}
	}
Loading