<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

<author contact="mailto:zbrown@tumblerings.org">Zack Brown</author>

<issue num="297" date="19 Feb 2005 00:00:00 -0800" />

<mailbox-stats>
	<global-stats>
		<generated-at>Sun Feb 13 09:40:16 2005</generated-at>
		<first-message>2005/01/10 17:20:13</first-message>
		<last-message>2005/01/30 23:59:59</last-message>
		<totals>
			<n-messages>1869</n-messages>
			<total-size>11MB</total-size>
			<avg-size>6KB</avg-size>
			<n-writers>616</n-writers>
			<wrote-more-then-1-message>252</wrote-more-then-1-message>
			<n-lines>185775</n-lines>
			<header-size>97760</header-size>
			<n-user-agents>64</n-user-agents>
			<n-organisations>47</n-organisations>
			<n-toplevel-domains>44</n-toplevel-domains>
		</totals>
		<averages>
			<lines-per-message>99</lines-per-message>
			<lines-per-header>52</lines-per-header>
			<header-percent-of-message>52.62%</header-percent-of-message>
			<header-percent-of-total>42.28%</header-percent-of-total>
			<line-length>5950</line-length>
			<bits-per-byte>4.2458</bits-per-byte>
		</averages>
		<importance>
			<low>0.00%</low>
			<normal>0.16%</normal>
			<high>0.00%</high>
		</importance>

	</global-stats>
	<top-writers>
		<top-writer rank="1">
			<e-mail-addr>Adrian Bunk</e-mail-addr>
			<n-messages>91</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>623KB</total-size>
			<mostly-written-at>13:22</mostly-written-at>
		</top-writer>
		<top-writer rank="2">
			<e-mail-addr>Greg KH</e-mail-addr>
			<n-messages>47</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>159KB</total-size>
			<mostly-written-at>13:16</mostly-written-at>
		</top-writer>
		<top-writer rank="3">
			<e-mail-addr>Vojtech Pavlik</e-mail-addr>
			<n-messages>40</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>159KB</total-size>
			<mostly-written-at>17:04</mostly-written-at>
		</top-writer>
		<top-writer rank="4">
			<e-mail-addr>Matt Mackall</e-mail-addr>
			<n-messages>38</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>199KB</total-size>
			<mostly-written-at>12:46</mostly-written-at>
		</top-writer>
		<top-writer rank="5">
			<e-mail-addr>Evgeniy Polyakov</e-mail-addr>
			<n-messages>36</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>221KB</total-size>
			<mostly-written-at>16:17</mostly-written-at>
		</top-writer>
	</top-writers>
	<top-subjects>
		<top-subject rank="1">
			<subject>User space out of memory approach</subject>
			<n-messages>70</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>332KB</total-size>
			<mostly-written-at>12:18</mostly-written-at>
		</top-subject>
		<top-subject rank="2">
			<subject>2.6.11-rc2-mm1</subject>
			<n-messages>62</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>396KB</total-size>
			<mostly-written-at>14:36</mostly-written-at>
		</top-subject>
		<top-subject rank="3">
			<subject>Memory leak in 2.6.11-rc1?</subject>
			<n-messages>56</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>316KB</total-size>
			<mostly-written-at>11:02</mostly-written-at>
		</top-subject>
		<top-subject rank="4">
			<subject>thoughts on kernel security issues</subject>
			<n-messages>44</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>217KB</total-size>
			<mostly-written-at>14:40</mostly-written-at>
		</top-subject>
		<top-subject rank="5">
			<subject>2.6.11-rc2-mm1: SuperIO scx200 breakage</subject>
			<n-messages>41</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>195KB</total-size>
			<mostly-written-at>16:36</mostly-written-at>
		</top-subject>
	</top-subjects>
	<top-receivers>
		<top-receiver rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>333</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>3MB</total-size>
			<mostly-written-at>14:56</mostly-written-at>
		</top-receiver>
		<top-receiver rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>203</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>13:01</mostly-written-at>
		</top-receiver>
		<top-receiver rank="3">
			<e-mail-addr>Linus Torvalds</e-mail-addr>
			<n-messages>65</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>332KB</total-size>
			<mostly-written-at>14:20</mostly-written-at>
		</top-receiver>
		<top-receiver rank="4">
			<e-mail-addr>Adrian Bunk</e-mail-addr>
			<n-messages>50</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>186KB</total-size>
			<mostly-written-at>14:14</mostly-written-at>
		</top-receiver>
		<top-receiver rank="5">
			<e-mail-addr>Greg KH</e-mail-addr>
			<n-messages>40</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>294KB</total-size>
			<mostly-written-at>12:38</mostly-written-at>
		</top-receiver>
	</top-receivers>
	<top-ccers>
		<top-ccers rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>740</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>4MB</total-size>
			<mostly-written-at>13:32</mostly-written-at>
		</top-ccers>
		<top-ccers rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>219</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>14:44</mostly-written-at>
		</top-ccers>
		<top-ccers rank="3">
			<e-mail-addr>Greg KH</e-mail-addr>
			<n-messages>76</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>442KB</total-size>
			<mostly-written-at>14:48</mostly-written-at>
		</top-ccers>
		<top-ccers rank="4">
			<e-mail-addr>Christoph Hellwig</e-mail-addr>
			<n-messages>58</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>317KB</total-size>
			<mostly-written-at>13:45</mostly-written-at>
		</top-ccers>
		<top-ccers rank="5">
			<e-mail-addr>torvalds@osdl.org</e-mail-addr>
			<n-messages>58</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>263KB</total-size>
			<mostly-written-at>13:06</mostly-written-at>
		</top-ccers>
	</top-ccers>
	<top-level-domains>
		<tld rank="1">
			<name>com</name>
			<freq>660</freq>
		</tld>
		<tld rank="2">
			<name>org</name>
			<freq>315</freq>
		</tld>
		<tld rank="3">
			<name>de</name>
			<freq>296</freq>
		</tld>
		<tld rank="4">
			<name>net</name>
			<freq>116</freq>
		</tld>
		<tld rank="5">
			<name>uk</name>
			<freq>86</freq>
		</tld>
	</top-level-domains>
	<top-timezones>
		<tz rank="1">
			<name>+0100</name>
			<freq>670</freq>
		</tz>
		<tz rank="2">
			<name>-0800</name>
			<freq>310</freq>
		</tz>
		<tz rank="3">
			<name>-0500</name>
			<freq>278</freq>
		</tz>
		<tz rank="4">
			<name>+0000</name>
			<freq>198</freq>
		</tz>
		<tz rank="5">
			<name>-0600</name>
			<freq>122</freq>
		</tz>
	</top-timezones>
	<top-organisations>
		<org rank="1">
			<name>MIPT</name>
			<freq>36</freq>
			<bytes>221KB</bytes>
		</org>
		<org rank="2">
			<name>The Domain of Holomorphy</name>
			<freq>16</freq>
			<bytes>61KB</bytes>
		</org>
		<org rank="3">
			<name>Grupo PIE</name>
			<freq>10</freq>
			<bytes>60KB</bytes>
		</org>
		<org rank="4">
			<name>IBM</name>
			<freq>9</freq>
			<bytes>53KB</bytes>
		</org>
		<org rank="5">
			<name>SuSE Linux AG</name>
			<freq>8</freq>
			<bytes>50KB</bytes>
		</org>
	</top-organisations>
	<top-user-agents>
		<useragent rank="1">
			<name>Evolution</name>
			<freq>42</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="2">
			<name>Mutt/1.5.6+20040907i</name>
			<freq>40</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="3">
			<name>Mozilla</name>
			<freq>39</freq>
			<bytes>842KB</bytes>
		</useragent>
		<useragent rank="4">
			<name>Mozilla/5.0</name>
			<freq>29</freq>
			<bytes>874KB</bytes>
		</useragent>
		<useragent rank="5">
			<name>Mutt/1.4.1i</name>
			<freq>28</freq>
			<bytes>633KB</bytes>
		</useragent>
	</top-user-agents>
	<messages-per-day>
		<Sunday><msgs>164</msgs><bytes>886KB</bytes></Sunday>
		<Monday><msgs>377</msgs><bytes>3MB</bytes></Monday>
		<Tuesday><msgs>349</msgs><bytes>3MB</bytes></Tuesday>
		<Wednesday><msgs>252</msgs><bytes>2MB</bytes></Wednesday>
		<Thursday><msgs>257</msgs><bytes>2MB</bytes></Thursday>
		<Friday><msgs>285</msgs><bytes>2MB</bytes></Friday>
		<Saturday><msgs>173</msgs><bytes>808KB</bytes></Saturday>
	</messages-per-day>
	<messages-per-month>
		<Jan><msgs>1526</msgs><bytes>9MB</bytes></Jan>
		<Feb><msgs>328</msgs><bytes>3MB</bytes></Feb>
		<Mar><msgs>0</msgs><bytes>0</bytes></Mar>
		<Apr><msgs>0</msgs><bytes>0</bytes></Apr>
		<May><msgs>0</msgs><bytes>0</bytes></May>
		<Jun><msgs>0</msgs><bytes>0</bytes></Jun>
		<Jul><msgs>0</msgs><bytes>0</bytes></Jul>
		<Aug><msgs>3</msgs><bytes>29KB</bytes></Aug>
		<Sep><msgs>0</msgs><bytes>0</bytes></Sep>
		<Oct><msgs>0</msgs><bytes>0</bytes></Oct>
		<Nov><msgs>0</msgs><bytes>0</bytes></Nov>
		<Dec><msgs>0</msgs><bytes>0</bytes></Dec>
	</messages-per-month>
	<messages-per-day-of-month>
		<day-1><msgs>206</msgs><bytes>2MB</bytes></day-1>
		<day-2><msgs>110</msgs><bytes>568KB</bytes></day-2>
		<day-3><msgs>12</msgs><bytes>63KB</bytes></day-3>
		<day-4><msgs>0</msgs><bytes>0</bytes></day-4>
		<day-5><msgs>0</msgs><bytes>0</bytes></day-5>
		<day-6><msgs>0</msgs><bytes>0</bytes></day-6>
		<day-7><msgs>0</msgs><bytes>0</bytes></day-7>
		<day-8><msgs>0</msgs><bytes>0</bytes></day-8>
		<day-9><msgs>0</msgs><bytes>0</bytes></day-9>
		<day-10><msgs>7</msgs><bytes>52KB</bytes></day-10>
		<day-11><msgs>32</msgs><bytes>139KB</bytes></day-11>
		<day-12><msgs>3</msgs><bytes>14KB</bytes></day-12>
		<day-13><msgs>1</msgs><bytes>4KB</bytes></day-13>
		<day-14><msgs>0</msgs><bytes>0</bytes></day-14>
		<day-15><msgs>0</msgs><bytes>0</bytes></day-15>
		<day-16><msgs>3</msgs><bytes>13KB</bytes></day-16>
		<day-17><msgs>2</msgs><bytes>23KB</bytes></day-17>
		<day-18><msgs>4</msgs><bytes>15KB</bytes></day-18>
		<day-19><msgs>1</msgs><bytes>5KB</bytes></day-19>
		<day-20><msgs>3</msgs><bytes>19KB</bytes></day-20>
		<day-21><msgs>33</msgs><bytes>225KB</bytes></day-21>
		<day-22><msgs>21</msgs><bytes>100KB</bytes></day-22>
		<day-23><msgs>24</msgs><bytes>111KB</bytes></day-23>
		<day-24><msgs>93</msgs><bytes>505KB</bytes></day-24>
		<day-25><msgs>107</msgs><bytes>549KB</bytes></day-25>
		<day-26><msgs>138</msgs><bytes>747KB</bytes></day-26>
		<day-27><msgs>241</msgs><bytes>2MB</bytes></day-27>
		<day-28><msgs>252</msgs><bytes>2MB</bytes></day-28>
		<day-29><msgs>152</msgs><bytes>708KB</bytes></day-29>
		<day-30><msgs>137</msgs><bytes>763KB</bytes></day-30>
		<day-31><msgs>275</msgs><bytes>2MB</bytes></day-31>
	</messages-per-day-of-month>
	<messages-per-hour>
		<hour-1><msgs>50</msgs><bytes>331KB</bytes></hour-1>
		<hour-2><msgs>22</msgs><bytes>264KB</bytes></hour-2>
		<hour-3><msgs>20</msgs><bytes>145KB</bytes></hour-3>
		<hour-4><msgs>14</msgs><bytes>79KB</bytes></hour-4>
		<hour-5><msgs>11</msgs><bytes>47KB</bytes></hour-5>
		<hour-6><msgs>14</msgs><bytes>129KB</bytes></hour-6>
		<hour-7><msgs>29</msgs><bytes>108KB</bytes></hour-7>
		<hour-8><msgs>52</msgs><bytes>265KB</bytes></hour-8>
		<hour-9><msgs>99</msgs><bytes>636KB</bytes></hour-9>
		<hour-10><msgs>100</msgs><bytes>508KB</bytes></hour-10>
		<hour-11><msgs>109</msgs><bytes>605KB</bytes></hour-11>
		<hour-12><msgs>112</msgs><bytes>660KB</bytes></hour-12>
		<hour-13><msgs>117</msgs><bytes>699KB</bytes></hour-13>
		<hour-14><msgs>134</msgs><bytes>632KB</bytes></hour-14>
		<hour-15><msgs>133</msgs><bytes>694KB</bytes></hour-15>
		<hour-16><msgs>105</msgs><bytes>654KB</bytes></hour-16>
		<hour-17><msgs>111</msgs><bytes>832KB</bytes></hour-17>
		<hour-18><msgs>125</msgs><bytes>639KB</bytes></hour-18>
		<hour-19><msgs>86</msgs><bytes>489KB</bytes></hour-19>
		<hour-20><msgs>97</msgs><bytes>425KB</bytes></hour-20>
		<hour-21><msgs>74</msgs><bytes>390KB</bytes></hour-21>
		<hour-22><msgs>66</msgs><bytes>333KB</bytes></hour-22>
		<hour-23><msgs>84</msgs><bytes>387KB</bytes></hour-23>
	</messages-per-hour>
	<created-with><name>mboxstats</name><version>2.2</version><developer>folkert@vanheusden.com</developer><url>http://www.vanheusden.com/mboxstats/</url></created-with>
</mailbox-stats>

<section
  title="User-Space OOM Killer"
  subject="User space out of memory approach"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/bbfcb98fe9c6c695"
  posts="70"
  startdate="10 Jan 2005 13:43:23 -0800"
  enddate="28 Jan 2005 07:29:28 -0800"
>
<topic>OOM Killer</topic>

<p>Mauricio Lin said, <quote who="Mauricio Lin">We have done a comparison
between the kernel version and user space version and apparently the behavior
is similar. You can also get this patch and module to test it and compare
with kernel OOM Killer. Here goes a patch and a module that moves the
kernel space OOM Killer algorithm to user space. Let us know about your
ideas.</quote> Marcelo Tosatti found the idea interesting, though he had
no specific comments on the code itself. He did say, <quote who="Marcelo
Tosatti">The userspace OOM killer is dangerous though. You have to guarantee
that allocations will NOT happen until the OOM killer is executed and the
killed process is dead and has its pages freed - allocations under OOM
can cause deadlocks.  "OOM-killer-in-userspace" is unreliable, not sure if
its worth the effort making it reliable (mlock it, flagged as PF_MEMALLOC,
etc).</quote> But he replied to himself, <quote who="Marcelo Tosatti">Actually
its only unreliable if its called from OOM time.  The case here is you have
a daemon which periodically writes to /proc/oom?</quote> Mauricio replied,
<quote who="Mauricio Lin">Yes, let me explain the idea.  When the memory
consumption reaches a percentage of usage, as 98% or something like that,
we call this as red zone. So when red zone is reached, the ranking algorithm
is started to select which processes could be killed whe out of memory
happens. If the memory comsumption is less than this percentage (not in red
zone), the ranking algorithm is not executed. So we have a loop the check the
memory comsumption all the time and if the red zone is reached, the ranking
algorithm is started before the system get the out of memory state.</quote></p>

