@@ -795,32 +795,20 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
795795 pBuf -> wDuration_bb = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_BB , cbFrameLength , PK_TYPE_11B , pDevice -> byTopCCKBasicRate , bNeedAck , byFBOption )); //0:RTSDuration_bb, 1:2.4G, 1:CCKData
796796 pBuf -> wDuration_aa = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //2:RTSDuration_aa, 1:2.4G, 2,3: 2.4G OFDMData
797797 pBuf -> wDuration_ba = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_BA , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //1:RTSDuration_ba, 1:2.4G, 2,3:2.4G OFDM Data
798+ pBuf -> data .duration = pBuf -> wDuration_aa ;
799+ /*Get RTS Frame body */
800+ pBuf -> data .frame_control = TYPE_CTL_RTS ;
798801
799- pBuf -> Data .wDurationID = pBuf -> wDuration_aa ;
800- //Get RTS Frame body
801- pBuf -> Data .wFrameControl = TYPE_CTL_RTS ;//0x00B4
802+ if (pDevice -> eOPMode == OP_MODE_ADHOC ||
803+ pDevice -> eOPMode == OP_MODE_AP )
804+ memcpy (pBuf -> data .ra , psEthHeader -> h_dest , ETH_ALEN );
805+ else
806+ memcpy (pBuf -> data .ra , pDevice -> abyBSSID , ETH_ALEN );
802807
803- if ((pDevice -> eOPMode == OP_MODE_ADHOC ) ||
804- (pDevice -> eOPMode == OP_MODE_AP )) {
805- memcpy (& (pBuf -> Data .abyRA [0 ]),
806- & (psEthHeader -> h_dest [0 ]),
807- ETH_ALEN );
808- }
809- else {
810- memcpy (& (pBuf -> Data .abyRA [0 ]),
811- & (pDevice -> abyBSSID [0 ]),
812- ETH_ALEN );
813- }
814- if (pDevice -> eOPMode == OP_MODE_AP ) {
815- memcpy (& (pBuf -> Data .abyTA [0 ]),
816- & (pDevice -> abyBSSID [0 ]),
817- ETH_ALEN );
818- }
819- else {
820- memcpy (& (pBuf -> Data .abyTA [0 ]),
821- & (psEthHeader -> h_source [0 ]),
822- ETH_ALEN );
823- }
808+ if (pDevice -> eOPMode == OP_MODE_AP )
809+ memcpy (pBuf -> data .ta , pDevice -> abyBSSID , ETH_ALEN );
810+ else
811+ memcpy (pBuf -> data .ta , psEthHeader -> h_source , ETH_ALEN );
824812 }
825813 else {
826814 PSRTS_g_FB pBuf = (PSRTS_g_FB )pvRTS ;
@@ -841,33 +829,20 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
841829 pBuf -> wRTSDuration_aa_f0 = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA_F0 , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //5:wRTSDuration_aa_f0, 1:2.4G, 1:CCKData
842830 pBuf -> wRTSDuration_ba_f1 = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_BA_F1 , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //6:wRTSDuration_ba_f1, 1:2.4G, 1:CCKData
843831 pBuf -> wRTSDuration_aa_f1 = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA_F1 , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //7:wRTSDuration_aa_f1, 1:2.4G, 1:CCKData
844- pBuf -> Data .wDurationID = pBuf -> wDuration_aa ;
845- //Get RTS Frame body
846- pBuf -> Data .wFrameControl = TYPE_CTL_RTS ;//0x00B4
847-
848- if ((pDevice -> eOPMode == OP_MODE_ADHOC ) ||
849- (pDevice -> eOPMode == OP_MODE_AP )) {
850- memcpy (& (pBuf -> Data .abyRA [0 ]),
851- & (psEthHeader -> h_dest [0 ]),
852- ETH_ALEN );
853- }
854- else {
855- memcpy (& (pBuf -> Data .abyRA [0 ]),
856- & (pDevice -> abyBSSID [0 ]),
857- ETH_ALEN );
858- }
859-
860- if (pDevice -> eOPMode == OP_MODE_AP ) {
861- memcpy (& (pBuf -> Data .abyTA [0 ]),
862- & (pDevice -> abyBSSID [0 ]),
863- ETH_ALEN );
864- }
865- else {
866- memcpy (& (pBuf -> Data .abyTA [0 ]),
867- & (psEthHeader -> h_source [0 ]),
868- ETH_ALEN );
869- }
870-
832+ pBuf -> data .duration = pBuf -> wDuration_aa ;
833+ /*Get RTS Frame body*/
834+ pBuf -> data .frame_control = TYPE_CTL_RTS ;
835+
836+ if (pDevice -> eOPMode == OP_MODE_ADHOC ||
837+ pDevice -> eOPMode == OP_MODE_AP )
838+ memcpy (pBuf -> data .ra , psEthHeader -> h_dest , ETH_ALEN );
839+ else
840+ memcpy (pBuf -> data .ra , pDevice -> abyBSSID , ETH_ALEN );
841+
842+ if (pDevice -> eOPMode == OP_MODE_AP )
843+ memcpy (pBuf -> data .ta , pDevice -> abyBSSID , ETH_ALEN );
844+ else
845+ memcpy (pBuf -> data .ta , psEthHeader -> h_source , ETH_ALEN );
871846 } // if (byFBOption == AUTO_FB_NONE)
872847 }
873848 else if (byPktType == PK_TYPE_11A ) {
@@ -880,31 +855,20 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
880855 pBuf -> wTransmitLength = cpu_to_le16 (wLen );
881856 //Get Duration
882857 pBuf -> wDuration = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //0:RTSDuration_aa, 0:5G, 0: 5G OFDMData
883- pBuf -> Data .wDurationID = pBuf -> wDuration ;
884- //Get RTS Frame body
885- pBuf -> Data .wFrameControl = TYPE_CTL_RTS ;//0x00B4
886-
887- if ((pDevice -> eOPMode == OP_MODE_ADHOC ) ||
888- (pDevice -> eOPMode == OP_MODE_AP )) {
889- memcpy (& (pBuf -> Data .abyRA [0 ]),
890- & (psEthHeader -> h_dest [0 ]),
891- ETH_ALEN );
892- } else {
893- memcpy (& (pBuf -> Data .abyRA [0 ]),
894- & (pDevice -> abyBSSID [0 ]),
895- ETH_ALEN );
896- }
858+ pBuf -> data .duration = pBuf -> wDuration ;
859+ /* Get RTS Frame body */
860+ pBuf -> data .frame_control = TYPE_CTL_RTS ;
897861
898- if (pDevice -> eOPMode == OP_MODE_AP ) {
899- memcpy (& (pBuf -> Data .abyTA [0 ]),
900- & (pDevice -> abyBSSID [0 ]),
901- ETH_ALEN );
902- } else {
903- memcpy (& (pBuf -> Data .abyTA [0 ]),
904- & (psEthHeader -> h_source [0 ]),
905- ETH_ALEN );
906- }
862+ if (pDevice -> eOPMode == OP_MODE_ADHOC ||
863+ pDevice -> eOPMode == OP_MODE_AP )
864+ memcpy (pBuf -> data .ra , psEthHeader -> h_dest , ETH_ALEN );
865+ else
866+ memcpy (pBuf -> data .ra , pDevice -> abyBSSID , ETH_ALEN );
907867
868+ if (pDevice -> eOPMode == OP_MODE_AP )
869+ memcpy (pBuf -> data .ta , pDevice -> abyBSSID , ETH_ALEN );
870+ else
871+ memcpy (pBuf -> data .ta , psEthHeader -> h_source , ETH_ALEN );
908872 }
909873 else {
910874 PSRTS_a_FB pBuf = (PSRTS_a_FB )pvRTS ;
@@ -917,29 +881,20 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
917881 pBuf -> wDuration = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //0:RTSDuration_aa, 0:5G, 0: 5G OFDMData
918882 pBuf -> wRTSDuration_f0 = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA_F0 , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //5:RTSDuration_aa_f0, 0:5G, 0: 5G OFDMData
919883 pBuf -> wRTSDuration_f1 = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_AA_F1 , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //7:RTSDuration_aa_f1, 0:5G, 0:
920- pBuf -> Data . wDurationID = pBuf -> wDuration ;
921- // Get RTS Frame body
922- pBuf -> Data . wFrameControl = TYPE_CTL_RTS ;//0x00B4
884+ pBuf -> data . duration = pBuf -> wDuration ;
885+ /* Get RTS Frame body */
886+ pBuf -> data . frame_control = TYPE_CTL_RTS ;
923887
924- if ((pDevice -> eOPMode == OP_MODE_ADHOC ) ||
925- (pDevice -> eOPMode == OP_MODE_AP )) {
926- memcpy (& (pBuf -> Data .abyRA [0 ]),
927- & (psEthHeader -> h_dest [0 ]),
928- ETH_ALEN );
929- } else {
930- memcpy (& (pBuf -> Data .abyRA [0 ]),
931- & (pDevice -> abyBSSID [0 ]),
932- ETH_ALEN );
933- }
934- if (pDevice -> eOPMode == OP_MODE_AP ) {
935- memcpy (& (pBuf -> Data .abyTA [0 ]),
936- & (pDevice -> abyBSSID [0 ]),
937- ETH_ALEN );
938- } else {
939- memcpy (& (pBuf -> Data .abyTA [0 ]),
940- & (psEthHeader -> h_source [0 ]),
941- ETH_ALEN );
942- }
888+ if (pDevice -> eOPMode == OP_MODE_ADHOC ||
889+ pDevice -> eOPMode == OP_MODE_AP )
890+ memcpy (pBuf -> data .ra , psEthHeader -> h_dest , ETH_ALEN );
891+ else
892+ memcpy (pBuf -> data .ra , pDevice -> abyBSSID , ETH_ALEN );
893+
894+ if (pDevice -> eOPMode == OP_MODE_AP )
895+ memcpy (pBuf -> data .ta , pDevice -> abyBSSID , ETH_ALEN );
896+ else
897+ memcpy (pBuf -> data .ta , psEthHeader -> h_source , ETH_ALEN );
943898 }
944899 }
945900 else if (byPktType == PK_TYPE_11B ) {
@@ -951,31 +906,21 @@ static void s_vFillRTSHead(struct vnt_private *pDevice, u8 byPktType,
951906 pBuf -> wTransmitLength = cpu_to_le16 (wLen );
952907 //Get Duration
953908 pBuf -> wDuration = cpu_to_le16 ((u16 )s_uGetRTSCTSDuration (pDevice , RTSDUR_BB , cbFrameLength , byPktType , wCurrentRate , bNeedAck , byFBOption )); //0:RTSDuration_bb, 1:2.4G, 1:CCKData
954- pBuf -> Data .wDurationID = pBuf -> wDuration ;
955- //Get RTS Frame body
956- pBuf -> Data .wFrameControl = TYPE_CTL_RTS ;//0x00B4
957909
958- if ((pDevice -> eOPMode == OP_MODE_ADHOC ) ||
959- (pDevice -> eOPMode == OP_MODE_AP )) {
960- memcpy (& (pBuf -> Data .abyRA [0 ]),
961- & (psEthHeader -> h_dest [0 ]),
962- ETH_ALEN );
963- }
964- else {
965- memcpy (& (pBuf -> Data .abyRA [0 ]),
966- & (pDevice -> abyBSSID [0 ]),
967- ETH_ALEN );
968- }
910+ pBuf -> data .duration = pBuf -> wDuration ;
911+ /* Get RTS Frame body */
912+ pBuf -> data .frame_control = TYPE_CTL_RTS ;
969913
970- if (pDevice -> eOPMode == OP_MODE_AP ) {
971- memcpy (& (pBuf -> Data .abyTA [0 ]),
972- & (pDevice -> abyBSSID [0 ]),
973- ETH_ALEN );
974- } else {
975- memcpy (& (pBuf -> Data .abyTA [0 ]),
976- & (psEthHeader -> h_source [0 ]),
977- ETH_ALEN );
978- }
914+ if (pDevice -> eOPMode == OP_MODE_ADHOC ||
915+ pDevice -> eOPMode == OP_MODE_AP )
916+ memcpy (pBuf -> data .ra , psEthHeader -> h_dest , ETH_ALEN );
917+ else
918+ memcpy (pBuf -> data .ra , pDevice -> abyBSSID , ETH_ALEN );
919+
920+ if (pDevice -> eOPMode == OP_MODE_AP )
921+ memcpy (pBuf -> data .ta , pDevice -> abyBSSID , ETH_ALEN );
922+ else
923+ memcpy (pBuf -> data .ta , psEthHeader -> h_source , ETH_ALEN );
979924 }
980925}
981926
0 commit comments