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