<p>Edjard Souza Mota also pointed out that this patch only moved the OOM
killer's ranking algorithm to user-space, not the killer itself. He said,
<quote who="Edjard Souza Mota">In that sense the approach is different and
might be worth testing, mainly for cases where we want to allow better
policies of ranking. For example, an embedded device with few resources
and important different running applications: whic one is the best? To my
understanding the current ranking policy does not necessarily chooses the
best one to be killed.</quote> This made more sense to Marcelo, and he felt
the patch was more worth considering in this case. Folks continued discussing
the technical details for awhile, with no real consensus on what the best
solution would be.</p>

</section>

<section
  title="Linux 2.6.11-rc2 Released"
  subject="Linux 2.6.11-rc2"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/673988e868ece90a"
  posts="26"
  startdate="21 Jan 2005 18:13:55 -0800"
  enddate="27 Jan 2005 17:33:10 -0800"
>
<topic>Kernel Release Announcement</topic>

<mention>Udo A. Steinberg</mention>

<p>Linus Torvalds announced Linux 2.6.11-rc2, saying, <quote who="Linus
Torvalds">Ok, trying to calm things down again for a 2.6.11 release.  Tons of
small cleanups, annotations and fixes here. Driver updates, cpufreq, ppc,
parisc, arm.. Pls check that I got it all.</quote> Udo A.  Steinberg posted
a netfilter compile-time bug, which Martin Josefsson diagnosed and fixed;
Udo urged Linus to accept the patch, but Linus replied, <quote who="Linus
Torvalds">Please go through Davem, he's quite responsive, but prefers things
like this to be sent to the netdev mailing list too if it hasn't been there
already (netdev@oss.sgi.com).</quote></p>

