nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 diff -ur ../madwifi-cvs-20051025/Makefile.inc ./Makefile.inc
2 --- ../madwifi-cvs-20051025/Makefile.inc 2005-10-18 06:27:01.000000000 +0200
3 +++ ./Makefile.inc 2005-10-25 15:13:24.000000000 +0200
4 @@ -191,7 +191,7 @@
5 #
6 #ATH_RATE=$(shell find ath_rate/ -maxdepth 1 ! -name CVS ! -name ath_rate/ -type d)
7 ifeq ($(ATH_RATE),)
8 -ATH_RATE=ath_rate/sample
9 +ATH_RATE=ath_rate/onoe
10 endif
11  
12 INCS= -include ${obj}/${DEPTH}/include/compat.h -I${obj}/${DEPTH}/include
13 Only in .: Makefile.inc.orig
14 diff -ur ../madwifi-cvs-20051025/ath/if_ath.c ./ath/if_ath.c
15 --- ../madwifi-cvs-20051025/ath/if_ath.c 2005-10-19 06:27:51.000000000 +0200
16 +++ ./ath/if_ath.c 2005-10-25 15:13:24.000000000 +0200
17 @@ -1436,7 +1436,7 @@
18 rt = sc->sc_currates;
19 KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
20 flags = HAL_TXDESC_INTREQ | HAL_TXDESC_CLRDMASK;
21 - try0 = ATH_TXMAXTRY;
22 + try0 = (ic->ic_opmode == IEEE80211_M_MONITOR) ? 1 : ATH_TXMAXTRY;
23 dot11Rate = 0;
24 ctsrate = 0;
25 ctsduration = 0;
26 @@ -1501,6 +1501,13 @@
27 }
28 }
29  
30 + if (dot11Rate == 0 && ic->ic_opmode == IEEE80211_M_MONITOR) {
31 + int index = sc->sc_rixmap[ic->inject_rate / 500];
32 + if (index >= 0 && index < rt->rateCount) {
33 + txrate = rt->info[index].rateCode;
34 + }
35 + }
36 +
37 wh = (struct ieee80211_frame *) skb->data;
38 pktlen = skb->len + IEEE80211_CRC_LEN;
39 hdrlen = sizeof(struct ieee80211_frame);
40 Only in ./ath: if_ath.c.orig
41 diff -ur ../madwifi-cvs-20051025/ath/if_ath_pci.c ./ath/if_ath_pci.c
42 --- ../madwifi-cvs-20051025/ath/if_ath_pci.c 2005-07-11 15:23:53.000000000 +0200
43 +++ ./ath/if_ath_pci.c 2005-10-25 15:15:18.000000000 +0200
44 @@ -100,12 +100,16 @@
45 { 0xa727, 0x0013, PCI_ANY_ID, PCI_ANY_ID }, /* 3com */
46 { 0x10b7, 0x0013, PCI_ANY_ID, PCI_ANY_ID }, /* 3com 3CRDAG675 */
47 { 0x168c, 0x1014, PCI_ANY_ID, PCI_ANY_ID }, /* IBM minipci 5212 */
48 + { 0x168c, 0x101a, PCI_ANY_ID, PCI_ANY_ID }, /* some Griffin-Lite */
49 { 0x168c, 0x0015, PCI_ANY_ID, PCI_ANY_ID },
50 { 0x168c, 0x0016, PCI_ANY_ID, PCI_ANY_ID },
51 { 0x168c, 0x0017, PCI_ANY_ID, PCI_ANY_ID },
52 { 0x168c, 0x0018, PCI_ANY_ID, PCI_ANY_ID },
53 { 0x168c, 0x0019, PCI_ANY_ID, PCI_ANY_ID },
54 { 0x168c, 0x001a, PCI_ANY_ID, PCI_ANY_ID },
55 + { 0x168c, 0x001b, PCI_ANY_ID, PCI_ANY_ID },
56 + { 0x168c, 0x001c, PCI_ANY_ID, PCI_ANY_ID }, /* PCI Express 5424 */
57 + { 0x168c, 0x001d, PCI_ANY_ID, PCI_ANY_ID }, /* PCI Express ??? */
58 { 0 }
59 };
60  
61 diff -ur ../madwifi-cvs-20051025/net80211/ieee80211_crypto.c ./net80211/ieee80211_crypto.c
62 --- ../madwifi-cvs-20051025/net80211/ieee80211_crypto.c 2005-07-12 13:53:38.000000000 +0200
63 +++ ./net80211/ieee80211_crypto.c 2005-10-25 15:13:24.000000000 +0200
64 @@ -299,6 +299,10 @@
65  
66 oflags = key->wk_flags;
67 flags &= IEEE80211_KEY_COMMON;
68 +
69 + if (cipher == IEEE80211_CIPHER_WEP)
70 + flags |= IEEE80211_KEY_SWCRYPT;
71 +
72 /*
73 * If the hardware does not support the cipher then
74 * fallback to a host-based implementation.
75 diff -ur ../madwifi-cvs-20051025/net80211/ieee80211_var.h ./net80211/ieee80211_var.h
76 --- ../madwifi-cvs-20051025/net80211/ieee80211_var.h 2005-10-18 06:27:01.000000000 +0200
77 +++ ./net80211/ieee80211_var.h 2005-10-25 15:13:24.000000000 +0200
78 @@ -212,6 +212,8 @@
79 struct net_device *ic_wdsdev[IEEE80211_WDS_MAXNODES];
80 /* only wds traffic is allowed */
81 int ic_wdsonly;
82 +
83 + int inject_rate; /* injection rate in Monitor mode */
84 };
85  
86 #define IEEE80211_ADDR_EQ(a1,a2) (memcmp(a1,a2,IEEE80211_ADDR_LEN) == 0)
87 Only in ./net80211: ieee80211_var.h.orig
88 diff -ur ../madwifi-cvs-20051025/net80211/ieee80211_wireless.c ./net80211/ieee80211_wireless.c
89 --- ../madwifi-cvs-20051025/net80211/ieee80211_wireless.c 2005-10-18 06:27:01.000000000 +0200
90 +++ ./net80211/ieee80211_wireless.c 2005-10-25 15:13:24.000000000 +0200
91 @@ -476,6 +476,18 @@
92 struct ifreq ifr;
93 int rate;
94  
95 + if (ic->ic_opmode == IEEE80211_M_MONITOR) {
96 + rate = rrq->value / 1000;
97 + if (rate != 1000 && rate != 2000 && rate != 5500 &&
98 + rate != 11000 && rate != 6000 && rate != 9000 &&
99 + rate != 12000 && rate != 18000 && rate != 24000 &&
100 + rate != 36000 && rate != 48000 && rate != 54000 )
101 + return -EINVAL;
102 + printk(KERN_DEBUG "setting xmit rate to %d\n", rate);
103 + ic->inject_rate = rate;
104 + return 0;
105 + }
106 +
107 if (!ic->ic_media.ifm_cur)
108 return -EINVAL;
109 memset(&ifr, 0, sizeof(ifr));
110 @@ -502,6 +514,11 @@
111 struct ifmediareq imr;
112 int rate;
113  
114 + if (ic->ic_opmode == IEEE80211_M_MONITOR) {
115 + rrq->value = ic->inject_rate * 1000;
116 + return 0;
117 + }
118 +
119 memset(&imr, 0, sizeof(imr));
120 (*ic->ic_media.ifm_status)(ic->ic_dev, &imr);
121  
122 @@ -942,6 +959,7 @@
123 #if WIRELESS_EXT >= 15
124 case IW_MODE_MONITOR:
125 ifr.ifr_media |= IFM_IEEE80211_MONITOR;
126 + ic->inject_rate = 5500; /* default = 5.5M CCK */
127 break;
128 #endif
129 default: