nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 diff -ur ../rt2500-cvs-20051008/Module/rtmp_data.c ./Module/rtmp_data.c
2 --- ../rt2500-cvs-20051008/Module/rtmp_data.c 2005-10-06 04:53:08.000000000 +0200
3 +++ ./Module/rtmp_data.c 2005-11-05 01:20:02.000000000 +0100
4 @@ -50,6 +50,7 @@
5 0, /* RATE_1 */ 1, /* RATE_2 */ 2, /* RATE_5_5 */ 3, /* RATE_11 */ // see BBP spec
6 11, /* RATE_6 */ 15, /* RATE_9 */ 10, /* RATE_12 */ 14, /* RATE_18 */ // see IEEE802.11a-1999 p.14
7 9, /* RATE_24 */ 13, /* RATE_36 */ 8, /* RATE_48 */ 12 /* RATE_54 */ }; // see IEEE802.11a-1999 p.14
8 +static UINT _11G_RATES[12] = { 0, 0, 0, 0, 6, 9, 12, 18, 24, 36, 48, 54 };
9  
10 #define COLLECT_RX_ANTENNA_AVERAGE_RSSI(_pAd, _RxAnt, _rssi) \
11 { \
12 @@ -1132,9 +1133,61 @@
13 if (pAdapter->PortCfg.BssType == BSS_MONITOR)
14 {
15 struct sk_buff *skb;
16 + wlan_ng_prism2_header *ph;
17  
18 if ((skb = __dev_alloc_skb(2048, GFP_DMA|GFP_ATOMIC)) != NULL)
19 {
20 + // setup the wlan-ng prismheader
21 +
22 + if (skb_headroom(skb) < sizeof(wlan_ng_prism2_header))
23 + pskb_expand_head(skb, sizeof(wlan_ng_prism2_header), 0, GFP_ATOMIC);
24 +
25 + ph = (wlan_ng_prism2_header *)
26 + skb_push(skb, sizeof(wlan_ng_prism2_header));
27 + memset(ph, 0, sizeof(wlan_ng_prism2_header));
28 +
29 + ph->msgcode = DIDmsg_lnxind_wlansniffrm;
30 + ph->msglen = sizeof(wlan_ng_prism2_header);
31 + strcpy(ph->devname, pAdapter->net_dev->name);
32 +
33 + ph->hosttime.did = DIDmsg_lnxind_wlansniffrm_hosttime;
34 + ph->mactime.did = DIDmsg_lnxind_wlansniffrm_mactime;
35 + ph->channel.did = DIDmsg_lnxind_wlansniffrm_channel;
36 + ph->rssi.did = DIDmsg_lnxind_wlansniffrm_rssi;
37 + ph->signal.did = DIDmsg_lnxind_wlansniffrm_signal;
38 + ph->noise.did = DIDmsg_lnxind_wlansniffrm_noise;
39 + ph->rate.did = DIDmsg_lnxind_wlansniffrm_rate;
40 + ph->istx.did = DIDmsg_lnxind_wlansniffrm_istx;
41 + ph->frmlen.did = DIDmsg_lnxind_wlansniffrm_frmlen;
42 +
43 + ph->hosttime.len = 4;
44 + ph->mactime.len = 4;
45 + ph->channel.len = 4;
46 + ph->rssi.len = 4;
47 + ph->signal.len = 4;
48 + ph->noise.len = 4;
49 + ph->rate.len = 4;
50 + ph->istx.len = 4;
51 + ph->frmlen.len = 4;
52 +
53 + ph->hosttime.data = jiffies;
54 + ph->signal.data = pRxD->BBR1;
55 + ph->channel.data = pAdapter->PortCfg.IbssConfig.Channel;
56 + ph->noise.data = pAdapter->PortCfg.LastR17Value;
57 + ph->rssi.data = ph->signal.data - ph->noise.data;
58 + ph->frmlen.data = pRxD->DataByteCnt;
59 +
60 + if (pRxD->Ofdm == 1)
61 + {
62 + for (i = 4; i < 12; i++)
63 + if (pRxD->BBR0 == PlcpSignal[i])
64 + ph->rate.data = _11G_RATES[i] * 2;
65 + }
66 + else
67 + ph->rate.data = pRxD->BBR0 / 5;
68 +
69 + // end prismheader setup
70 +
71 skb->dev = pAdapter->net_dev;
72 memcpy(skb_put(skb, pRxD->DataByteCnt), pData, pRxD->DataByteCnt);
73 skb->mac.raw = skb->data;
74 diff -ur ../rt2500-cvs-20051008/Module/rtmp.h ./Module/rtmp.h
75 --- ../rt2500-cvs-20051008/Module/rtmp.h 2005-10-06 04:53:08.000000000 +0200
76 +++ ./Module/rtmp.h 2005-10-09 00:10:27.000000000 +0200
77 @@ -2549,4 +2549,54 @@
78 IN ULONG DescriptorType);
79 #endif
80  
81 +#ifndef _PRISMHEADER
82 +#define _PRISMHEADER
83 +
84 +enum {
85 + DIDmsg_lnxind_wlansniffrm = 0x00000044,
86 + DIDmsg_lnxind_wlansniffrm_hosttime = 0x00010044,
87 + DIDmsg_lnxind_wlansniffrm_mactime = 0x00020044,
88 + DIDmsg_lnxind_wlansniffrm_channel = 0x00030044,
89 + DIDmsg_lnxind_wlansniffrm_rssi = 0x00040044,
90 + DIDmsg_lnxind_wlansniffrm_sq = 0x00050044,
91 + DIDmsg_lnxind_wlansniffrm_signal = 0x00060044,
92 + DIDmsg_lnxind_wlansniffrm_noise = 0x00070044,
93 + DIDmsg_lnxind_wlansniffrm_rate = 0x00080044,
94 + DIDmsg_lnxind_wlansniffrm_istx = 0x00090044,
95 + DIDmsg_lnxind_wlansniffrm_frmlen = 0x000A0044
96 +};
97 +enum {
98 + P80211ENUM_msgitem_status_no_value = 0x00
99 +};
100 +enum {
101 + P80211ENUM_truth_false = 0x00,
102 + P80211ENUM_truth_true = 0x01
103 +};
104 +
105 +typedef struct {
106 + u_int32_t did;
107 + u_int16_t status;
108 + u_int16_t len;
109 + u_int32_t data;
110 +} p80211item_uint32_t;
111 +
112 +typedef struct {
113 + u_int32_t msgcode;
114 + u_int32_t msglen;
115 +#define WLAN_DEVNAMELEN_MAX 16
116 + u_int8_t devname[WLAN_DEVNAMELEN_MAX];
117 + p80211item_uint32_t hosttime;
118 + p80211item_uint32_t mactime;
119 + p80211item_uint32_t channel;
120 + p80211item_uint32_t rssi;
121 + p80211item_uint32_t sq;
122 + p80211item_uint32_t signal;
123 + p80211item_uint32_t noise;
124 + p80211item_uint32_t rate;
125 + p80211item_uint32_t istx;
126 + p80211item_uint32_t frmlen;
127 +} wlan_ng_prism2_header;
128 +
129 +#endif
130 +
131 #endif // __RTMP_H__
132 diff -ur ../rt2500-cvs-20051008/Module/rtmp_info.c ./Module/rtmp_info.c
133 --- ../rt2500-cvs-20051008/Module/rtmp_info.c 2005-10-06 04:53:08.000000000 +0200
134 +++ ./Module/rtmp_info.c 2005-10-09 00:07:51.000000000 +0200
135 @@ -1973,7 +1973,7 @@
136 {
137 if (pAdapter->PortCfg.BssType == BSS_MONITOR)
138 {
139 - pAdapter->net_dev->type = 801;
140 + pAdapter->net_dev->type = 802; // ARPHRD_IEEE80211_PRISM
141 RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x4e);
142 }
143 else