<p>Elsewhere, Sytse Wielinga said, <quote who="Sytse Wielinga">Linus, could
you please put skb_copy_datagram back in place? It's not used anymore in
the kernel, but the vmnet module (in vmware) still uses this interface to
skb_copy_datagram_iovec.</quote> He posted a patch, but Christoph Hellwig
replied, <quote who="Christoph Hellwig">Just fix vmware.  Or upgrade to a
fixed version</quote>.</p>

</section>

<section
  title="Linux 2.6.11-rc2-mm1 Released"
  subject="2.6.11-rc2-mm1"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/a2c5d4bc66b83da8"
  posts="132"
  startdate="24 Jan 2005 02:15:16 -0800"
  enddate="27 Jan 2005 09:33:10 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>Version Control</topic>

<p>Andrew Morton announced Linux 2.6.11-rc2-mm1, saying:</p>

<quote who="Andrew Morton">

<a href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc2-mm1/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc2-mm1/</a>

<p>

<ul>

<li>Lots of updates and fixes all over the place.</li>

<li>

<p>On my test box there is no flashing cursor on the vga console.  Known bug,
please don't report it.</p>

<p>Binary searching shows that the bug was introduced by
cleanup-vc-array-access.patch but that patch is, unfortunately, huge.</p>

</li>

