All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benoit PAPILLAULT <benoit.papillault@free.fr>
To: Gertjan van Wingerde <gwingerde@gmail.com>
Cc: rt2x00 Users List <users@rt2x00.serialmonkey.com>,
	linux-wireless@vger.kernel.org, Ivo van Doorn <ivdoorn@gmail.com>
Subject: Re: [rt2x00-users] [PATCH v3 0/4] Further L2 padding fixes.
Date: Wed, 02 Dec 2009 10:54:30 +0100	[thread overview]
Message-ID: <4B163956.1060709@free.fr> (raw)
In-Reply-To: <4B158ADF.7060700@gmail.com>

Gertjan van Wingerde a écrit :
> On 12/01/09 00:46, Benoit PAPILLAULT wrote:
>   
>> Gertjan van Wingerde a écrit :
>>     
>>> The L2 padding fixes patch has grown a bit and now consists of 4 separate
>>> patches to clean the L2 padding code up and to fix a number of bugs at the
>>> same time.
>>>
>>> 	1. rt2x00: Further L2 padding fixes.
>>> 	2. rt2x00: Remove SKBDESC_L2_PADDED flag.
>>> 	3. rt2x00: Reorganize L2 padding inserting function.
>>> 	4. rt2x00: Only remove L2 padding in received frames if there is payload.
>>>
>>> ---
>>> Gertjan.
>>>       
>> Thanks Gertjan for the patches, I know that padding is a bit of
>> nightware. I've testing your tree and here are the results:
>>
>> 1. On TX : It fails for control frames with hdrlen=10 since it will
>> produce l2pad = 2 in your case, where it should be 0. In all other
>> cases, it works!
>>
>>     
>
> Hmm. That's strange, as patch 3 of the series should have handled this. Basically this patch
> checks if a frame actually has payload, and refrains from inserting l2pad and payload alignment
> in that case.
>
> How did you detect this failure?
>   
I sent every possible frame type in monitor and compared with what ath9k 
in monitor mode received.
> What did you observe on the "wire", i.e. how was the frame malformed because of this?
>   
For instance, i sent :
c400c400c40000000000 (10 bytes)

and I received :
c400ca00c400000000000000 (12 bytes)

You can see the 2 bytes added at the end (bytes 2-3 are modified by the 
HW since it contains the duration_id)
> Also, would it be possible to get some of the skb details of a frame that fails?
>   
I'll redo the test. What details do you want?
>
>   
>> Solution : padding is only needed for data frames for rt28x devices, so
>> I think it's better to something like rt2xqueue_padpos
>> [http://git.popipo.fr/?p=rt2x00.git;a=commitdiff;h=95ddf076c13062d1026025d97ba511f880a1792d]
>>
>>     
>
> I'm still not fond of using detailed ieee 802.11 frame format knowledge to do this. I prefer
> to use standard mac80211 functions with a bit of detection on the actual skb.
>   

If you want to use mac80211 functions, we can do something like that : 
/*
 * Determine the L2 padding size based on the 802.11 header length
 *
 * Exact formula is (4 - (header_length%4))%4 but since header_length is
 * always a multiple of 2, we could simplify to (header_length&3).
 *
 * L2PAD is only present for data frame and an easy way to check for that is
 * to compare header_length with 24 bytes.
 */
#define L2PAD_SIZE(__header) \
       ((__header)<24 ? 0 : ((4 - ((__header)%4))%4))

Regards,
Benoit

  reply	other threads:[~2009-12-02  9:55 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-30 21:08 [PATCH v3 0/4] Further L2 padding fixes Gertjan van Wingerde
2009-11-30 21:08 ` [PATCH v3 1/4] rt2x00: " Gertjan van Wingerde
2009-11-30 21:08   ` [PATCH v3 2/4] rt2x00: Remove SKBDESC_L2_PADDED flag Gertjan van Wingerde
2009-11-30 21:08     ` [PATCH v3 3/4] rt2x00: Reorganize L2 padding inserting function Gertjan van Wingerde
2009-11-30 21:08       ` [PATCH v3 4/4] rt2x00: Only remove L2 padding in received frames if there is payload Gertjan van Wingerde
2009-12-01 19:16         ` Ivo van Doorn
2009-12-01 21:08           ` Gertjan van Wingerde
2009-12-01 21:57             ` Ivo van Doorn
2009-12-01 22:09               ` Gertjan van Wingerde
2009-12-02  7:52                 ` Ivo Van Doorn
2009-12-01 21:58         ` Ivo van Doorn
2009-12-01 19:13       ` [PATCH v3 3/4] rt2x00: Reorganize L2 padding inserting function Ivo van Doorn
2009-12-01 21:05         ` Gertjan van Wingerde
2009-12-01 21:58       ` Ivo van Doorn
2009-12-01 19:07     ` [PATCH v3 2/4] rt2x00: Remove SKBDESC_L2_PADDED flag Ivo van Doorn
2009-12-01 19:07   ` [PATCH v3 1/4] rt2x00: Further L2 padding fixes Ivo van Doorn
2009-11-30 23:46 ` [rt2x00-users] [PATCH v3 0/4] " Benoit PAPILLAULT
2009-12-01 21:30   ` Gertjan van Wingerde
2009-12-02  9:54     ` Benoit PAPILLAULT [this message]
2009-12-03  9:32       ` Gertjan van Wingerde
2009-12-03 18:36         ` Ivo van Doorn
2009-12-03 21:36           ` Benoit PAPILLAULT
2009-12-04  7:53             ` Ivo Van Doorn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B163956.1060709@free.fr \
    --to=benoit.papillault@free.fr \
    --cc=gwingerde@gmail.com \
    --cc=ivdoorn@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=users@rt2x00.serialmonkey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.