Hi,

this will be discussed tomorrow at the T2TRG meeting preceeding the RIOT
summit [1]. Will anyone of you who discussed this be there? The premise is
that 6LoWPAN was designed to run on even on a minimized, non-compliant IEEE
802.15.4, so the question is: other than PAN bootstrapping and MAC: is this
really required for a minimal network set-up? (Answer in the session,
rather than in this thread are preferred, but I'll try to carry any posts
here into the f2f discussion ;-)).

Best,
Martine

[1] https://github.com/t2trg/2017-09-berlin#agenda

2017-09-21 19:11 GMT+02:00 Thomas Eichinger <tho...@riot-os.org>:

> Hi Joakim,
>
> That was what I pretty much meant before I'm sorry for not expressing
> this clear enough.
>
> Seems we reached common ground here.
>
> Best,
> Thomas
>
>
> On 20 Sep 2017, at 13:51 PDT(-0700), Joakim Nohlgård wrote:
>
> Hi again,
>> Perhaps it would make sense to split it in two? One low level part
>> which manages the duty cycling and wake scheduling, while the PAN
>> management part (I think it is called MAC services in the 802.15.4
>> standard) would run as a higher layer on top of it.
>>
>> /Joakim
>>
>> On Wed, Sep 20, 2017 at 10:37 PM, Thomas Eichinger <tho...@riot-os.org>
>> wrote:
>>
>>> Hi Joakim,
>>>
>>> Thanks for sharing your point of view.
>>>
>>> Personally I think it complicates MAC protocol implementations when they
>>> somehow have to accommodate 802.15.4 functionality and deal with e.g.
>>> starting and maintaining the PAN and I'd expect we will have to use more
>>> #ifdefs.
>>>
>>> In my opinion runtime functionality as described in 6.3 and following of
>>> the standard also doesn't need to run with the same priority as the
>>> actual
>>> MAC protocol.
>>>
>>> Your approach would however benefit upper layers I think as the interface
>>> wouldn't have to change.
>>>
>>> In the end I'm fine with whatever works and covers our requirements.
>>>
>>> Best, Thomas
>>>
>>>
>>> On 20 Sep 2017, at 1:11 PDT(-0700), Joakim Nohlgård wrote:
>>>
>>> Hi,
>>>> I have recently been digging around the gnrc_netdev code as well. I
>>>> think that adding support for other frame types and logic for sending
>>>> these frames will definitely become a mess if the 802.15.4 code is not
>>>> decoupled from the netdev code. Especially if someone would like to
>>>> add advanced features like 802.15.4e TSCH, which requires version 2
>>>> framing and a number of special MAC header fields. I don't think the
>>>> 802.15.4 layer needs to be in its own thread though, it should be
>>>> enough to separate the framing functionality from the send/recv code
>>>> and let the MAC layer handle it internally, and keep the 802.15.4
>>>> layer in the same thread as the netdev driver, like gnrc_netdev does
>>>> today.
>>>>
>>>> /Joakim
>>>>
>>>> On Wed, Sep 20, 2017 at 12:16 AM, Thomas Eichinger <tho...@riot-os.org>
>>>> wrote:
>>>>
>>>>>
>>>>> Hi Oleg!
>>>>>
>>>>> On 19 Sep 2017, at 13:24 PDT(-0700), Oleg Hahm wrote:
>>>>>
>>>>> On Sun, Sep 17, 2017 at 02:37:39PM -0700, Thomas Eichinger wrote:
>>>>>>
>>>>>> A while ago I worked on adding support for MAC commands and procedures
>>>>>>> the
>>>>>>> standard describes like channel scanning and automatic association
>>>>>>> of a
>>>>>>> device with a coordinator.
>>>>>>> Personally I think those are nifty features to provide, the reality
>>>>>>> check
>>>>>>> the last two days showed though that it'd need some non-trivial
>>>>>>> refactoring
>>>>>>> of the existing 15.4 code to not end up in #ifdef hell.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Can you elaborate a little bit on this part? I would assume that being
>>>>>> compatible with other 802.15.4 implementations requires run-time
>>>>>> flexibility,
>>>>>> i.e., react properly to optional features implemented by other
>>>>>> 802.15.4
>>>>>> devices. Or were you proposing to have a minimal
>>>>>> non-standard-compliant
>>>>>> version _and_ standard-compliant version intermingled, sharing commmon
>>>>>> code
>>>>>> through preprocessor directives?
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Admittedly the "#ifdef hell" was a bit polemic and I didn't intend to
>>>>> propose
>>>>> offering a non-standard-compliant version. ;)
>>>>>
>>>>> Right now RIOT is very much streamlined to send and receive 802.15.4
>>>>> data
>>>>> and
>>>>> ACK frames. The nontrivial refactoring I referred to would have to
>>>>> break
>>>>> this.
>>>>>
>>>>> On the receiving side I see the possibility to introduce an other
>>>>> nettype
>>>>> like
>>>>> GNRC_NETTYPE_802154 set by the corresponding frame type and the actual
>>>>> runtime
>>>>> logic would basically be in parallel of sixlowpan threads,
>>>>> hierarchically.
>>>>> (changing channels and hardware addresses, actively/passively scanning
>>>>> for
>>>>> coordinators...)
>>>>> That'd be at least my approach.
>>>>>
>>>>> On the sending side, however, the 15.4 header currently gets crafted in
>>>>> the
>>>>> netdev code and set to data frames. We'd have to take that out and let
>>>>> the
>>>>> upper layers  define the frame type, or at least overwrite it. There
>>>>> will
>>>>> be
>>>>> more flags or header fields that will have to get configurable.
>>>>>
>>>>> Do others see a better approach?
>>>>>
>>>>> So, instead of having a minimal non-standard-compliant version I'd
>>>>> rather
>>>>> progress to a minimal standard-compliant version with the inevitable
>>>>> increase
>>>>> in code size. From there we can take it how far we want and make it
>>>>> configurable
>>>>> i.e. supporting IEs and use 802.15.9 to support key management etc. The
>>>>> sky
>>>>> is
>>>>> the limit.
>>>>> (Or as a German'd say "With sauce and spicy!")
>>>>>
>>>>> Does this somehow answer your question? Let me know if I missed it.
>>>>>
>>>>> Best, Thomas
>>>>>
>>>>> p.s.: Writing this it seems easier to do actually. Good we talked about
>>>>> it.
>>>>> :)
>>>>>
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> devel@riot-os.org
>>>>> https://lists.riot-os.org/mailman/listinfo/devel
>>>>>
>>>>
>>>> _______________________________________________
>>>> devel mailing list
>>>> devel@riot-os.org
>>>> https://lists.riot-os.org/mailman/listinfo/devel
>>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> devel@riot-os.org
>>> https://lists.riot-os.org/mailman/listinfo/devel
>>>
>> _______________________________________________
>> devel mailing list
>> devel@riot-os.org
>> https://lists.riot-os.org/mailman/listinfo/devel
>>
> _______________________________________________
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
>
_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to