</ul>

</p>

</quote>

<p>Brice Goglin reported:</p>

<quote who="Brice Goglin">

<p>X does not work anymore when using DRI on my Compaq Evo N600c (Radeon
Mobility M6 LY).  My XFree 4.3 (from Debian testing) with DRI uses drm and
radeon kernel modules.</p>

<p>Instead of the usual gdm window, I get a black or noisy screen (remaining
image parts of last working session). The mouse pointer works. Sysrq works. But
Caps-lock doesn't work.  The machine pings but I can't ssh.</p>

<p>I don't know exactly what's happening. I don't see anything interesting
in dmesg.  Removing DRI from Xfree config (even if drm/radeon modules are
loaded) makes X work again.  Linus' 2.6.11-rc2 works fine.</p>

</quote>

<p>Florian Bohrer had the same problem, with the NVidia driver. He said it
<quote who="Florian Bohrer">seems that AGP is totally brocken.</quote> Close
by, Dave Jones took responsibility for the problem, and asked folks to drop
the agpgart-bk update for the moment. A couple of hours he posted a patch,
but he added that there were still problems remaining. Brice gave it a try,
and reported 100% success. He offered to help with any further tests Dave
wanted; and Dave said, <quote who="Dave Jones">It's quite remarkable that
it works at all.</quote></p>

</section>

<section
  title="Status Of 802.11x Support"
  subject="Where Linux 802.11x support needs work"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/76127e16138c5d61"
  posts="3"
  startdate="25 Jan 2005 13:47:50 -0800"
  enddate="28 Jan 2005 09:00:03 -0800"
>
<topic>Bug Tracking</topic>
<topic>Ioctls</topic>

<mention>Dave Jones</mention>

<p>Dan Williams said:</p>

<quote who="Dan Williams">

