linux-wpan.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Aring <alex.aring@gmail.com>
To: Michael Richardson <mcr@sandelman.ca>
Cc: linux-wpan@vger.kernel.org, kernel@pengutronix.de
Subject: Re: [PATCHv2 bluetooth-next 1/2] ieee802154: 6lowpan: remove multiple lowpan support
Date: Sat, 1 Aug 2015 10:46:18 +0200	[thread overview]
Message-ID: <20150801084617.GA759@omega> (raw)
In-Reply-To: <4122.1438389297@sandelman.ca>

On Fri, Jul 31, 2015 at 08:34:57PM -0400, Michael Richardson wrote:
> 
> Alexander Aring <alex.aring@gmail.com> wrote:
>     > We currently supports multiple lowpan interfaces per wpan interface. I
>     > never saw any use case into such functionality. We drop this feature
> 
> I was confused at first, because I was sure that you didn't mean that we
> would not have support for multiple radios.
> 

What we have is:

 - wpan_phy - which represents the transceiver, which contains phy
   settings (channel/cca/page, usually known as pib, also some phy
   depended mac settings). This is in linux a device class.

 - wpan_dev - which represents the mac layer of 802.15.4 and contains
   the mib. Now it comes a little bit complicated because phy's
   (real transceivers) supports some mac functionality like address
   filtering, time critical things (aret,csma,etc.)
   These settings do we set on interface up in phy registers and currently
   not changeable while interface is up.

 - lowpan_dev - the lowpan interface which do the 6LoWPAN adaption layer
   on a wpan_dev.

Currently we have such architecture about handling multiple interfaces:

 - ONE phy
 - on each phy we can setup multiple wpan interfaces, this depends on
   the mac settings which is supported by phy.
   e.g. All node interfaces need to have the same address when the phy
   supports address-filtering, because we can setup one address filter
   only.
 - on each wpan interface you can have multiple lowpan interfaces.

I tried to draw some graphic about this situation:

                phy0                          phy1
	       / | \                          ....
              /  |  \
         wpan0 wpan1 wpan#
        /  \        \     \_____
       /    \        \        \\\
   lowpan01 lowpan01 lowpan10 lowpan##


For wpan interfaces the use case "could be", that you can change the mib
fast by having one wpan interface up and other down. MIB context
switching is down one interface, then up another interface.

This is the one usecase which I can see for wpan interfaces, but this
mechanism can also be done by userspace which handles the MIB in some
context table.

We have such support because "historical" reasons, I can do some
assumptions only why we have it. In my opinion it's because many code is
grabbed (also before I started) from wireless subsystem and they have
the use case because some phys supports multiple access points handling
and such things.

Nevertheless we don't talking here about now for the multiple wpan
interface feature. We talking about the multiple lowpan interface which
makes no sense for me. In linux you would have then some multiple lowpan
interfaces (maybe with different _IPv6_ addresses) which belongs to one
wpan interface. I never used such feature. Also I think when two lowpan
interface (which uses the same L2 addresses) will occur that the ndisc
cache at receiving nodes will get confused, because two IPv6 stacks on
one wpan interface with the same L2 addresses will operate then. (Maybe
you will also get some duplicate address detection, because the SLAAC address
(I mean the fe80::EUI64_WITH_BITFLIP/64) is the same on both interfaces).

Again I think why we have such feature currently is because the code was
copy&pasted from ethernet bridge code and there they support (and makes
sense) multiple bridges per ethernet interface.

> What you are saying is that we won't have multiple lowpan adaption layers per
> wpan interface?

yes.

> That does not, I think mean that we can't respond to multiple
> EUI-64 layer-2 addresses, but does it have any affect on ability to respond
> to multiple 16-bit (short) addresses?

On receiving we get frames from extended/short destination which are setup also
at the address filtering on phy setting (inclusive short address broadcast).

Note:

Short addresses are currently not handled by the 802.15.4 6LoWPAN stack
and is another issue where a possible solution for this is _maybe_ there
(will come up in some RFC next days/months). Maybe I should send a draft
for a possible handling of this in the next days.

This is currently another issue for handling short addresses correctly,
because we need special runtime decisions inside of ndisc cache for
setting the ICMPv6 length field and decide if short/extended.

Anyway back to the extended/short in lowpan_dev:

You said "respond", we can respond to any address which we set inside
the mac header. On receiving we can accept only the addresses which are
also set inside the MIB of the wpan interface (inklusive broadcast,
etc.) This all goes into the "address filtering" functionality inside
the phy "mac functionality for address filtering setting".

At the end I would answer your question "but does it have any affect on
ability to respond to multiple 16-bit (short) addresses?" with "no".

Because I don't see no different L2 address handling when we drop the
multiple lowpan interfaces functionality.


Does this answers some questions for you?

- Alex

  reply	other threads:[~2015-08-01  8:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-31 11:11 [PATCHv2 bluetooth-next 0/2] ieee802154: multiple lowpan interface support and fix mac setting Alexander Aring
2015-07-31 11:11 ` [PATCHv2 bluetooth-next 1/2] ieee802154: 6lowpan: remove multiple lowpan support Alexander Aring
2015-08-01  0:34   ` Michael Richardson
2015-08-01  8:46     ` Alexander Aring [this message]
2015-07-31 11:11 ` [PATCHv2 bluetooth-next 2/2] mac802154: fix wpan mac setting while lowpan is there Alexander Aring

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=20150801084617.GA759@omega \
    --to=alex.aring@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-wpan@vger.kernel.org \
    --cc=mcr@sandelman.ca \
    /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).