Bruno,

This is cool.  Finally we seem to have a decent solution to the ever present request for an injection+retry patch.  :-)

- M

bruno randolf wrote:
On Wednesday 28 November 2007 10:29:34 Pavel Roskin wrote:
  
On Wed, 2007-11-28 at 10:18 +0900, bruno randolf wrote:
    
can we use the IEEE80211_RADIOTAP_DATA_RETRIES for injected frames to
specifiy the number of retries to be used? this might be slighty
different from the strict specification of radiotap for this field
because it was concerned with received data frames only, and we apply it
to all kinds of frames to be TXed:
      
It would be great if you also ask this question in the radiotap list at
radiotap@mail.ojctech.com

This way, the standard could be improved by describing this behavior.
    

ok, i'll do that. i didn't know about that list, so thanks for the address!

  
and i think even without radiotap headers we should not retry management
frames, so this is included in this patch too. but i'm not 100% sure if
this is true for all management frames...
      
That's a separate issue.  Surely, beacons should not be retried (like
other broadcast frames).  But why shouldn't e.g. an authentication
response be retried?  It's a valuable packet.  Losing it would mean
re-doing the whole authentication.
    

you are right. the check for broadcast is already in ath_tx_startraw(). sorry 
i missed that... so forget that part of the patch, the new one is below. i'll 
wait for the result of my inquiry on the radiotap list and will then resend 
the patch.

thanks!

bruno

Index: net80211/ieee80211_monitor.c
===================================================================
--- net80211/ieee80211_monitor.c	(revision 2985)
+++ net80211/ieee80211_monitor.c	(working copy)
@@ -246,6 +246,11 @@
 					p = start + roundup(p - start, 8) + 8;
 					break;
 
+				case IEEE80211_RADIOTAP_DATA_RETRIES:
+					ph->try0 = *p;
+					p++;
+					break;
+
 				default:
 					present = 0;
 					break;
@@ -256,7 +261,8 @@
 			/* Remove FCS from the end of frames to transmit */
 			skb_trim(skb, skb->len - IEEE80211_CRC_LEN);
 		wh = (struct ieee80211_frame *)skb->data;
-		if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL)
+		if (!ph->try0 &&
+		    (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL)
 			ph->try0 = 1;
 		break;
 	}

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Madwifi-devel mailing list
Madwifi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/madwifi-devel