<p>This list of stuff that should get fixed in Linux wireless grew out
of my attempt to put a GUI on top of Linux wireless with NetworkManager (<a
href="http://people.redhat.com/dcbw/NetworkManager">http://people.redhat.com/dcbw/NetworkManager</a>).
This isn't, of course, a demand or anything, and I've been personally
slowly fixing stuff up as I come to it (orinoco merge, fixing linux-wlan-ng,
small kernel wireless driver patches), but I don't think anyone has posted
a comprehensive list of where Linux wireless currently falls a bit short.</p>

<p>I think the biggest issue here is that the Wireless Extensions API has
stagnated a bit, and driver writers have gone off and done their own thing
(for example, WPA support) because the WEAPI hasn't shown leadership in
this area.  That's fixable, and at this point doesn't seem to be a large
amount of work since the main offender here is only WPA.</p>

<p>Second, there are, for historical reasons most likely, areas where the
WEAPI has multiple methods of encoding data to/from user space.  For example,
WE Quality values and WE Frequency/Channel values.  Quality is either signed
or unsigned 8-bit number, which (I believe) is either a raw dBm/rssi value or
a percentage value, respectively.  Frequency uses exponent &amp; mantissa
notation, OR a channel # stuffed into the exponent/mantissa structure.
Things like that.</p>

<p>Comments appreciated, and hopefully this may spark some wider effort to
get a few things fixed.</p>

<p>So without further ado, here's the list:</p>

<p>

<ul>

<li>

<p>Quality values vary wildly or are absent</p>

<p>

<ol>

<li>atmel doesn't return any quality data from scanned APs</li>
<li>ipw_2100 doesn't return _any_ quality data (as of v1.02)</li>
<li>

<p>Different quality methods for almost every driver</p>

<p>

  <ul>

  <li>Prism54 does a quality as a percentage</li>
  <li>airo mixes use of absolute and relative values in dBm</li>
  <li>Average and max quality levels for almost all drivers are
  artificial and don't come from the the card in any way</li>

  </ul>

</p>

</li>

</ol>

</p>

<p>Work Item: normalize quality values.  Wireless extensions supports
two different types of quality data, either percentage or dBm.  PICK ONE.
I would recommend reporting only a Percentage value to user space with the
SIOCGIWSTATS call, and having separate ioctl() calls for getting specific
dBm/noise values if user-space applications _and_ the driver supports it.
We cannot have user-space applications guessing which of 3 different quality
algorithms the driver is reporting.</p>

</li>

<li>

<p>Frequency values vary wildly from iw_get_range</p>

<p>
<ol>
<li>prism54 uses completely different exponent values than airo</li>
<li>airo, atmel, orinoco are the same</li>
</ol>
</p>

<p>Work Item: Normalize frequency values between wireless cards.  Use actual
frequencies in MHz rather than using Exponent &amp; Mantissa format as now.
Force user-space applications to convert channels-&gt;frequencies, based
on what frequencies the driver says it supports. Or, fix drivers to report
Frequency&lt;-&gt;Channel pairs when they report their supported frequencies,
but the point again is to PICK ONE and make all drivers do that.  Remove the
guessing-game from user-space and pick one API for drivers to use.</p>

</li>

<li>

<p>airo/prism54 seem to have problems with ip6 and cause panic</p>

<p>

<ol>

<li> Some drivers don't NULL out their data after they are done with it,
causing kernel panics later on down the line.  See Red Hat bugzilla #135432
for details, Dave Jones has a patch for the airo driver that seems to work
better, which is in Red Hat 2.6.10 kernels.</li>

</ol>

</p>

<p>Work Item: Make sure all drivers dispose of and NULL out their data
when they close, or fix kernel areas that might depend on that stale data.
Or whatever the problem is.</p>

</li>

<li>

<p>Not all drivers have correct netlink support, if they even have it</p>

<p>

<ol>

<li>orinoco is too twitchy, sends too many events (shouldn't send them
during a scan for example)</li>

<li>atmel, airo, and others don't seem to have any netlink support</li>

</ol>

</p>

<p>Work Item: fix all drivers to ensure that when the card successfully
associates with an access point, that it signals the kernel that its
network link is "up".</p>

</li>

<li>

<p>Not all drivers support wirless scanning</p>

<p>

<ol>

<li>orinoco driver mainly, support is upstream and is being slowly
merged into the kernel driver</li>

</ol>

</p>

<p>Work Item: Speed up merge of upstream Orinoco into kernel orinoco</p>

</li>

<li>

<p>Firmware issues</p>

<p>   

<ol>   

<li>Cisco aironet firmware upload is quite inconsistent, fails with 5.21
for example.  Firmware &lt;= 5.02 seems to be required for using WEP with
most access points.  Latest Cisco-provided driver is quite different than
latest in-kernel driver</li>

</ol>

</p>

<p>Work Item: Figure out licensing issues between Cisco-provided driver for
2.4 kernel (which is MPL) and in-kernel airo driver (which is GPL).
Then, figure out what changes were made to the Cisco-provided driver to
support firmware up to 5.30.17, and make those changes in the in-kernel
airo driver.</p>

</li>

<li>

<p>Ethtool support for all drivers</p>

<p>
<ol>
<li>viro has done a lot of them, not sure if this is complete.</li>
</ol>
</p>

</li>

<li>

<p>Ad-Hoc mode support is quite flaky or absent from most drivers</p>

<p>

<ol>

<li>prism54 "mgmt tx queue full" errors on otherwise-working cards</li>

<li>madwifi resets bitrate to 0 when switching to ad-hoc mode</li>

</ol>

</p>

<p>Work Item: Fix drivers to support Ad-Hoc mode, attempt to get specs on
their hardware &amp; registers from manufacturers if we don't have that
information yet for all "modern" cards.</p>

</li>

<li>

<p>WPA support is lacking or just in-progress, needs much help</p>

<p>   

<ol>   

<li>The point here is that Wireless Extensions API has severely lagged
behind the capabilities of current chipsets.  There should be support _in_
Wireless Extensions for WPA and its associated technologies, instead of what
all the drivers do now, which is separate, non-standard, private ioctl()
calls for WPA settings.</li>

</ol>

</p>

<p>Work Item: standardize on an interface for WPA and its associated
technologies, and implement that interface in Wireless Extensions API.
Fix all drivers to use that API rather than private ioctl() calls.  Some
drivers that support WPA:  atmel, madwifi, prism54, ipw2200.  It would
also be beneficial in this effort to support the calls that 802.1x
stacks need (like wpa_supplicant and Open 802.1x) so that they don't
have to patch the drivers (Open 802.1x) or create special per-driver
hook modules (wpa_supplicant) to be able to capture the necessary
authentication packets or set up the card's WPA settings.</p>

</li>

<li>

<p>Drivers deal with hidden ESSIDs differently</p>

<p>   

<ol>

<li>ipw2x00 traps " " and runs of \0 and changes it to "&lt;hidden&gt;"
in the driver, while other drivers just pass the blank string through</li>

</ol>

</p>

<p>Work Item: Standardize all drivers to simply pass an empty string
through to user-space when the base station does not broadcast its ESSID.
Drivers should _not_ be clever about this.</p>

</li>

</ul>

</p>

<p>Levels of Importance (my opinion):</p>

<p>

<ol>

<li>All drivers _MUST_ support wireless scanning (*cough* orinoco *cough*)</li>

<li>WPA support needs to be standardized in Wireless Extensions</li>

<li>Consistent (and present) quality data among drivers, both for currently
connected AP and for scanned APs</li>

<li>rtnetlink link notification for all drivers when they associate with an AP</li>

<li>Ad-Hoc mode support</li>

<li>Ethtool support</li>

<li>Cisco firmware issues</li>

</ol>

</p>

</quote>

</section>

<section
  title="Removing eepro100, xircom_tulip_cb, And iph5526 Drivers"
  subject="[ANN] removal of certain net drivers coming soon: eepro100, xircom_tulip_cb, iph5526"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/d03494a39cb4464c"
  posts="16"
  startdate="27 Jan 2005 12:45:40 -0800"
  enddate="01 Feb 2005 11:28:21 -0800"
>
<topic>Networking</topic>

<mention>Christoph Hellwig</mention>
<mention>Greg KH</mention>

<p>Jeff Garzik said:</p>

<quote who="Jeff Garzik">

<p>Though this has already been mentioned, I thought I would send out a
reminder.  The following net drivers are slated for removal "soon", in
the next kernel version or so:</p>

<p>

<ol>

<li>

<p>iphase (iph5526 a.k.a. drivers/net/fc/*)</p>

<p>Been broken since 2.3 or 2.4.  Only janitors have kept it compiling.</p>

</li>

<li>

<p>xircom_tulip_cb</p>

<p>Unmaintained, and does not work for all xircom 32bit cards.  xircom_cb,
on the other hand, works for ALL xircom 32bit cards.</p>

</li>

<li>

<p>eepro100</p>

<p>Unmaintained; users should use e100.</p>

<p>When I last mentioned eepro100 was going away, I got a few private
emails saying complaining about issues not yet taken care of in e100.
eepro100 will not be removed until these issues are resolved.</p>

</li>

</ol>

</p>

</quote>

<p>On iphase, Christoph Hellwig pointed out that not even janitors kept it
compiling, and in fact that it had been unable compile for over two years.</p>

<p>Greg KH suggested adding all of these projects to the list of deprecated
drivers in the Documentation/ directory.</p>

</section>

<section
  title="usbutils Version 0.70 Released"
  subject="ANNOUNCE:  usbutils-0.70"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/9df9a43dfbdeadb9"
  startdate="30 Jan 2005 17:10:09 -0800"
>
<topic>FS: devfs</topic>
<topic>Hot-Plugging</topic>
<topic>Modems</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>David Brownell said:</p>

<quote who="David Brownell">

<h3>WHAT</h3>

<p>    The "usbutils" package is most useful for the "lsusb" utility, which
    can provide considerable detail about the USB devices connected to
    your Linux system.  (It's like "pciutils" is for PCI.)  When making
    bug reports, or otherwise troubleshooting, "lsusb -v" output is very
    useful; often more so than /proc/bus/usb/devices output.</p>

<p>    For folk using Linux 2.4 kernels, this also provides "usbmodules"
    which can help with the "coldplug" problem:  setting up devices that
    are connected before the OS is capable of running all of the necessary
    "hotplug" programs.</p>

<h3>WHY</h3>

<p>    The last official release was version 0.11 in August 2002.  This version
    should incorporate almost all of the bug fixes and patches that have been
    floating around since then.  If you're using patches that haven't been
    merged, please resolve that.</p>

<p>    This "lsusb" version is aware of USB 2.0 features; the 0.11 version only
    understood USB 1.1 functionality.</p>

<p>    This version understands many more types of descriptors; it previously
    understood primarily audio and HID descriptors.</p>

<p>

<ul>

<li>Communications Device Class (CDC) descriptors, for USB Modems, some
Ethernet style links (such as cable modems), and many PDAs.</li>

<li>Hub descriptor.  Not all hubs are equal, and previously only kernel
CONFIG_USB_DEBUG messages showed how they differ.  Older versions of "lsusb"
only showed descriptors for some hubs; this shows them for all hubs, and
also current status of each port.</li>

<li>Device qualifier.  If a device supports high speed USB, it has one of
these; otherwise, it doesn't.</li>

<li>Chip Card and Smart Card interfacing devices.</li>

<li>USB On-The-Go (OTG) devices.  Starting to appear; some run Linux.</li>

<li>USB Debug devices.  Currently exotic.</li>

<li>Unrecognized descriptors are dumped in hex; some previous versions
discarded them, which made troubleshooting painful.</li>

</ul>

</p>

<p>    Note that if the kernel HID driver is bound to a device, lsusb
    can't show its descriptors.  You can workaround this by removing the
    "usbhid" module before running lsusb against that device.</p>

<p>    This version uses the system's version of "libusb", rather than its
    own private copy.  That involved some API changes.  It also accounted
    for the only loss of functionality:  lsusb doesn't currently list
    the language strings supported by the device.  Many devices don't
    seem to bother with anything beyond English.</p>

<h3>WHERE</h3>

<p>    Download from one of the SourceForge mirrors for the Linux-USB
project:</p>

<p>    <a href="http://sourceforge.net/project/showfiles.php?group_id=3581&amp;package_id=142529">http://sourceforge.net/project/showfiles.php?group_id=3581&amp;package_id=142529</a></p>

<p>    Also, current source is in CVS for the Linux-USB project at SourceForge.
    If you have any patches (support for CJKV strings?), prepare them against
    CVS and post them to the linux-usb-devel list.</p>

<h3>HOW</h3>

<p>    It uses GNU autoconf, so configure and build it:</p>

<pre>        $ tar xf usbutils-0.70.tar.gz
        $ cd usbutils-0.70
        $ ./configure                   &lt;-- see below for options
        $ make
        $ ./update-usbids.sh            &lt;-- optional
        $ su -c "make install"
        $</pre>

<p>    Significant options to "configure" include:</p>

<p>        --prefix=/              To replace the normal /sbin version of
                                lsusb, rather than /usr/local.</p>

<p>        --enable-usbmodules     If you're using a Linux 2.4 based system
                                or otherwise not using "udev" for coldplug.</p>

</quote>

</section>

</kc>

