linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adam Wozniak <awozniak@irobot.com>
To: Derek Smithies <derek@indranet.co.nz>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	Christian Lamparter <chunkeey@googlemail.com>,
	linux-wireless@vger.kernel.org, Felix Fietkau <nbd@openwrt.org>
Subject: Re: Adhoc networking, was Re: compat-wireless and minstrel
Date: Mon, 16 Nov 2009 15:39:04 -0800	[thread overview]
Message-ID: <4B01E298.3030602@irobot.com> (raw)
In-Reply-To: <alpine.DEB.2.00.0911171156210.3829@kauri.acheron.indranet.co.nz>

It seems like the code I pointed out earlier in rx.c is certainly wrong 
then; bitrates used in absence of other information should not be 
guessed based on the received rate, but should come instead from the 
BSSID. Correct?

Although, once you start these silly examples, it seems to me like the 
best thing to do is just assume the receiver can handle anything and let 
minstrel sort out what works and what doesn't. This has obvious problems 
for PID and similar rate algorithms.

Derek Smithies wrote:
> Hi,
>
> Referring back to my letter below, you see that when A&B agree on 
> their BSSID, this implies that A&B have agreed on:
>
>>> a)supported rates
>>> b)the value of X, the value of x
>>> c)the channel
>>> d)the ESSSID
>
>
> When B&C start talking, and C adopts the same BSSID as B, then we have 
> (by inference) that C has agreed to the same rates as A. There is no 
> need to pass rate information between C and A.
>
> ===========================
> Ok, now here is a silly example. Suppose C supports bitrates b4,b5 and 
> b6.
>
> B does not support bitrates b4,b5 and b6.
>
> Further, A does support bitrates b4,b5,b6
>
> This could be that B only does 1, 2, 5.5 and 11MBits/sec. But A&C do 
> everything up to 54Mbit/sec.
>
>
> B has caused a problem cause he is deficient (not doing G-Rates)
>
> In one view, B should report that he has all the rates of A. B would 
> then hope that A's rate control algorithm will detect that B cannot do 
> the G-rates. Minstrel will do this fine. Stepup-Stepdown rate 
> algorithms will struggle here if their table is constructed in the 
> wrong order.
>
> For this network, the BSSID defines the basic service set. you cannot 
> have nodes on the same BSSID who report as handling different rate sets.
>
>
>
> Derek.
>
>
>
> On Mon, 16 Nov 2009, Adam Wozniak wrote:
>
>> In your example where A&C can pass data, but not hear each other's 
>> beacons, how is rate information passed between them? ProbeReq/Resp ?
>>
>> Derek Smithies wrote:
>>> Hi,
>>> Statistics is a wonderful thing.
>>> Every node is required to send a beacon at time
>>> X+r, X+x+r, X+2x+r, X+3x+r, ......
>>>
>>> All nodes are agreed on the value of x (which is the beacon interval).
>>> All nodes are agreed on the value of X
>>> r is a random value, and is (from memory) 20 slots long.
>>>
>>> given this, all nodes work (to borrow an analogy from music) in 
>>> time, or beat in sync with each other.
>>>
>>> Now, if a node hears a beacon on its BSSID inside that r period, the 
>>> node will not transmit a beacon. This way, for a 20 node network in 
>>> a room, you should only get 1 (or sometimes 2) beacons transmitted 
>>> every beacon interval.
>>>
>>> If we assume that every node correctly attempts to send a beacon 
>>> somewhere in that period r, and that somewhere is randomly 
>>> distributed, then we will hear a beacon from most nodes, which is 
>>> good enough.
>>>
>>> Consider the case of three nodes, A, B, C.
>>>
>>> A and B are turned on, and create an Adhoc network. A and B agree on
>>> a)supported rates
>>> b)the value of X, the value of x
>>> c)the channel
>>> d)the ESSSID
>>> and so start sending a beacon. Inside this beacon is BSSID. The 
>>> BSSID is a random value. The particular random value used implies 
>>> acceptance of a,b,c,d. Look at the name. Basic Service Set ID. The 
>>> basic service set is the collection of those values a,b,c,d.
>>>
>>> Now, node C is turned on. A is positioned such that A&C cannot 
>>> communicate. However, B can communicate with A&C.
>>>
>>> C is turned on, detects the presence of B, likes B's beacons, and 
>>> agrees on all the settings in B's beacons. In other words, C likes 
>>> and agrees with a,b,c,d.
>>> So C starts sending beacons with the same BSSID as B.
>>> At this point, it does not matter that A cannot set C's beacons. A 
>>> and C have agreed on the BSSID.
>>>
>>> Change the story a little bit.
>>> In this locality, there is often a burst of 1ms of noise every 2ms. 
>>> This means that most beacons are shotdown. However, data packets at 
>>> 54Mbit/sec get through.
>>> A&B saw each others beacons and agreed on a BSSID. C was turned on, 
>>> and agreed with the BSSID of B.
>>>
>>> C sends out data packets, with the BSSID of B. A sees the 
>>> datapackets of C. Since the datapackets of C have A's BSSID, A has 
>>> to accept them.
>>>
>>> Now, you see where this is all going. What is the meaning of a 
>>> beacon containing a BSSID of all zero ?
>>> Further, you see that all nodes do need to send a beacon. This makes 
>>> node discovery a little easier.
>>> Even though A and C cannot see each others beacons, they should 
>>> still communicate as they have the same agreed on BSSID.
>>>
>>> Derek.
>>>
>>>
>>> On Mon, 16 Nov 2009, Adam Wozniak wrote:
>>>
>>>> This assumption seems too stoichastic. Reading 802.11-2007 section 
>>>> 11.1.2.2, it doesn't seem that we're guaranteed to always receive 
>>>> beacons from all stations. Stations will cancel their pending 
>>>> beacon transmission if they receive a beacon before their random 
>>>> delay times out. In the extreme case where the number of stations 
>>>> is very large, it seems possible that you may never hear beacons 
>>>> for some stations.
>>>>
>>>> Johannes Berg wrote:
>>>>> On Mon, 2009-11-16 at 09:25 -0800, Adam Wozniak wrote:
>>>>>
>>>>>> If we have only three stations in an ad-hoc network, where all 
>>>>>> three can hear the other two, only one of them should be 
>>>>>> beaconing, correct? 
>>>>>
>>>>> No, if they all behave correctly beaconing will be distributed.
>>>>>
>>>>> johannes
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>


  reply	other threads:[~2009-11-16 23:39 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-04  1:13 compat-wireless and minstrel Adam Wozniak
2009-11-04 15:53 ` Christian Lamparter
2009-11-04 15:57   ` Luis R. Rodriguez
2009-11-04 21:01   ` Derek Smithies
2009-11-04 21:42     ` Christian Lamparter
2009-11-04 21:46       ` Adam Wozniak
2009-11-04 21:50         ` Luis R. Rodriguez
2009-11-04 21:53           ` Adam Wozniak
2009-11-04 21:55             ` Luis R. Rodriguez
2009-11-04 22:18           ` Christian Lamparter
2009-11-04 22:20             ` Luis R. Rodriguez
2009-11-04 22:31               ` Christian Lamparter
2009-11-04 22:34                 ` Luis R. Rodriguez
2009-11-10 22:59     ` Adam Wozniak
2009-11-11  0:55       ` Derek Smithies
2009-11-11  1:08         ` Adam Wozniak
2009-11-11  2:09           ` Derek Smithies
2009-11-12 19:43             ` Adam Wozniak
2009-11-12 20:03               ` Christian Lamparter
2009-11-12 22:38                 ` Adam Wozniak
2009-11-12 22:41                   ` Adam Wozniak
2009-11-13  7:29                     ` Johannes Berg
2009-11-13 22:35                       ` Adam Wozniak
2009-11-14  9:30                         ` Johannes Berg
2009-11-16 17:25                           ` Adam Wozniak
2009-11-16 17:27                             ` Johannes Berg
2009-11-16 17:57                               ` Adam Wozniak
2009-11-16 18:07                                 ` Johannes Berg
2009-11-16 21:02                                 ` Adhoc networking, was " Derek Smithies
2009-11-16 22:39                                   ` Adam Wozniak
2009-11-16 23:13                                     ` Derek Smithies
2009-11-16 23:39                                       ` Adam Wozniak [this message]
2009-11-16 23:43                                         ` Felix Fietkau
2009-11-17  0:20                                         ` Derek Smithies
2009-11-17  7:38                                           ` Johannes Berg
2009-11-17 17:39                                             ` Adam Wozniak
2009-11-23 20:21                                               ` Adam Wozniak
2009-11-23 23:27                                                 ` Johannes Berg
2009-11-24  0:57                                                   ` [PATCH 0/2] mac80211: IBSS rates Adam Wozniak
2009-11-24 17:05                                                     ` [PATCH v2 " Adam Wozniak
2009-11-24  0:57                                                   ` [PATCH 1/2] mac80211: supp_rates initialization and rate control notification Adam Wozniak
2009-11-24  1:16                                                     ` Johannes Berg
2009-11-24 17:05                                                     ` [PATCH v2 " Adam Wozniak
2009-11-24 17:13                                                       ` Johannes Berg
2009-11-24  0:57                                                   ` [PATCH 2/2] mac80211: minstrel try all rates Adam Wozniak
2009-11-24  1:11                                                     ` Johannes Berg
2009-11-24 16:13                                                       ` Adam Wozniak
2009-11-24 16:17                                                         ` Adam Wozniak
2009-11-24 17:17                                                       ` Adam Wozniak
2009-11-24 17:41                                                         ` Johannes Berg
2009-11-24 17:55                                                           ` Adam Wozniak
2009-11-24 17:58                                                             ` Johannes Berg
2009-11-24 18:34                                                               ` Adam Wozniak
2009-11-24 18:36                                                                 ` Johannes Berg
2009-11-24 18:43                                                                   ` Adam Wozniak
2009-11-24 19:00                                                                     ` Johannes Berg
2009-11-24 19:44                                                                       ` Adam Wozniak
2009-11-24 19:47                                                                         ` Johannes Berg
2009-11-24 19:58                                                                           ` Adam Wozniak
2009-11-24 17:05                                                     ` [PATCH v2 " Adam Wozniak
2009-11-24 17:14                                                       ` Johannes Berg
2009-11-12 23:35                   ` compat-wireless and minstrel Christian Lamparter
2009-11-13  0:25                     ` Adam Wozniak
2009-11-13  0:32                     ` Adam Wozniak

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=4B01E298.3030602@irobot.com \
    --to=awozniak@irobot.com \
    --cc=chunkeey@googlemail.com \
    --cc=derek@indranet.co.nz \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=nbd@openwrt.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;
as well as URLs for NNTP newsgroup(s).