All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Aring <aar@pengutronix.de>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: linux-wpan@vger.kernel.org, kernel@pengutronix.de,
	kaspar@schleiser.de,
	Jukka Rissanen <jukka.rissanen@linux.intel.com>,
	"linux-bluetooth@vger.kernel.org"
	<linux-bluetooth@vger.kernel.org>,
	Patrik Flykt <Patrik.Flykt@linux.intel.com>
Subject: Re: [RFC bluetooth-next 20/20] 6lowpan: bluetooth: add new implementation
Date: Tue, 19 Jul 2016 23:24:34 +0200	[thread overview]
Message-ID: <304c7949-08aa-5ada-a37e-e12b9ab83a2c@pengutronix.de> (raw)
In-Reply-To: <CABBYNZK-zzTzy5uUYd1GVgwiNX9MNpAmWpWUbRyAbOqN0fcNdg@mail.gmail.com>


Hi,

On 07/19/2016 10:49 AM, Luiz Augusto von Dentz wrote:
> Hi Alex,
> 
> On Tue, Jul 19, 2016 at 12:52 AM, Alexander Aring <aar@pengutronix.de> wrote:
>>>> If you have the current debugfs UAPI 1:1 already in some kind of stable
>>>> bluetooth API then I would give you the BIG advice to fix that and let
>>>> me look into that. (As far I know there exists idea's only, no
>>>> implementations).
>>>
>>> There is the patches posted by Patrik implementing the management interface:
>>>
>>> http://www.spinics.net/lists/linux-bluetooth/msg66486.html
>>>
>> Okay, just to be sure here, in the above document:
>>
>> Controller ID = hdev(usually var name, struct hci_dev)->id
>>
>> Interface Index = dev(usualy var name, struct net_device)->idx
>>
>> Is this right? I think so, so my next stuff will base on that.
> 
> Yep.
> 
>>> Note that these commands are per interface index, so you would be able
>>> to have two dongle talking to each other, we could in fact even
>>> automate this to test with 2 virtual controllers.
>>>
>>
>> We have similar automating testing in 802.15.4 6LoWPAN with virtual
>> transceiver drivers.
>>
>> I always looked somehow for some virtual driver in bluetooth, does this
>> exist mainline?
> 
> Take a look at the emulator directory:
> 
> https://git.kernel.org/cgit/bluetooth/bluez.git/tree/emulator
> 

cool.

>>> It is about priorities, we should concentrate in making it work for
>>> simpler cases, besides the RFC don't talk about subnets either.
>>>
>>
>> I don't talking about subnets.
>>
>> I am talking about "make the connect command per interface". Patrik
>> works shows the following:
>>
>> Add Network Command
>> ===================
>>
>>         Command Code:           0x0043
>>         Controller Index:       <controller id>
>>         Command Parameters:     Address (6 Octets)
>>                                 Address_Type (1 Octet)
>>         Return Parameters:      Address (6 Octets)
>>                                 Address_Type (1 Octet)
>>                                 Interface Index (4 Octets)
>>
>>         This command is used to connect to establish a network connection
>>         to a remote BTLE node. A pre-requisite is that LE is supported
>>         by the controller, otherwise this command will return a
>>         "not supported" response.
>>
>>         Possible values for the Address_Type parameter:
>>                 0       Reserved
>>                 1       LE Public
>>                 2       LE Random
>>
>>         This command generates a Command Complete event on success
>>         or failure.
>>
>>         Possible errors:        Busy
>>                                 Refused
>>                                 Invalid Parameters
>>                                 Not Supported
>>                                 Invalid Index
>>                                 Already Connected
>>
>> So far I understand, this is "make the connect command per device", the
>> device in this case is not a "struct net_device" it's "struct hci_dev".
>>
>> In the "possible" future case to having multiple interfaces you cannot
>> say on which interface this connect should be done. With "connect" I
>> mean the l2cap_chan_connect call.
> 
> And why would we want more than one one net_dev per hci_dev, the
> rfc7668 only talks about star topology:
> 
> https://tools.ietf.org/html/rfc7668#section-2.2
> 
> Bluetooth currently don't have support for a mesh topology, and anyway
> I don't think the userspace would need to be involved in the selection
> of the netdev since this is beyond the Bluetooth interface. In PAN for
> example we end up doing one netdev per connection and the which the
> userspace managing using a bridge.
> 

I am sure that there will be some use-case with namespaces some day.

In general:

In my opinion, having hci_dev as input parameter and as output the
interface will do something hidden behind which you can't control.
The Output return value "interface" will indicate on which interface
the operation was operated on. For me it's something behind which you
cannot control as user. E.g. When having multiple interfaces. On 1:1
mapping, I agree this should work.

But why not simple drop the interface idx from the Output and move it to
Input?

         Command Code:           0x0043
         Controller Index:       <controller id>
         Command Parameters:     Address (6 Octets)
                                 Address_Type (1 Octet)
                                 Interface Index (4 Octets)
         Return Parameters:      Address (6 Octets)
                                 Address_Type (1 Octet)

If we get some way that the 6LoWPAN interface can be created before and
not when doing the first "connect command" then the "Controller Index"
would be unnecessary because you would give that information when
creating an interface.

>> btw:
>> Also I don't know what's now the parameters "Address/Address_Type"
>> source/destination? Is the Input of them equal to the output?
> 
> That is always the destination address, and we needs its type to know
> if it is public or private to act accordingly.
> 

okay.

- Alex

  parent reply	other threads:[~2016-07-19 21:24 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-11 19:50 [RFC bluetooth-next 00/20] bluetooth: rework 6lowpan implementation Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 01/20] 6lowpan: ndisc: don't remove short address Alexander Aring
2016-07-19 13:19   ` Michael Richardson
2016-07-19 18:03     ` Alexander Aring
2016-07-21  6:37       ` Alexander Aring
2016-07-21  7:10         ` Alexander Aring
2016-07-21  8:44       ` Michael Richardson
2016-07-11 19:50 ` [RFC bluetooth-next 02/20] nhc: add TODO for nhc work Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 03/20] ieee802154: 6lowpan: remove headroom check Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 04/20] ieee802154: 6lowpan: move skb cb BUILD_BUG_ON check Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 05/20] 6lowpan: remove LOWPAN_IPHC_MAX_HEADER_LEN Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 06/20] 6lowpan: hold netdev while unregister Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 07/20] 6lowpan: introduce generic default naming Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 08/20] 6lowpan: move rx defines to generic Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 09/20] bluetooth: introduce l2cap_hdev_chan_connect Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 10/20] bluetooth: add hci dev notifier Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 11/20] bluetooth: export functions and variables Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 12/20] 6lowpan: bluetooth: remove implementation Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 13/20] ieee802154: 6lowpan: move header create to 6lowpan Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 14/20] 6lowpan: move dev_init to generic Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 15/20] 6lowpan: iphc: override l2 packet information Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 16/20] ipv6: addrconf: fix 48 bit 6lowpan autoconfiguration Alexander Aring
2016-07-12 20:16   ` Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 17/20] 6lowpan: iphc: add handling for btle Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 18/20] 6lowpan: move multicast flags to generic Alexander Aring
2016-07-12 20:34   ` Alexander Aring
2016-07-13 11:15     ` Jukka Rissanen
2016-07-14  8:21       ` Alexander Aring
2016-07-14  8:36         ` Alexander Aring
2016-07-19 14:51       ` Michael Richardson
2016-07-19 18:20         ` Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 19/20] 6lowpan: delete addr_len handling " Alexander Aring
2016-07-11 19:50 ` [RFC bluetooth-next 20/20] 6lowpan: bluetooth: add new implementation Alexander Aring
2016-07-12 21:19   ` Alexander Aring
2016-07-14 11:40     ` Luiz Augusto von Dentz
2016-07-17 15:52       ` Alexander Aring
2016-07-18  8:59         ` Luiz Augusto von Dentz
2016-07-18 21:52           ` Alexander Aring
2016-07-19  5:45             ` Johan Hedberg
2016-07-19  8:23               ` Luiz Augusto von Dentz
2016-07-19 21:05                 ` Alexander Aring
2016-07-20  7:39                   ` Johan Hedberg
2016-07-20  8:14                     ` Luiz Augusto von Dentz
2016-07-20 10:22                     ` Marcel Holtmann
2016-07-19  8:49             ` Luiz Augusto von Dentz
2016-07-19 14:48               ` Michael Richardson
2016-07-19 21:24               ` Alexander Aring [this message]
2016-07-12 14:51 ` [RFC bluetooth-next 00/20] bluetooth: rework 6lowpan implementation Luiz Augusto von Dentz
2016-07-12 18:35   ` Alexander Aring
2016-07-13  9:12     ` Alexander Aring
2016-07-13 10:13       ` Luiz Augusto von Dentz
2016-07-13 10:56         ` Alexander Aring
2016-07-14 12:02           ` Luiz Augusto von Dentz
2016-07-19 12:58 ` Michael Richardson
2016-08-05  7:15 ` Bakke, Glenn Ruben
2016-08-05  9:18   ` 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=304c7949-08aa-5ada-a37e-e12b9ab83a2c@pengutronix.de \
    --to=aar@pengutronix.de \
    --cc=Patrik.Flykt@linux.intel.com \
    --cc=jukka.rissanen@linux.intel.com \
    --cc=kaspar@schleiser.de \
    --cc=kernel@pengutronix.de \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-wpan@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.