Date: Sat, 2 Apr 2011 15:52:04 -0400 From: Adam Stylinski <kungfujesus06@gmail.com> To: Bernhard Schmidt <bschmidt@freebsd.org> Cc: freebsd-net@freebsd.org Subject: Re: net80211 and interface requests Message-ID: <20110402195204.GA6629@zephyr.adamsnet> In-Reply-To: <201103311735.40634.bschmidt@freebsd.org> References: <AANLkTimQJBJwNaa3VW1HVONAx2zrBu2Un2=S7PVJ5xLS@mail.gmail.com> <201103311507.16263.bschmidt@freebsd.org> <20110331151421.GA3263@ossumpossum.geop.uc.edu> <201103311735.40634.bschmidt@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--bg08WKrSYDhXBjb5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Mar 31, 2011 at 05:35:40PM +0200, Bernhard Schmidt wrote: > On Thursday, March 31, 2011 17:14:21 Adam Stylinski wrote: > > On Thu, Mar 31, 2011 at 03:07:15PM +0200, Bernhard Schmidt wrote: > > > On Thursday, March 31, 2011 14:20:33 Adam Stylinski wrote: > > > > On Thu, Mar 31, 2011 at 09:02:45AM +0200, Bernhard Schmidt wrote: > > > > > On Wednesday, March 30, 2011 23:17:53 Adam Stylinski wrote: > > > > > > Hello, > > > > > >=20 > > > > > > This list has helped me before so I'll email again with the hop= es that > > > > > > somebody has an answer. All is working well with my project, h= owever for > > > > > > the life of me I cannot get the interface to inject the raw fra= mes faster > > > > > > than 11mbps. I'm following the example given in > > > > > > /usr/src/tools/tools/net80211/wlaninject.c, and manually specif= ying > > > > > > parameters such as ucastrate, mcastrate, and mgmtrate within if= config. I'm > > > > > > putting the card into pureg mode, and yet I still can't inject = any faster. > > > > > > I've even gone so far as to specify an ieee802211_txparam stru= ct giving > > > > > > values of 255 both mcast and ucast rates within the struct (and= of course > > > > > > anding them by 0xff). I then used the ioctl call to set the fl= ags within > > > > > > the interface request. Any help would be greatly appreciated. > > > > >=20 > > > > > You've set the ibp_rate0 parameter right? This one is in half-mbp= s, so > > > > > a value of 108 should give you 54m. The only thing I can think of= right > > > > > now is that the device (or channel) is actually configured for 11= b not > > > > > 11g mode. Can we rule that out? Which device are you using? > > > > >=20 > > > > > > I am doing nanosleeps in between transmissions as if I don't th= e bpf clone > > > > > > can't inject due to the buffer being too full. There's probabl= y a better > > > > > > way of doing this, but I doubt the nanosleeps are the issue (af= terall, I get > > > > > > almost exactly 11mbps). I should probably note I'm not doing a= ny ACKs, this > > > > > > is pure transmits. > > > > > >=20 > > > > > > If anybody cares enough to look at my unpolished code to get a = better idea, > > > > > > look here: > > > > > >=20 > > > > > > http://projhinternet.svn.sourceforge.net/ > > > > > >=20 > > > > > > The idea is to allow unidirectional traffic so that with an FCC= amateur > > > > > > license (yes I know I'm not currently broadcasting the call sig= n as of yet) > > > > > > you can broadcast unencrypted transmissions for miles (with a l= inear > > > > > > amplifier spec'd to 2.4ghz). With the license FCC part15 no lo= nger applies > > > > > > and you can operate just like in any other amateur band. > > > > > > _______________________________________________ > > > > > > freebsd-net@freebsd.org mailing list > > > > > > http://lists.freebsd.org/mailman/listinfo/freebsd-net > > > > > > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freeb= sd.org" > > > > > >=20 > > > > >=20 > > > >=20 > > > > I'm using an atheros AR2413 chipset, running in pure g mode, with a= lso the card put into "mode 11g" and ucast, mcast, and mgmt rates set to 54= =2E I think the parameter for ibp_rate0 is just for setting it in the head= er (but I could be wrong). Regardless I am doing this, let me give you the= exact source files I'm doing this in. > > >=20 > > > Well, the ath_rate_* modules afaik do not honor the fixed rate > > > settings. At least I've heard something about those being broken. The > > > ibp_rate0 parameter set to 108 seems to be correct though. > > >=20 > > > No clue why that doesn't work, you may have to debug ath_tx_findrix(). > > > Adding a printf of the passed over rate and ridx should shed some lig= ht > > > on this I guess. > > >=20 > > > > Line 38 in this file: > > > > http://projhinternet.svn.sourceforge.net/viewvc/projhinternet/src/c= allbacks.c?revision=3D69&view=3Dmarkup=20 > > > >=20 > > > > And the setup_if function in this: > > > > http://projhinternet.svn.sourceforge.net/viewvc/projhinternet/src/l= ibinject.c?revision=3D69&view=3Dmarkup > > > >=20 > > >=20 > >=20 > > It turns out strange coincidences can happen. I decided to busy loop, = thinking maybe it was my nanosleep call. And what do you know, 52Mb/sec. = Is there some sort of call I can use to probe the fd to see if the buffer h= as been sent yet? =20 >=20 > Honestly, no clue. The bpf transmit path is a bunch of ugly hacks.. > What you can try though is to enable various debug options for > net80211 and ath to figure out what's going on, especially the bits > for xmit. >=20 > On a unrelated side note, how is the ath/wlan0 interface configured? > I mean, is it in sta mode or ahdemo? I guess most tests have been done > in ahdemo mode. Also I'm sure that all frames are simply discarded if > the device is currently scanning. >=20 > --=20 > Bernhard After looking through what BPF has to offer, the thought has occurred to me= that the example program provided under the src tree do not make proper us= e of bpf semantics. Wouldn't using the bpf_tap() and related helper functi= ons actually inject on the interface in a sleeping manner (as in wait for t= he interface to finish transmitting and wait for the device specific interr= upt)? Opening a Datagram socket on the interface seems a bit hackish, and = it doesn't seem to obey synchronous write semantics (BPF constantly returns= -1 if the device is busy for whatever reason). =20 Am I wrong? --bg08WKrSYDhXBjb5 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iQIcBAEBAgAGBQJNl35jAAoJED6sRHE6TvmnXC0P/2SrczA0I84p8CDQvZ3Z4dqZ /ivIFUqL8CRSVaLr3fqiLDccpPbkdT3wAxxGtG/gaLPGBTxpsImOU1eFwZKqT4eh yqazJflg6F3DeQLrk+h55uuMjgyDTq0OHzCJavszw5quN1GwOUbzpCvWW9cvf58U LdKzUtw89zlJr7gmdjcmgsw38b+o0mlupoTFTGqapYBTeUPH324JE/gb3PY6gxIu nU/NjVrCbwinw09/wWO3bEm37HNxUvSrpKHBkZedi/y8lElefdiaKe/65t3GiEPy 3kyLmpl/iF7/xbXsqnr2IvmYh8XMV9yZviShP1GMBQOBxdwxeEy2SETzHdMouJHV MzVrQDtefNdqDzG8hs0ZC3mTNv8WPGqyTiW4Ss/bc14vF1Cn1ks6Yt4IygyOreMK iQZUtU1jpbFiDMe+MUiX8NW2f/cdbIAeyPC59kzm/ZhTUM3FIYFaOBsKPUfsNY5j +f3VF6N6LD7A0ZoXWX7R6bjxosmFBX7InCDRjvxKcfyIvroESWtO/Kw7fCSEpaRq 1gh7UxUKVIf2iYZiZ4URCU1B9un9oQ/6/VHY721osz0sJLTkgNa+RPKUhP66lssv foX3u0l/dys9ykdvnb4+tftmARo1nWOGRo+KbVdAeUXRAIqNqMW9Ea83dziVfbHU a3OxQWElVni+tPu+FsJ5 =aIzG -----END PGP SIGNATURE----- --bg08WKrSYDhXBjb5--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110402195204.GA6629>