public inbox for radiotap@archiver.kernel.org
 help / color / mirror / Atom feed
From: David Young <dyoung-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
To: radiotap <radiotap-rN9S6JXhQ+WXmMXjJBpWqg@public.gmane.org>
Subject: Re: use of radiotap bit 14?
Date: Sun, 7 Oct 2007 18:55:51 -0500	[thread overview]
Message-ID: <20071007235551.GN6429@che.ojctech.com> (raw)
In-Reply-To: <1189668582.6161.91.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>

On Thu, Sep 13, 2007 at 09:29:42AM +0200, Johannes Berg wrote:
> On Wed, 2007-09-12 at 13:06 -0500, David Young wrote:
> 
> > Solution 2: increase the radiotap version number, and start over from
> >         bit 0.  Now we need a "legacy" parser for v0, 0 <= bit <= 13,
> >         and a "next gen" parser for v1.  No v0 header with bits >=
> >         14 set can be interpreted without ambiguity.
> > 
> >         2a: adopt all of the legacy presence bits 0 through 13 in v1
> >         2b: adopt some of the legacy presence bits in v1
> >         2c: start from scratch for v1
> 
> Personally, I favour solution 2a as it allows us to easily port parsers
> and even share code,

Johannes,

My problem with #2 right now is that you and I are acting as stronger
advocates for the folks who adopted conflicting radiotap numbers than
they themselves are.  Meanwhile, v0 has some momentum: FreeBSD has
introduced useful new fields, FreeBSD and NetBSD are in agreement,
and there are NO interpreters in tcpdump or in wireshark for any field
past 15.  Let's stick with v0 until somebody objects.

> but before we do that, we need a good way to allow
> vendor-specific extensions. I've been thinking that a format with an
> explicit length field like 802.11 information elements would have been
> easier for this (think 802.11 vendor-specific IEs) but I'm sure we can
> come up with a solution for vendor-specific fields, for example breaking
> the "bit ordering" == "element ordering" for them and requiring them to
> be last at all times or something similar.

I propose to add two new presence bits, 29 and 30.  Let them both reset
the bitmap index to 0.  That is, the bits in following next 32-bit
presence word are interpreted as bits in 0..31, not n..31+n.  We must
use both of these bits in conjunction with the extension bit, bit 31,
or else they will have no effect.

Let bit 29 make the interpreter change to a vendor namespace, and let
bit 30 make the interpreter change back to the default radiotap namespace.
Some detailed field specs follow.

Vendor Namespace Field (29)

        presence bit IEEE80211_RADIOTAP_NSVENDOR = 29
        1-byte alignment
        5 bytes long
        scope: this bit is reserved in all namespaces, and it is
               interpreted identically in every namespace

        The Vendor Namespace Field contains three sub-fields.  The first
        sub-field is 3 bytes long.  It contains the vendor's IEEE 802
        Organizationally Unique Identifier (OUI).  The fourth byte is
        a vendor-specific "namespace selector."

        Before it resumes interpretation of presence bits in the following
        32-bit presence words, if any, the interpreter shall reset its
        presence-bitmap index to 0, and change to the vendor namespace
        specified by the OUI and selector.

        The fifth byte, skip_length, tells the interpreter how many bytes
        of data after the end of the Vendor Namespace Field can only be
        interpreted according to the vendor namespace.  If a radiotap
        header changes to a namespace that the interpreter does not
        understand, and back, the interpreter may resume interpretation
        in the new namespace by skipping skip_length data bytes after
        the end of the Vendor Namespace Field.

Reset Namespace Field (30)

        presence bit IEEE80211_RADIOTAP_NSRESET = 30
        1-byte alignment
        0 bytes long
        scope: this bit is reserved in all namespaces, and it is
               interpreted identically in every namespace

        Upon interpreting this field, the interpreter shall reset its
        presence-bitmap index to 0, and change to the default radiotap
        namespace, before it interprets subsequent presence-bitmap words.

If we adopt Reset/Vendor Namespace, it is possible for a radiotap field
to appear twice or more in one radiotap header.  I believe that this is
a feature, and I have some ideas for using Reset Namespace to specify /
record transmit strategies.

Dave

-- 
David Young             OJC Technologies
dyoung-eZodSLrBbDpBDgjK7y7TUQ@public.gmane.org      Urbana, IL * (217) 278-3933 ext 24

  parent reply	other threads:[~2007-10-07 23:55 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-30 22:16 use of radiotap bit 14? Johannes Berg
     [not found] ` <1188512214.7585.3.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2007-08-31 14:47   ` Pavel Roskin
2007-08-31 16:23     ` Sam Leffler
     [not found]       ` <46D84073.3090709-zZXckVAlHaQAvxtiuMwx3w@public.gmane.org>
2007-08-31 16:33         ` Sam Leffler
2007-08-31 16:50     ` Gerald Combs
     [not found]       ` <46D846E4.20103-IZ8446WsY0/dtAWm4Da02A@public.gmane.org>
2007-08-31 21:57         ` Johannes Berg
     [not found]           ` <1188597475.7585.46.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2007-08-31 22:17             ` Pavel Roskin
2007-09-12 17:17             ` David Young
     [not found]               ` <20070912171755.GA17887-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2007-09-12 19:21                 ` Gerald Combs
2007-09-13  7:18                 ` Johannes Berg
     [not found]                   ` <1189667921.6161.86.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2007-11-26 16:58                     ` Johannes Berg
     [not found]                       ` <1196096301.4149.309.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2007-11-26 18:13                         ` David Young
     [not found]                           ` <20071126181329.GA3568-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2007-11-27 13:21                             ` Johannes Berg
2007-09-12 18:06   ` David Young
     [not found]     ` <20070912180619.GB17887-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2007-09-12 19:03       ` Pavel Roskin
2007-09-13 18:06         ` David Young
     [not found]           ` <20070913180618.GK17887-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2007-09-13 18:15             ` Guy Harris
2007-09-13  7:29       ` Johannes Berg
     [not found]         ` <1189668582.6161.91.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2007-10-07 23:55           ` David Young [this message]
     [not found]             ` <20071007235551.GN6429-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2007-10-08  9:45               ` Johannes Berg
     [not found]                 ` <1191836708.4063.17.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-06-19 16:13                   ` Johannes Berg
2007-12-11 23:09               ` Johannes Berg
2007-12-12 17:27               ` Johannes Berg
2008-06-19 18:10               ` Johannes Berg
     [not found]                 ` <1213899026.8967.56.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-06-19 18:41                   ` Johannes Berg
2008-06-19 17:44   ` Johannes Berg
     [not found]     ` <1213897499.8967.46.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-06-19 17:59       ` Johannes Berg
     [not found]         ` <1213898387.8967.54.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-06-19 18:28           ` Gerald Combs
     [not found]             ` <485AA531.4010408-IZ8446WsY0/dtAWm4Da02A@public.gmane.org>
2008-06-19 18:34               ` Guy Harris
     [not found]                 ` <485AA6C3.8090303-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org>
2008-06-19 18:37                   ` Johannes Berg
2008-06-19 20:05           ` Johannes Berg
2008-06-19 18:13       ` Pavel Roskin
2008-06-19 18:18         ` Johannes Berg
     [not found]           ` <1213899529.8967.62.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-06-19 18:39             ` Pavel Roskin
2008-06-19 18:43               ` Johannes Berg
2008-06-19 18:56       ` David Young
     [not found]         ` <20080619185646.GA17738-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2008-06-19 19:10           ` Johannes Berg
     [not found]             ` <1213902633.8967.84.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-06-19 19:33               ` Guy Harris
     [not found]                 ` <485AB49B.4080403-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org>
2008-06-19 19:59                   ` Johannes Berg
2008-06-19 19:39               ` David Young
     [not found]                 ` <20080619193958.GB17738-eZ+MEZF6i8Dc+919tysfdA@public.gmane.org>
2008-06-19 19:51                   ` Guy Harris
     [not found]                     ` <485AB8B0.7060606-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org>
2008-06-19 20:06                       ` Loris Degioanni
     [not found]                         ` <485ABC4A.4060801-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-06-19 20:17                           ` Guy Harris
2008-06-19 20:25                           ` Johannes Berg
2008-07-01 16:35                       ` use of radiotap bit 14? [mostly 11n] Sam Leffler
2008-06-19 20:06                   ` use of radiotap bit 14? Johannes Berg
2008-06-19 22:33           ` Scott Raynel

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=20071007235551.GN6429@che.ojctech.com \
    --to=dyoung-e+axbwqsrlaavxtiumwx3w@public.gmane.org \
    --cc=radiotap-rN9S6JXhQ+WXmMXjJBpWqg@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox