|
@@ -1084,71 +1084,58 @@ s_vGenerateTxParameter(
|
|
|
if (pDevice->bLongHeader)
|
|
|
cbMACHdLen = WLAN_HDR_ADDR3_LEN + 6;
|
|
|
|
|
|
+ if (!pvRrvTime)
|
|
|
+ return;
|
|
|
+
|
|
|
if (byPktType == PK_TYPE_11GB || byPktType == PK_TYPE_11GA) {
|
|
|
if (pvRTS != NULL) { //RTS_need
|
|
|
- //Fill RsvTime
|
|
|
- if (pvRrvTime) {
|
|
|
- struct vnt_rrv_time_rts *buf = pvRrvTime;
|
|
|
-
|
|
|
- buf->rts_rrv_time_aa = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate);
|
|
|
- buf->rts_rrv_time_ba = s_uGetRTSCTSRsvTime(pDevice, 1, byPktType, cbFrameSize, wCurrentRate);
|
|
|
- buf->rts_rrv_time_bb = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate);
|
|
|
- buf->rrv_time_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
- buf->rrv_time_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK);
|
|
|
- }
|
|
|
- //Fill RTS
|
|
|
+ /* Fill RsvTime */
|
|
|
+ struct vnt_rrv_time_rts *buf = pvRrvTime;
|
|
|
+
|
|
|
+ buf->rts_rrv_time_aa = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate);
|
|
|
+ buf->rts_rrv_time_ba = s_uGetRTSCTSRsvTime(pDevice, 1, byPktType, cbFrameSize, wCurrentRate);
|
|
|
+ buf->rts_rrv_time_bb = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate);
|
|
|
+ buf->rrv_time_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
+ buf->rrv_time_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK);
|
|
|
+
|
|
|
s_vFillRTSHead(pDevice, byPktType, pvRTS, cbFrameSize, bNeedACK, bDisCRC, psEthHeader, wCurrentRate, byFBOption);
|
|
|
} else {//RTS_needless, PCF mode
|
|
|
+ struct vnt_rrv_time_cts *buf = pvRrvTime;
|
|
|
|
|
|
- //Fill RsvTime
|
|
|
- if (pvRrvTime) {
|
|
|
- struct vnt_rrv_time_cts *buf = pvRrvTime;
|
|
|
-
|
|
|
- buf->rrv_time_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
- buf->rrv_time_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK);
|
|
|
- buf->cts_rrv_time_ba = s_uGetRTSCTSRsvTime(pDevice, 3, byPktType, cbFrameSize, wCurrentRate);
|
|
|
- }
|
|
|
+ buf->rrv_time_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
+ buf->rrv_time_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK);
|
|
|
+ buf->cts_rrv_time_ba = s_uGetRTSCTSRsvTime(pDevice, 3, byPktType, cbFrameSize, wCurrentRate);
|
|
|
|
|
|
//Fill CTS
|
|
|
s_vFillCTSHead(pDevice, uDMAIdx, byPktType, pvCTS, cbFrameSize, bNeedACK, bDisCRC, wCurrentRate, byFBOption);
|
|
|
}
|
|
|
} else if (byPktType == PK_TYPE_11A) {
|
|
|
if (pvRTS != NULL) {//RTS_need, non PCF mode
|
|
|
- //Fill RsvTime
|
|
|
- if (pvRrvTime) {
|
|
|
- struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
+ struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
+
|
|
|
+ buf->rts_rrv_time = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate);
|
|
|
+ buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
|
|
|
- buf->rts_rrv_time = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate);
|
|
|
- buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
- }
|
|
|
//Fill RTS
|
|
|
s_vFillRTSHead(pDevice, byPktType, pvRTS, cbFrameSize, bNeedACK, bDisCRC, psEthHeader, wCurrentRate, byFBOption);
|
|
|
} else if (pvRTS == NULL) {//RTS_needless, non PCF mode
|
|
|
- //Fill RsvTime
|
|
|
- if (pvRrvTime) {
|
|
|
- struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
+ struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
|
|
|
- buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
- }
|
|
|
+ buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
}
|
|
|
} else if (byPktType == PK_TYPE_11B) {
|
|
|
if ((pvRTS != NULL)) {//RTS_need, non PCF mode
|
|
|
- //Fill RsvTime
|
|
|
- if (pvRrvTime) {
|
|
|
- struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
+ struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
+
|
|
|
+ buf->rts_rrv_time = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate);
|
|
|
+ buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
|
|
|
- buf->rts_rrv_time = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate);
|
|
|
- buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
- }
|
|
|
//Fill RTS
|
|
|
s_vFillRTSHead(pDevice, byPktType, pvRTS, cbFrameSize, bNeedACK, bDisCRC, psEthHeader, wCurrentRate, byFBOption);
|
|
|
} else { //RTS_needless, non PCF mode
|
|
|
- //Fill RsvTime
|
|
|
- if (pvRrvTime) {
|
|
|
- struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
+ struct vnt_rrv_time_ab *buf = pvRrvTime;
|
|
|
|
|
|
- buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
- }
|
|
|
+ buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK);
|
|
|
}
|
|
|
}
|
|
|
}
|