Search Linux Wireless

Re: [PATCH v1 1/6] mac80211: move flag IEEE80211_TX_CTL_ASSIGN_SEQ into info->control.flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Johannes,

>> As far as I can see, software-retry frames get in status.c the flag
>> IEEE80211_TX_INTFL_RETRANSMISSION
>> assigned (in function ieee80211_handle_filtered_frame). And this flag
>> prevents in function
>> invoke_tx_handlers() the call of ieee80211_tx_h_sequence(), so there
>> is not new seqno assigned in case of a software-retry within tx.c.
> 
> Right, but if IEEE80211_TX_CTL_ASSIGN was set then it also isn't
> cleared.

So the standard conform behavior should be to re-use the same sequno in case of a software retry ?
I could re-assign the flag IEEE80211_TX_CTL_ASSIGN_SEQ when a software retry happens by add
a test to function ieee80211_handle_filtered_frame. Something like:
	 if (!ieee80211_is_data_qos(hdr->frame_control) || is_multicast_ether_addr(hdr->addr1)) {
		/* driver should assign sequence number */
		info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ;
	}

Would this be right ?

>> But in case of a software retry there is info->control set to zero.
>> After I would move IEEE80211_TX_CTL_ASSIGN_SEQ into
>> info->control.flags this flag is zero.
>> Hence also drivers do not assign a new sequence number.
> 
> But now the frame might not have *any* sequence number assigned at all,
> if e.g. the firmware assigns sequence numbers and they're not written
> back to the frame. Thus I think you're losing the entire sequence number
> assignment in this case.
> 

If I re-assign the IEEE80211_TX_CTL_ASSIGN_SEQ flag for software retries, than drivers
that assigned a sequence number in the first try, could probably assign a new one. Would that
be ok ?

Greetings Thomas


> johannes
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux