Re: RTS/CTS + CTS-to-self

David Young <[email protected]>
Newsgroups org.netbsd.radiotap
Message-ID <[email protected]>
On Sat, Aug 22, 2009 at 12:47:19AM +0200, Gábor Stefanik wrote:
> On Sat, Aug 22, 2009 at 12:35 AM, David Young<[email protected]> wrote:
> > On Fri, Aug 21, 2009 at 11:55:27PM +0200, Gábor Stefanik wrote:
> >> 2009/8/21 Johannes Berg <[email protected]>:
> >> > On Fri, 2009-08-21 at 17:04 +0200, Gábor Stefanik wrote:
> >> >
> >> >> I've reworked RTS/CTS since then, just haven't got to sending a new
> >> >> proposal yet. The current plan is as follows:
> >> >>
> >> >> TX_FLAGS & 0x0002: Use CTS
> >> >> TX_FLAGS & 0x0004: Use RTS
> >> >> TX_FLAGS & 0x0020: Disable RTS/CTS usage
> >> >
> >> > Seems a bit strange, wouldn't setting neither RTS nor CTS have the
> >> > effect? Seems like 0x20 should rather be "use automatic and ignore the
> >> > other bits". Anyway, not appropriate here, you should just bring a new
> >> > proposal.
> >>
> >> The point is that if all bits are 0, auto-setup is used. The problem
> >> with my original proposal (using two bits) was that an all-zero value
> >> had different effect than not including the TX flags field (and simply
> >> swapping "none" and "auto" would result in an illogicality where what
> >> would logically be "use both" would become "use neither" - just the
> >> opposite of its logical meaning). Making 0x20 mean "Auto-select
> >> RTS/CTS", interpreting all-zeros as "Use neither", would have the same
> >> problem as my proposal - all-zeros is different from a missing field.
> >> (An empty, zeroed field 15 should have no effect on the process,
> >> behaving as if field 15 was not present in the header.)
> >
> > Gábor,
> >
> > Please explain what is wrong with a two-bit (four-state) field like
> > this?
> >
> > 00: Let the hardware, firmware, or device driver decide.  (I.e., same as
> >    omitting Tx flags altogether.)
> > 01: Send RTS/CTS.
> > 10: Send CTS to self.
> > 11: Forbid CTS-to-self and RTS/CTS.
> 
> The 11 case is illogical. The logical meaning of 11 would be "use
> both", but it actually means "use neither" - just the opposite.

You may have misunderstood.  When I say to treat it as a two-bit field,
I mean to treat it as an integer that is two bits wide.  That is, I am
not talking about flags any longer.  I may as well have written the
values in decimal:

0: Let the hardware, firmware, or device driver decide.  (I.e., same as
   omitting Tx flags altogether.)
1: Send RTS/CTS.
2: Send CTS to self.
3: Forbid CTS-to-self and RTS/CTS.

I don't care too much which value maps to what function, except that 0
must mean "don't care."  I think we agree about that much?

According to my notes, somebody may already use Tx flags 0x2 and 0x4 to
indicate CTS protection and RTS/CTS handshake, respectively, so this
assignment may be most practical:

Tx Protection Field, Bits [3:2]
Values:
        0: Let the hardware, firmware, or device driver decide.  (I.e., same as
           omitting Tx flags altogether.)
        1: Send CTS to self.
        2: Send RTS/CTS.
        3: Forbid CTS-to-self and RTS/CTS.

Ok?

Dave

-- 
David Young             OJC Technologies
[email protected]      Urbana, IL * (217) 278-3933
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.