* information for frames received. Not setting these will not cause
* any adverse affects. */
struct ieee80211_rx_stats {
-#if 1
u32 mac_time[2];
s8 rssi;
u8 signal;
u32 beacon_time;
u8 nic_type;
u16 Length;
- // u8 DataRate; // In 0.5 Mbps
u8 SignalQuality; // in 0-100 index.
s32 RecvSignalPower; // Real power in dBm for this packet, no beautification and aggregation.
s8 RxPower; // in dBm Translate from PWdB
bool bIsAMPDU;
bool bFirstMPDU;
bool bContainHTC;
- bool RxIs40MHzPacket;
u32 RxPWDBAll;
u8 RxMIMOSignalStrength[4]; // in 0~100 index
s8 RxMIMOSignalQuality[2];
bool bPacketMatchBSSID;
bool bIsCCK;
bool bPacketToSelf;
- //added by amy
u8* virtual_address;
- u16 packetlength; // Total packet length: Must equal to sum of all FragLength
- u16 fraglength; // FragLength should equal to PacketLength in non-fragment case
- u16 fragoffset; // Data offset for this fragment
- u16 ntotalfrag;
- bool bisrxaggrsubframe;
bool bPacketBeacon; //cosa add for rssi
bool bToSelfBA; //cosa add for rssi
char cck_adc_pwdb[4]; //cosa add for rx path selection
- u16 Seq_Num;
-#endif
-
};
/* IEEE 802.11 requires that STA supports concurrent reception of at least
sc = le16_to_cpu(hdr->seq_ctl);
frag = WLAN_GET_SEQ_FRAG(sc);
seq = WLAN_GET_SEQ_SEQ(sc);
- //cosa add 04292008 to record the sequence number
- pcurrent_stats->Seq_Num = seq;
+
//
// Check whether we should take the previous packet into accounting
//
{
ptarget_stats->bIsAMPDU = psrc_stats->bIsAMPDU;
ptarget_stats->bFirstMPDU = psrc_stats->bFirstMPDU;
- //ptarget_stats->Seq_Num = psrc_stats->Seq_Num;
}
if((stats.RxBufShift + stats.RxDrvInfoSize) > 0)
stats.bShift = 1;
- stats.RxIs40MHzPacket = pDrvInfo->BW;
-
/* ???? */
TranslateRxSignalStuff819xpci(priv, skb, &stats, pdesc, pDrvInfo);
unicast_packet = true;
}
- stats.packetlength = stats.Length-4;
- stats.fraglength = stats.packetlength;
- stats.fragoffset = 0;
- stats.ntotalfrag = 1;
-
if(!ieee80211_rtl_rx(priv->ieee80211, skb, &stats)){
dev_kfree_skb_any(skb);
} else {