Commit ceb8c5da authored by Andres More's avatar Andres More Committed by Greg Kroah-Hartman

staging: vt6656: removed usage of custom Ethernet header

Removed struct tagSEthernetHeader, replacing with struct ethhdr.
Not all checkpatch errors and warnings were removed.
Signed-off-by: default avatarAndres More <more.andres@gmail.com>
Reviewed-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7d7d34a1
...@@ -190,7 +190,7 @@ typedef struct _USB_SEND_CONTEXT { ...@@ -190,7 +190,7 @@ typedef struct _USB_SEND_CONTEXT {
struct urb *pUrb; struct urb *pUrb;
unsigned int uBufLen; unsigned int uBufLen;
CONTEXT_TYPE Type; CONTEXT_TYPE Type;
SEthernetHeader sEthHeader; struct ethhdr sEthHeader;
void *Next; void *Next;
bool bBoolInUse; bool bBoolInUse;
unsigned char Data[MAX_TOTAL_SIZE_WITH_ALL_HEADERS]; unsigned char Data[MAX_TOTAL_SIZE_WITH_ALL_HEADERS];
...@@ -746,8 +746,8 @@ struct vnt_private { ...@@ -746,8 +746,8 @@ struct vnt_private {
u8 byReAssocCount; u8 byReAssocCount;
u8 byLinkWaitCount; u8 byLinkWaitCount;
SEthernetHeader sTxEthHeader; struct ethhdr sTxEthHeader;
SEthernetHeader sRxEthHeader; struct ethhdr sRxEthHeader;
u8 abyBroadcastAddr[ETH_ALEN]; u8 abyBroadcastAddr[ETH_ALEN];
u8 abySNAP_RFC1042[ETH_ALEN]; u8 abySNAP_RFC1042[ETH_ALEN];
u8 abySNAP_Bridgetunnel[ETH_ALEN]; u8 abySNAP_Bridgetunnel[ETH_ALEN];
......
...@@ -81,7 +81,7 @@ void ...@@ -81,7 +81,7 @@ void
s_vGetDASA( s_vGetDASA(
u8 * pbyRxBufferAddr, u8 * pbyRxBufferAddr,
unsigned int *pcbHeaderSize, unsigned int *pcbHeaderSize,
PSEthernetHeader psEthHeader struct ethhdr *psEthHeader
); );
static void s_vProcessRxMACHeader(struct vnt_private *pDevice, static void s_vProcessRxMACHeader(struct vnt_private *pDevice,
...@@ -190,9 +190,9 @@ static void s_vProcessRxMACHeader(struct vnt_private *pDevice, ...@@ -190,9 +190,9 @@ static void s_vProcessRxMACHeader(struct vnt_private *pDevice,
cbHeaderSize -= (ETH_ALEN * 2); cbHeaderSize -= (ETH_ALEN * 2);
pbyRxBuffer = (u8 *) (pbyRxBufferAddr + cbHeaderSize); pbyRxBuffer = (u8 *) (pbyRxBufferAddr + cbHeaderSize);
for (ii = 0; ii < ETH_ALEN; ii++) for (ii = 0; ii < ETH_ALEN; ii++)
*pbyRxBuffer++ = pDevice->sRxEthHeader.abyDstAddr[ii]; *pbyRxBuffer++ = pDevice->sRxEthHeader.h_dest[ii];
for (ii = 0; ii < ETH_ALEN; ii++) for (ii = 0; ii < ETH_ALEN; ii++)
*pbyRxBuffer++ = pDevice->sRxEthHeader.abySrcAddr[ii]; *pbyRxBuffer++ = pDevice->sRxEthHeader.h_source[ii];
*pcbHeadSize = cbHeaderSize; *pcbHeadSize = cbHeaderSize;
} }
...@@ -217,7 +217,7 @@ void ...@@ -217,7 +217,7 @@ void
s_vGetDASA ( s_vGetDASA (
u8 * pbyRxBufferAddr, u8 * pbyRxBufferAddr,
unsigned int *pcbHeaderSize, unsigned int *pcbHeaderSize,
PSEthernetHeader psEthHeader struct ethhdr *psEthHeader
) )
{ {
unsigned int cbHeaderSize = 0; unsigned int cbHeaderSize = 0;
...@@ -229,17 +229,17 @@ s_vGetDASA ( ...@@ -229,17 +229,17 @@ s_vGetDASA (
if ((pMACHeader->wFrameCtl & FC_TODS) == 0) { if ((pMACHeader->wFrameCtl & FC_TODS) == 0) {
if (pMACHeader->wFrameCtl & FC_FROMDS) { if (pMACHeader->wFrameCtl & FC_FROMDS) {
for (ii = 0; ii < ETH_ALEN; ii++) { for (ii = 0; ii < ETH_ALEN; ii++) {
psEthHeader->abyDstAddr[ii] = psEthHeader->h_dest[ii] =
pMACHeader->abyAddr1[ii]; pMACHeader->abyAddr1[ii];
psEthHeader->abySrcAddr[ii] = psEthHeader->h_source[ii] =
pMACHeader->abyAddr3[ii]; pMACHeader->abyAddr3[ii];
} }
} else { } else {
/* IBSS mode */ /* IBSS mode */
for (ii = 0; ii < ETH_ALEN; ii++) { for (ii = 0; ii < ETH_ALEN; ii++) {
psEthHeader->abyDstAddr[ii] = psEthHeader->h_dest[ii] =
pMACHeader->abyAddr1[ii]; pMACHeader->abyAddr1[ii];
psEthHeader->abySrcAddr[ii] = psEthHeader->h_source[ii] =
pMACHeader->abyAddr2[ii]; pMACHeader->abyAddr2[ii];
} }
} }
...@@ -247,17 +247,17 @@ s_vGetDASA ( ...@@ -247,17 +247,17 @@ s_vGetDASA (
/* Is AP mode.. */ /* Is AP mode.. */
if (pMACHeader->wFrameCtl & FC_FROMDS) { if (pMACHeader->wFrameCtl & FC_FROMDS) {
for (ii = 0; ii < ETH_ALEN; ii++) { for (ii = 0; ii < ETH_ALEN; ii++) {
psEthHeader->abyDstAddr[ii] = psEthHeader->h_dest[ii] =
pMACHeader->abyAddr3[ii]; pMACHeader->abyAddr3[ii];
psEthHeader->abySrcAddr[ii] = psEthHeader->h_source[ii] =
pMACHeader->abyAddr4[ii]; pMACHeader->abyAddr4[ii];
cbHeaderSize += 6; cbHeaderSize += 6;
} }
} else { } else {
for (ii = 0; ii < ETH_ALEN; ii++) { for (ii = 0; ii < ETH_ALEN; ii++) {
psEthHeader->abyDstAddr[ii] = psEthHeader->h_dest[ii] =
pMACHeader->abyAddr3[ii]; pMACHeader->abyAddr3[ii];
psEthHeader->abySrcAddr[ii] = psEthHeader->h_source[ii] =
pMACHeader->abyAddr2[ii]; pMACHeader->abyAddr2[ii];
} }
} }
...@@ -407,7 +407,7 @@ int RXbBulkInProcessData(struct vnt_private *pDevice, PRCB pRCB, ...@@ -407,7 +407,7 @@ int RXbBulkInProcessData(struct vnt_private *pDevice, PRCB pRCB,
// Use for TKIP MIC // Use for TKIP MIC
s_vGetDASA(pbyFrame, &cbHeaderSize, &pDevice->sRxEthHeader); s_vGetDASA(pbyFrame, &cbHeaderSize, &pDevice->sRxEthHeader);
if (!compare_ether_addr((u8 *)&(pDevice->sRxEthHeader.abySrcAddr[0]), if (!compare_ether_addr((u8 *)&(pDevice->sRxEthHeader.h_source[0]),
pDevice->abyCurrentNetAddr)) pDevice->abyCurrentNetAddr))
return false; return false;
...@@ -776,7 +776,7 @@ int RXbBulkInProcessData(struct vnt_private *pDevice, PRCB pRCB, ...@@ -776,7 +776,7 @@ int RXbBulkInProcessData(struct vnt_private *pDevice, PRCB pRCB,
} }
MIC_vInit(dwMICKey0, dwMICKey1); MIC_vInit(dwMICKey0, dwMICKey1);
MIC_vAppend((u8 *)&(pDevice->sRxEthHeader.abyDstAddr[0]), 12); MIC_vAppend((u8 *)&(pDevice->sRxEthHeader.h_dest[0]), 12);
dwMIC_Priority = 0; dwMIC_Priority = 0;
MIC_vAppend((u8 *)&dwMIC_Priority, 4); MIC_vAppend((u8 *)&dwMIC_Priority, 4);
// 4 is Rcv buffer header, 24 is MAC Header, and 8 is IV and Ext IV. // 4 is Rcv buffer header, 24 is MAC Header, and 8 is IV and Ext IV.
......
...@@ -114,7 +114,7 @@ static void *s_vGetFreeContext(struct vnt_private *pDevice); ...@@ -114,7 +114,7 @@ static void *s_vGetFreeContext(struct vnt_private *pDevice);
static void s_vGenerateTxParameter(struct vnt_private *pDevice, static void s_vGenerateTxParameter(struct vnt_private *pDevice,
u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime, u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime,
void *pvRTS, void *pvCTS, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx, void *pvRTS, void *pvCTS, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx,
PSEthernetHeader psEthHeader); struct ethhdr *psEthHeader);
static u32 s_uFillDataHead(struct vnt_private *pDevice, static u32 s_uFillDataHead(struct vnt_private *pDevice,
u8 byPktType, u16 wCurrentRate, void *pTxDataHead, u32 cbFrameLength, u8 byPktType, u16 wCurrentRate, void *pTxDataHead, u32 cbFrameLength,
...@@ -123,7 +123,7 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -123,7 +123,7 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
static void s_vGenerateMACHeader(struct vnt_private *pDevice, static void s_vGenerateMACHeader(struct vnt_private *pDevice,
u8 *pbyBufferAddr, u16 wDuration, PSEthernetHeader psEthHeader, u8 *pbyBufferAddr, u16 wDuration, struct ethhdr *psEthHeader,
int bNeedEncrypt, u16 wFragType, u32 uDMAIdx, u32 uFragIdx); int bNeedEncrypt, u16 wFragType, u32 uDMAIdx, u32 uFragIdx);
static void s_vFillTxKey(struct vnt_private *pDevice, u8 *pbyBuf, static void s_vFillTxKey(struct vnt_private *pDevice, u8 *pbyBuf,
...@@ -145,7 +145,7 @@ static void s_vFillCTSHead(struct vnt_private *pDevice, u32 uDMAIdx, ...@@ -145,7 +145,7 @@ static void s_vFillCTSHead(struct vnt_private *pDevice, u32 uDMAIdx,
static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
void *pvRTS, u32 cbFrameLength, int bNeedAck, int bDisCRC, void *pvRTS, u32 cbFrameLength, int bNeedAck, int bDisCRC,
PSEthernetHeader psEthHeader, u16 wCurrentRate, u8 byFBOption); struct ethhdr *psEthHeader, u16 wCurrentRate, u8 byFBOption);
static u32 s_uGetDataDuration(struct vnt_private *pDevice, u8 byDurType, static u32 s_uGetDataDuration(struct vnt_private *pDevice, u8 byDurType,
u32 cbFrameLength, u8 byPktType, u16 wRate, int bNeedAck, u32 cbFrameLength, u8 byPktType, u16 wRate, int bNeedAck,
...@@ -789,7 +789,7 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -789,7 +789,7 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
void *pvRTS, u32 cbFrameLength, int bNeedAck, int bDisCRC, void *pvRTS, u32 cbFrameLength, int bNeedAck, int bDisCRC,
PSEthernetHeader psEthHeader, u16 wCurrentRate, u8 byFBOption) struct ethhdr *psEthHeader, u16 wCurrentRate, u8 byFBOption)
{ {
u32 uRTSFrameLen = 20; u32 uRTSFrameLen = 20;
u16 wLen = 0; u16 wLen = 0;
...@@ -829,7 +829,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -829,7 +829,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
if ((pDevice->eOPMode == OP_MODE_ADHOC) || if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
(pDevice->eOPMode == OP_MODE_AP)) { (pDevice->eOPMode == OP_MODE_AP)) {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
} }
else { else {
...@@ -844,7 +844,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -844,7 +844,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
} }
else { else {
memcpy(&(pBuf->Data.abyTA[0]), memcpy(&(pBuf->Data.abyTA[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
} }
} }
...@@ -874,7 +874,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -874,7 +874,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
if ((pDevice->eOPMode == OP_MODE_ADHOC) || if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
(pDevice->eOPMode == OP_MODE_AP)) { (pDevice->eOPMode == OP_MODE_AP)) {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
} }
else { else {
...@@ -890,7 +890,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -890,7 +890,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
} }
else { else {
memcpy(&(pBuf->Data.abyTA[0]), memcpy(&(pBuf->Data.abyTA[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
} }
...@@ -913,7 +913,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -913,7 +913,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
if ((pDevice->eOPMode == OP_MODE_ADHOC) || if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
(pDevice->eOPMode == OP_MODE_AP)) { (pDevice->eOPMode == OP_MODE_AP)) {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
} else { } else {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
...@@ -927,7 +927,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -927,7 +927,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
ETH_ALEN); ETH_ALEN);
} else { } else {
memcpy(&(pBuf->Data.abyTA[0]), memcpy(&(pBuf->Data.abyTA[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
} }
...@@ -950,7 +950,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -950,7 +950,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
if ((pDevice->eOPMode == OP_MODE_ADHOC) || if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
(pDevice->eOPMode == OP_MODE_AP)) { (pDevice->eOPMode == OP_MODE_AP)) {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
} else { } else {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
...@@ -963,7 +963,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -963,7 +963,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
ETH_ALEN); ETH_ALEN);
} else { } else {
memcpy(&(pBuf->Data.abyTA[0]), memcpy(&(pBuf->Data.abyTA[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
} }
} }
...@@ -984,7 +984,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -984,7 +984,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
if ((pDevice->eOPMode == OP_MODE_ADHOC) || if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
(pDevice->eOPMode == OP_MODE_AP)) { (pDevice->eOPMode == OP_MODE_AP)) {
memcpy(&(pBuf->Data.abyRA[0]), memcpy(&(pBuf->Data.abyRA[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
} }
else { else {
...@@ -999,7 +999,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType, ...@@ -999,7 +999,7 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
ETH_ALEN); ETH_ALEN);
} else { } else {
memcpy(&(pBuf->Data.abyTA[0]), memcpy(&(pBuf->Data.abyTA[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
} }
} }
...@@ -1098,7 +1098,7 @@ static void s_vFillCTSHead(struct vnt_private *pDevice, u32 uDMAIdx, ...@@ -1098,7 +1098,7 @@ static void s_vFillCTSHead(struct vnt_private *pDevice, u32 uDMAIdx,
static void s_vGenerateTxParameter(struct vnt_private *pDevice, static void s_vGenerateTxParameter(struct vnt_private *pDevice,
u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime, u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime,
void *pvRTS, void *pvCTS, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx, void *pvRTS, void *pvCTS, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx,
PSEthernetHeader psEthHeader) struct ethhdr *psEthHeader)
{ {
u32 cbMACHdLen = WLAN_HDR_ADDR3_LEN; /* 24 */ u32 cbMACHdLen = WLAN_HDR_ADDR3_LEN; /* 24 */
u16 wFifoCtl; u16 wFifoCtl;
...@@ -1202,7 +1202,7 @@ static void s_vGenerateTxParameter(struct vnt_private *pDevice, ...@@ -1202,7 +1202,7 @@ static void s_vGenerateTxParameter(struct vnt_private *pDevice,
static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType,
u8 *usbPacketBuf, int bNeedEncryption, u32 uSkbPacketLen, u32 uDMAIdx, u8 *usbPacketBuf, int bNeedEncryption, u32 uSkbPacketLen, u32 uDMAIdx,
PSEthernetHeader psEthHeader, u8 *pPacket, PSKeyItem pTransmitKey, struct ethhdr *psEthHeader, u8 *pPacket, PSKeyItem pTransmitKey,
u32 uNodeIndex, u16 wCurrentRate, u32 *pcbHeaderLen, u32 *pcbTotalLen) u32 uNodeIndex, u16 wCurrentRate, u32 *pcbHeaderLen, u32 *pcbTotalLen)
{ {
struct vnt_manager *pMgmt = &pDevice->vnt_mgmt; struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
...@@ -1240,7 +1240,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, ...@@ -1240,7 +1240,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType,
memset(pTxBufHead, 0, sizeof(TX_BUFFER)); memset(pTxBufHead, 0, sizeof(TX_BUFFER));
// Get pkt type // Get pkt type
if (ntohs(psEthHeader->wType) > ETH_DATA_LEN) { if (ntohs(psEthHeader->h_proto) > ETH_DATA_LEN) {
if (pDevice->dwDiagRefCount == 0) { if (pDevice->dwDiagRefCount == 0) {
cb802_1_H_len = 8; cb802_1_H_len = 8;
} else { } else {
...@@ -1261,7 +1261,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, ...@@ -1261,7 +1261,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType,
} else { //if (pDevice->dwDiagRefCount != 0) { } else { //if (pDevice->dwDiagRefCount != 0) {
if ((pDevice->eOPMode == OP_MODE_ADHOC) || if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
(pDevice->eOPMode == OP_MODE_AP)) { (pDevice->eOPMode == OP_MODE_AP)) {
if (is_multicast_ether_addr(psEthHeader->abyDstAddr)) { if (is_multicast_ether_addr(psEthHeader->h_dest)) {
bNeedACK = false; bNeedACK = false;
pTxBufHead->wFIFOCtl = pTxBufHead->wFIFOCtl =
pTxBufHead->wFIFOCtl & (~FIFOCTL_NEEDACK); pTxBufHead->wFIFOCtl & (~FIFOCTL_NEEDACK);
...@@ -1474,19 +1474,19 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, ...@@ -1474,19 +1474,19 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType,
} }
// 802.1H // 802.1H
if (ntohs(psEthHeader->wType) > ETH_DATA_LEN) { if (ntohs(psEthHeader->h_proto) > ETH_DATA_LEN) {
if (pDevice->dwDiagRefCount == 0) { if (pDevice->dwDiagRefCount == 0) {
if ((psEthHeader->wType == cpu_to_be16(ETH_P_IPX)) || if ((psEthHeader->h_proto == cpu_to_be16(ETH_P_IPX)) ||
(psEthHeader->wType == cpu_to_le16(0xF380))) { (psEthHeader->h_proto == cpu_to_le16(0xF380))) {
memcpy((u8 *) (pbyPayloadHead), memcpy((u8 *) (pbyPayloadHead),
abySNAP_Bridgetunnel, 6); abySNAP_Bridgetunnel, 6);
} else { } else {
memcpy((u8 *) (pbyPayloadHead), &abySNAP_RFC1042[0], 6); memcpy((u8 *) (pbyPayloadHead), &abySNAP_RFC1042[0], 6);
} }
pbyType = (u8 *) (pbyPayloadHead + 6); pbyType = (u8 *) (pbyPayloadHead + 6);
memcpy(pbyType, &(psEthHeader->wType), sizeof(u16)); memcpy(pbyType, &(psEthHeader->h_proto), sizeof(u16));
} else { } else {
memcpy((u8 *) (pbyPayloadHead), &(psEthHeader->wType), sizeof(u16)); memcpy((u8 *) (pbyPayloadHead), &(psEthHeader->h_proto), sizeof(u16));
} }
...@@ -1525,7 +1525,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, ...@@ -1525,7 +1525,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType,
} }
// DO Software Michael // DO Software Michael
MIC_vInit(dwMICKey0, dwMICKey1); MIC_vInit(dwMICKey0, dwMICKey1);
MIC_vAppend((u8 *)&(psEthHeader->abyDstAddr[0]), 12); MIC_vAppend((u8 *)&(psEthHeader->h_dest[0]), 12);
dwMIC_Priority = 0; dwMIC_Priority = 0;
MIC_vAppend((u8 *)&dwMIC_Priority, 4); MIC_vAppend((u8 *)&dwMIC_Priority, 4);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"MIC KEY: %X, %X\n", DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"MIC KEY: %X, %X\n",
...@@ -1618,7 +1618,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, ...@@ -1618,7 +1618,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType,
-*/ -*/
static void s_vGenerateMACHeader(struct vnt_private *pDevice, static void s_vGenerateMACHeader(struct vnt_private *pDevice,
u8 *pbyBufferAddr, u16 wDuration, PSEthernetHeader psEthHeader, u8 *pbyBufferAddr, u16 wDuration, struct ethhdr *psEthHeader,
int bNeedEncrypt, u16 wFragType, u32 uDMAIdx, u32 uFragIdx) int bNeedEncrypt, u16 wFragType, u32 uDMAIdx, u32 uFragIdx)
{ {
PS802_11Header pMACHeader = (PS802_11Header)pbyBufferAddr; PS802_11Header pMACHeader = (PS802_11Header)pbyBufferAddr;
...@@ -1633,30 +1633,30 @@ static void s_vGenerateMACHeader(struct vnt_private *pDevice, ...@@ -1633,30 +1633,30 @@ static void s_vGenerateMACHeader(struct vnt_private *pDevice,
if (pDevice->eOPMode == OP_MODE_AP) { if (pDevice->eOPMode == OP_MODE_AP) {
memcpy(&(pMACHeader->abyAddr1[0]), memcpy(&(pMACHeader->abyAddr1[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), ETH_ALEN); memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), ETH_ALEN);
memcpy(&(pMACHeader->abyAddr3[0]), memcpy(&(pMACHeader->abyAddr3[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
pMACHeader->wFrameCtl |= FC_FROMDS; pMACHeader->wFrameCtl |= FC_FROMDS;
} else { } else {
if (pDevice->eOPMode == OP_MODE_ADHOC) { if (pDevice->eOPMode == OP_MODE_ADHOC) {
memcpy(&(pMACHeader->abyAddr1[0]), memcpy(&(pMACHeader->abyAddr1[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(pMACHeader->abyAddr2[0]), memcpy(&(pMACHeader->abyAddr2[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(pMACHeader->abyAddr3[0]), memcpy(&(pMACHeader->abyAddr3[0]),
&(pDevice->abyBSSID[0]), &(pDevice->abyBSSID[0]),
ETH_ALEN); ETH_ALEN);
} else { } else {
memcpy(&(pMACHeader->abyAddr3[0]), memcpy(&(pMACHeader->abyAddr3[0]),
&(psEthHeader->abyDstAddr[0]), &(psEthHeader->h_dest[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(pMACHeader->abyAddr2[0]), memcpy(&(pMACHeader->abyAddr2[0]),
&(psEthHeader->abySrcAddr[0]), &(psEthHeader->h_source[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(pMACHeader->abyAddr1[0]), memcpy(&(pMACHeader->abyAddr1[0]),
&(pDevice->abyBSSID[0]), &(pDevice->abyBSSID[0]),
...@@ -1719,7 +1719,7 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice, ...@@ -1719,7 +1719,7 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice,
PUSB_SEND_CONTEXT pContext; PUSB_SEND_CONTEXT pContext;
PS802_11Header pMACHeader; PS802_11Header pMACHeader;
PSCTS pCTS; PSCTS pCTS;
SEthernetHeader sEthHeader; struct ethhdr sEthHeader;
u8 byPktType, *pbyTxBufferAddr; u8 byPktType, *pbyTxBufferAddr;
void *pvRTS, *pvTxDataHd, *pvRrvTime, *pMICHDR; void *pvRTS, *pvTxDataHd, *pvRrvTime, *pMICHDR;
u32 uDuration, cbReqCount, cbHeaderSize, cbFrameBodySize, cbFrameSize; u32 uDuration, cbReqCount, cbHeaderSize, cbFrameBodySize, cbFrameSize;
...@@ -1877,10 +1877,10 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice, ...@@ -1877,10 +1877,10 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice,
memset((void *)(pbyTxBufferAddr + wTxBufSize), 0, memset((void *)(pbyTxBufferAddr + wTxBufSize), 0,
(cbHeaderSize - wTxBufSize)); (cbHeaderSize - wTxBufSize));
memcpy(&(sEthHeader.abyDstAddr[0]), memcpy(&(sEthHeader.h_dest[0]),
&(pPacket->p80211Header->sA3.abyAddr1[0]), &(pPacket->p80211Header->sA3.abyAddr1[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(sEthHeader.abySrcAddr[0]), memcpy(&(sEthHeader.h_source[0]),
&(pPacket->p80211Header->sA3.abyAddr2[0]), &(pPacket->p80211Header->sA3.abyAddr2[0]),
ETH_ALEN); ETH_ALEN);
//========================= //=========================
...@@ -2093,7 +2093,7 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) ...@@ -2093,7 +2093,7 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb)
u32 *pdwMIC_L, *pdwMIC_R; u32 *pdwMIC_L, *pdwMIC_R;
u16 wTxBufSize; u16 wTxBufSize;
u32 cbMacHdLen; u32 cbMacHdLen;
SEthernetHeader sEthHeader; struct ethhdr sEthHeader;
void *pvRrvTime, *pMICHDR; void *pvRrvTime, *pMICHDR;
u32 wCurrentRate = RATE_1M; u32 wCurrentRate = RATE_1M;
PUWLAN_80211HDR p80211Header; PUWLAN_80211HDR p80211Header;
...@@ -2290,10 +2290,10 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) ...@@ -2290,10 +2290,10 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb)
} }
memset((void *)(pbyTxBufferAddr + wTxBufSize), 0, memset((void *)(pbyTxBufferAddr + wTxBufSize), 0,
(cbHeaderSize - wTxBufSize)); (cbHeaderSize - wTxBufSize));
memcpy(&(sEthHeader.abyDstAddr[0]), memcpy(&(sEthHeader.h_dest[0]),
&(p80211Header->sA3.abyAddr1[0]), &(p80211Header->sA3.abyAddr1[0]),
ETH_ALEN); ETH_ALEN);
memcpy(&(sEthHeader.abySrcAddr[0]), memcpy(&(sEthHeader.h_source[0]),
&(p80211Header->sA3.abyAddr2[0]), &(p80211Header->sA3.abyAddr2[0]),
ETH_ALEN); ETH_ALEN);
//========================= //=========================
...@@ -2364,7 +2364,7 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) ...@@ -2364,7 +2364,7 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb)
// DO Software Michael // DO Software Michael
MIC_vInit(dwMICKey0, dwMICKey1); MIC_vInit(dwMICKey0, dwMICKey1);
MIC_vAppend((u8 *)&(sEthHeader.abyDstAddr[0]), 12); MIC_vAppend((u8 *)&(sEthHeader.h_dest[0]), 12);
dwMIC_Priority = 0; dwMIC_Priority = 0;
MIC_vAppend((u8 *)&dwMIC_Priority, 4); MIC_vAppend((u8 *)&dwMIC_Priority, 4);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"DMA0_tx_8021:MIC KEY:"\ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"DMA0_tx_8021:MIC KEY:"\
...@@ -2562,7 +2562,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2562,7 +2562,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
return STATUS_RESOURCES; return STATUS_RESOURCES;
} }
memcpy(pDevice->sTxEthHeader.abyDstAddr, (u8 *)(skb->data), ETH_HLEN); memcpy(pDevice->sTxEthHeader.h_dest, (u8 *)(skb->data), ETH_HLEN);
//mike add:station mode check eapol-key challenge---> //mike add:station mode check eapol-key challenge--->
{ {
...@@ -2575,7 +2575,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2575,7 +2575,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
Packet_Type = skb->data[ETH_HLEN+1]; Packet_Type = skb->data[ETH_HLEN+1];
Descriptor_type = skb->data[ETH_HLEN+1+1+2]; Descriptor_type = skb->data[ETH_HLEN+1+1+2];
Key_info = (skb->data[ETH_HLEN+1+1+2+1] << 8)|(skb->data[ETH_HLEN+1+1+2+2]); Key_info = (skb->data[ETH_HLEN+1+1+2+1] << 8)|(skb->data[ETH_HLEN+1+1+2+2]);
if (pDevice->sTxEthHeader.wType == cpu_to_be16(ETH_P_PAE)) { if (pDevice->sTxEthHeader.h_proto == cpu_to_be16(ETH_P_PAE)) {
/* 802.1x OR eapol-key challenge frame transfer */ /* 802.1x OR eapol-key challenge frame transfer */
if (((Protocol_Version == 1) || (Protocol_Version == 2)) && if (((Protocol_Version == 1) || (Protocol_Version == 2)) &&
(Packet_Type == 3)) { (Packet_Type == 3)) {
...@@ -2622,8 +2622,8 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2622,8 +2622,8 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
break; break;
} }
}else if (pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) { }else if (pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) {
/* TO_DS = 0 and FROM_DS = 0 --> 802.11 MAC Address1 */
pbyBSSID = pDevice->sTxEthHeader.abyDstAddr; //TO_DS = 0 and FROM_DS = 0 --> 802.11 MAC Address1 pbyBSSID = pDevice->sTxEthHeader.h_dest;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_DEBUG"IBSS Serach Key: \n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_DEBUG"IBSS Serach Key: \n");
for (ii = 0; ii< 6; ii++) for (ii = 0; ii< 6; ii++)
DBG_PRT(MSG_LEVEL_DEBUG, KERN_DEBUG"%x \n", *(pbyBSSID+ii)); DBG_PRT(MSG_LEVEL_DEBUG, KERN_DEBUG"%x \n", *(pbyBSSID+ii));
...@@ -2689,14 +2689,14 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2689,14 +2689,14 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
else { else {
if (pDevice->eOPMode == OP_MODE_ADHOC) { if (pDevice->eOPMode == OP_MODE_ADHOC) {
// Adhoc Tx rate decided from node DB // Adhoc Tx rate decided from node DB
if (is_multicast_ether_addr(pDevice->sTxEthHeader.abyDstAddr)) { if (is_multicast_ether_addr(pDevice->sTxEthHeader.h_dest)) {
// Multicast use highest data rate // Multicast use highest data rate
pDevice->wCurrentRate = pMgmt->sNodeDBTable[0].wTxDataRate; pDevice->wCurrentRate = pMgmt->sNodeDBTable[0].wTxDataRate;
// preamble type // preamble type
pDevice->byPreambleType = pDevice->byShortPreamble; pDevice->byPreambleType = pDevice->byShortPreamble;
} }
else { else {
if(BSSbIsSTAInNodeDB(pDevice, &(pDevice->sTxEthHeader.abyDstAddr[0]), &uNodeIndex)) { if (BSSbIsSTAInNodeDB(pDevice, &(pDevice->sTxEthHeader.h_dest[0]), &uNodeIndex)) {
pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate; pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate;
if (pMgmt->sNodeDBTable[uNodeIndex].bShortPreamble) { if (pMgmt->sNodeDBTable[uNodeIndex].bShortPreamble) {
pDevice->byPreambleType = pDevice->byShortPreamble; pDevice->byPreambleType = pDevice->byShortPreamble;
...@@ -2724,7 +2724,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2724,7 +2724,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
} }
} }
if (pDevice->sTxEthHeader.wType == cpu_to_be16(ETH_P_PAE)) { if (pDevice->sTxEthHeader.h_proto == cpu_to_be16(ETH_P_PAE)) {
if (pDevice->byBBType != BB_TYPE_11A) { if (pDevice->byBBType != BB_TYPE_11A) {
pDevice->wCurrentRate = RATE_1M; pDevice->wCurrentRate = RATE_1M;
pDevice->byACKRate = RATE_1M; pDevice->byACKRate = RATE_1M;
...@@ -2751,10 +2751,10 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2751,10 +2751,10 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
} }
if (bNeedEncryption == true) { if (bNeedEncryption == true) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ntohs Pkt Type=%04x\n", ntohs(pDevice->sTxEthHeader.wType)); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ntohs Pkt Type=%04x\n", ntohs(pDevice->sTxEthHeader.h_proto));
if ((pDevice->sTxEthHeader.wType) == cpu_to_be16(ETH_P_PAE)) { if ((pDevice->sTxEthHeader.h_proto) == cpu_to_be16(ETH_P_PAE)) {
bNeedEncryption = false; bNeedEncryption = false;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Pkt Type=%04x\n", (pDevice->sTxEthHeader.wType)); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Pkt Type=%04x\n", (pDevice->sTxEthHeader.h_proto));
if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) { if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) {
if (pTransmitKey == NULL) { if (pTransmitKey == NULL) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Don't Find TX KEY\n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Don't Find TX KEY\n");
...@@ -2823,7 +2823,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice, ...@@ -2823,7 +2823,7 @@ int nsDMA_tx_packet(struct vnt_private *pDevice,
pContext->Type = CONTEXT_DATA_PACKET; pContext->Type = CONTEXT_DATA_PACKET;
pContext->uBufLen = (u16)BytesToWrite + 4 ; //USB header pContext->uBufLen = (u16)BytesToWrite + 4 ; //USB header
s_vSaveTxPktInfo(pDevice, (u8) (pTX_Buffer->byPKTNO & 0x0F), &(pContext->sEthHeader.abyDstAddr[0]),(u16) (BytesToWrite-uHeaderLen),pTX_Buffer->wFIFOCtl); s_vSaveTxPktInfo(pDevice, (u8) (pTX_Buffer->byPKTNO & 0x0F), &(pContext->sEthHeader.h_dest[0]), (u16) (BytesToWrite-uHeaderLen), pTX_Buffer->wFIFOCtl);
status = PIPEnsSendBulkOut(pDevice,pContext); status = PIPEnsSendBulkOut(pDevice,pContext);
...@@ -2885,7 +2885,7 @@ int bRelayPacketSend(struct vnt_private *pDevice, u8 *pbySkbData, u32 uDataLen, ...@@ -2885,7 +2885,7 @@ int bRelayPacketSend(struct vnt_private *pDevice, u8 *pbySkbData, u32 uDataLen,
return false; return false;
} }
memcpy(pDevice->sTxEthHeader.abyDstAddr, (u8 *)pbySkbData, ETH_HLEN); memcpy(pDevice->sTxEthHeader.h_dest, (u8 *)pbySkbData, ETH_HLEN);
if (pDevice->bEncryptionEnable == true) { if (pDevice->bEncryptionEnable == true) {
bNeedEncryption = true; bNeedEncryption = true;
...@@ -2977,7 +2977,7 @@ int bRelayPacketSend(struct vnt_private *pDevice, u8 *pbySkbData, u32 uDataLen, ...@@ -2977,7 +2977,7 @@ int bRelayPacketSend(struct vnt_private *pDevice, u8 *pbySkbData, u32 uDataLen,
pContext->Type = CONTEXT_DATA_PACKET; pContext->Type = CONTEXT_DATA_PACKET;
pContext->uBufLen = (u16)BytesToWrite + 4 ; //USB header pContext->uBufLen = (u16)BytesToWrite + 4 ; //USB header
s_vSaveTxPktInfo(pDevice, (u8) (pTX_Buffer->byPKTNO & 0x0F), &(pContext->sEthHeader.abyDstAddr[0]),(u16) (BytesToWrite-uHeaderLen),pTX_Buffer->wFIFOCtl); s_vSaveTxPktInfo(pDevice, (u8) (pTX_Buffer->byPKTNO & 0x0F), &(pContext->sEthHeader.h_dest[0]), (u16) (BytesToWrite-uHeaderLen), pTX_Buffer->wFIFOCtl);
status = PIPEnsSendBulkOut(pDevice,pContext); status = PIPEnsSendBulkOut(pDevice,pContext);
......
...@@ -114,18 +114,6 @@ ...@@ -114,18 +114,6 @@
#define WEP_IV_MASK 0x00FFFFFF #define WEP_IV_MASK 0x00FFFFFF
/*--------------------- Export Types ------------------------------*/
//
// Ethernet packet
//
typedef struct tagSEthernetHeader {
u8 abyDstAddr[ETH_ALEN];
u8 abySrcAddr[ETH_ALEN];
u16 wType;
} __attribute__ ((__packed__))
SEthernetHeader, *PSEthernetHeader;
// //
// 802_3 packet // 802_3 packet
// //
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment