Skip to contentSkip to conversation

Marvell Libertas 8388 802.11b/g USB driver

PATCH In review Marcelo Tosatti 4 participants 6 messages Dec 15, 2006 – Feb 7, 2007 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Marvell Libertas 8388 802.11b/g USB driver

Hi,

Marvell released a GPL driver for their 8388 wireless chip for USB interface back in April.

The 8388 is the device being used by the OLPC laptop.

We have been working on cleaning it up for mainline inclusion. I think the moment for wider review has arrived.

Since the diff is pretty large (700K) I've put it on the web at:
http://dev.laptop.org/~marcelo/libertas-8388-15122006.patch

And its GIT tree resides at:
http://git.infradead.org/?p=libertas-2.6.git;a=log

Comments are welcome

#1 lore raw
Quoted 29 lines · Marcelo Tosatti
include/net/ieee80211_radiotap.h +17 -0
@@ -168,6 +168,23 @@ struct ieee80211_radiotap_header {
 *      Unitless indication of the Rx/Tx antenna for this packet.
 *      The first antenna is antenna 0.
 *
+ * IEEE80211_RADIOTAP_RX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of received frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_TX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of transmitted frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_RTS_RETRIES       u_int8_t        data
+ *
+ *     Number of rts retries a transmitted frame used.
+ *
+ * IEEE80211_RADIOTAP_DATA_RETRIES      u_int8_t        data
+ *
+ *     Number of unicast retries a transmitted frame used.
+ *
+ *
 * IEEE80211_RADIOTAP_FCS              u32       data
 *
 *     FCS from frame in network byte order.
@@ -187,7 +204,11 @@ enum ieee80211_radiotap_type {
       IEEE80211_RADIOTAP_ANTENNA = 11,
       IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,

include/net/ieee80211_radiotap.h enum ieee80211_radiotap_type { · line 214

Quoted 10 lines
include/net/ieee80211_radiotap.h +5 -1
       IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
-       IEEE80211_RADIOTAP_EXT = 31,
+       IEEE80211_RADIOTAP_RX_FLAGS = 14,
+       IEEE80211_RADIOTAP_TX_FLAGS = 15,
+       IEEE80211_RADIOTAP_RTS_RETRIES = 16,
+       IEEE80211_RADIOTAP_DATA_RETRIES = 17,
+       IEEE80211_RADIOTAP_EXT = 31
 };
 
 /* Channel flags. */

Did you send this part to netbsd also? We really don't want to fork radiotap. ;) Also, this should be in a separate patch, but I'm guessing it's all rolled together for convenience.

-Michael Wu

#2 lore raw
Quoted 39 lines · Michael Wu
Quoted 38 lines · Marcelo Tosatti
include/net/ieee80211_radiotap.h +22 -1
@@ -168,6 +168,23 @@ struct ieee80211_radiotap_header {
 *      Unitless indication of the Rx/Tx antenna for this packet.
 *      The first antenna is antenna 0.
 *
+ * IEEE80211_RADIOTAP_RX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of received frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_TX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of transmitted frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_RTS_RETRIES       u_int8_t        data
+ *
+ *     Number of rts retries a transmitted frame used.
+ *
+ * IEEE80211_RADIOTAP_DATA_RETRIES      u_int8_t        data
+ *
+ *     Number of unicast retries a transmitted frame used.
+ *
+ *
 * IEEE80211_RADIOTAP_FCS              u32       data
 *
 *     FCS from frame in network byte order.
@@ -187,7 +204,11 @@ enum ieee80211_radiotap_type {
       IEEE80211_RADIOTAP_ANTENNA = 11,
       IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
       IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
-       IEEE80211_RADIOTAP_EXT = 31,
+       IEEE80211_RADIOTAP_RX_FLAGS = 14,
+       IEEE80211_RADIOTAP_TX_FLAGS = 15,
+       IEEE80211_RADIOTAP_RTS_RETRIES = 16,
+       IEEE80211_RADIOTAP_DATA_RETRIES = 17,
+       IEEE80211_RADIOTAP_EXT = 31
 };
 
Quoted 4 lines

include/net/ieee80211_radiotap.h enum ieee80211_radiotap_type { · line 214

Quoted 1 line
include/net/ieee80211_radiotap.h +0 -0
 /* Channel flags. */

Did you send this part to netbsd also? We really don't want to fork radiotap. ;) Also, this should be in a separate patch, but I'm guessing it's all rolled together for convenience.

No, especially since NetBSD is where I keep the authoritative definitions.

How have you defined RX_FLAGS and TX_FLAGS?

BTW, IEEE80211_RADIOTAP_FCS (above) never made it into radiotap. No bit is reserved.

Dave

Signature · 2 lines
David Young             OJC Technologies
[email protected]      Urbana, IL * (217) 278-3933
#3 lore raw
Quoted 45 lines · David Young
Quoted 39 lines · Michael Wu
Quoted 38 lines · Marcelo Tosatti
include/net/ieee80211_radiotap.h +22 -1
@@ -168,6 +168,23 @@ struct ieee80211_radiotap_header {
 *      Unitless indication of the Rx/Tx antenna for this packet.
 *      The first antenna is antenna 0.
 *
+ * IEEE80211_RADIOTAP_RX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of received frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_TX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of transmitted frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_RTS_RETRIES       u_int8_t        data
+ *
+ *     Number of rts retries a transmitted frame used.
+ *
+ * IEEE80211_RADIOTAP_DATA_RETRIES      u_int8_t        data
+ *
+ *     Number of unicast retries a transmitted frame used.
+ *
+ *
 * IEEE80211_RADIOTAP_FCS              u32       data
 *
 *     FCS from frame in network byte order.
@@ -187,7 +204,11 @@ enum ieee80211_radiotap_type {
       IEEE80211_RADIOTAP_ANTENNA = 11,
       IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
       IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
-       IEEE80211_RADIOTAP_EXT = 31,
+       IEEE80211_RADIOTAP_RX_FLAGS = 14,
+       IEEE80211_RADIOTAP_TX_FLAGS = 15,
+       IEEE80211_RADIOTAP_RTS_RETRIES = 16,
+       IEEE80211_RADIOTAP_DATA_RETRIES = 17,
+       IEEE80211_RADIOTAP_EXT = 31
 };
 
Quoted 4 lines

include/net/ieee80211_radiotap.h enum ieee80211_radiotap_type { · line 214

Quoted 1 line
include/net/ieee80211_radiotap.h +0 -0
 /* Channel flags. */

Did you send this part to netbsd also? We really don't want to fork radiotap. ;) Also, this should be in a separate patch, but I'm guessing it's all rolled together for convenience.

Quoted 6 lines

No, especially since NetBSD is where I keep the authoritative definitions.

How have you defined RX_FLAGS and TX_FLAGS?

BTW, IEEE80211_RADIOTAP_FCS (above) never made it into radiotap. No bit is reserved.

Tell that to everyone that implements it.

Sam

#4 lore raw
Quoted 45 lines · Sam Leffler
Quoted 44 lines · David Young
Quoted 43 lines · Michael Wu
Quoted 29 lines · Marcelo Tosatti
include/net/ieee80211_radiotap.h +17 -0
@@ -168,6 +168,23 @@ struct ieee80211_radiotap_header {
 *      Unitless indication of the Rx/Tx antenna for this packet.
 *      The first antenna is antenna 0.
 *
+ * IEEE80211_RADIOTAP_RX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of received frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_TX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of transmitted frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_RTS_RETRIES       u_int8_t        data
+ *
+ *     Number of rts retries a transmitted frame used.
+ *
+ * IEEE80211_RADIOTAP_DATA_RETRIES      u_int8_t        data
+ *
+ *     Number of unicast retries a transmitted frame used.
+ *
+ *
 * IEEE80211_RADIOTAP_FCS              u32       data
 *
 *     FCS from frame in network byte order.
@@ -187,7 +204,11 @@ enum ieee80211_radiotap_type {
       IEEE80211_RADIOTAP_ANTENNA = 11,
       IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,

include/net/ieee80211_radiotap.h enum ieee80211_radiotap_type { · line 214

Quoted 10 lines
include/net/ieee80211_radiotap.h +5 -1
       IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
-       IEEE80211_RADIOTAP_EXT = 31,
+       IEEE80211_RADIOTAP_RX_FLAGS = 14,
+       IEEE80211_RADIOTAP_TX_FLAGS = 15,
+       IEEE80211_RADIOTAP_RTS_RETRIES = 16,
+       IEEE80211_RADIOTAP_DATA_RETRIES = 17,
+       IEEE80211_RADIOTAP_EXT = 31
 };
 
 /* Channel flags. */

Did you send this part to netbsd also? We really don't want to fork radiotap. ;) Also, this should be in a separate patch, but I'm guessing it's all rolled together for convenience.

Quoted 9 lines
Quoted 6 lines

No, especially since NetBSD is where I keep the authoritative definitions.

How have you defined RX_FLAGS and TX_FLAGS?

BTW, IEEE80211_RADIOTAP_FCS (above) never made it into radiotap. No bit is reserved.

Tell that to everyone that implements it.

My mistake. David pointed out correctly that the mechanism for adding the FCS out-of-line (IEEE80211_RADIOTAP_FCS) was not used. Instead there is a flag bit that tells whether or not FCS is present (inline) in the data. This flag bit is what I was thinking of--it's honored by ethereal (aka wireshark), kismet, tcpdump, etc.

Sam

A message that is not in the archive (sent off-list or not yet received): 20061218195723.GB7260@dmt

#6 lore raw
Quoted 11 lines · Marcelo Tosatti
Quoted 9 lines
Quoted 5 lines
Quoted 2 lines

/* Channel flags. */

Did you send this part to netbsd also? We really don't want to fork radiotap. ;) Also, this should be in a separate patch, but I'm guessing it's all rolled together for convenience.

No, especially since NetBSD is where I keep the authoritative definitions.

How have you defined RX_FLAGS and TX_FLAGS?

Oh yes, missed that part of the patch. Sorry.

Sorry for the delayed response, it's been a busy couple of months.

There is now a mailing list for discussing radiotap. Subscribe at
<http://mail.ojctech.com/mailman/listinfo/radiotap>. I ask that you send proposals for new fields to the mailing list for discussion. I am interested to see proposals for 802.11n. A couple of people have already promised me proposals, but they never sent them.

A couple words about the fields you mention:

Quoted 27 lines
include/net/ieee80211_radiotap.h +17 -0
@@ -168,6 +168,23 @@ struct ieee80211_radiotap_header {
  *      Unitless indication of the Rx/Tx antenna for this packet.
  *      The first antenna is antenna 0.
  *
+ * IEEE80211_RADIOTAP_RX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of received frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_TX_FLAGS          u_int16_t       bitmap
+ *
+ *     Properties of transmitted frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_RTS_RETRIES       u_int8_t        data
+ *
+ *     Number of rts retries a transmitted frame used.
+ *
+ * IEEE80211_RADIOTAP_DATA_RETRIES      u_int8_t        data
+ *
+ *     Number of unicast retries a transmitted frame used.
+ *
+ *
  * IEEE80211_RADIOTAP_FCS           	u32       data
  *
  *	FCS from frame in network byte order.

include/net/ieee80211_radiotap.h enum ieee80211_radiotap_type { · line 212

Quoted 10 lines
include/net/ieee80211_radiotap.h +5 -1
@@ -187,7 +204,11 @@ enum ieee80211_radiotap_type {
 	IEEE80211_RADIOTAP_ANTENNA = 11,
 	IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
 	IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
-	IEEE80211_RADIOTAP_EXT = 31,
+	IEEE80211_RADIOTAP_RX_FLAGS = 14,
+	IEEE80211_RADIOTAP_TX_FLAGS = 15,
+	IEEE80211_RADIOTAP_RTS_RETRIES = 16,
+	IEEE80211_RADIOTAP_DATA_RETRIES = 17,
+	IEEE80211_RADIOTAP_EXT = 31
 };

I remember discussing these fields, but they were for somebody's experimental use. All of the fields are acceptable to me, but this flag is questionable; it duplicates the function of another flag:

include/net/ieee80211_radiotap.h enum ieee80211_radiotap_type { · line 213

Quoted 1 line
include/net/ieee80211_radiotap.h +1 -0
+#define IEEE80211_RADIOTAP_F_RX_BADFCS	0x0001	/* frame failed crc check */

If it is important to people that I add this flag, let's discuss on the mailing list.

Dave

Signature · 2 lines
David Young             OJC Technologies
[email protected]      Urbana, IL * (217) 278-3933