Hi Alex,

On 11/09/14 11:33, Alexander Aring wrote:
> On Thu, Sep 11, 2014 at 11:09:26AM +0100, Martin Townsend wrote:
>> Hi Alex,
>>
>> Reposting to everyone this time :)
>>
> ok
> ...
>>>>> I know this issue and we should not do that in this way.
>>>>>
>>>>> Why?
>>>>>
>>>>> Because this works only for fragmentation with IPHC, for example if we
>>>>> support mesh or Broadcast or HC1 compression. We should call after
>>>>> successfully reassembled "means lowpan_frag_rcv returns 1" the lowpan_rcv 
>>>>> again.
>>>>> So this is a recursion and we don't should use recursion to much, but it
>>>>> should only be one recursion, so I think that's okay. :-)
>>>> The spec says that the headers of the 6LoWPAN frame must fit in the first 
>>>> fragment.  You need to process these headers to get to the fragmentation 
>>>> header, this is why the code is this way.
>>> yes this is for IPHC dispatch values your code works, I don't want to
>>> say that it doesn't work. Because fragmentation is something to
>>> reconstruct the full payload, we should first evaluate the fragmentation
>>> dispatches and then all others. To be sure that we can use fragmentation
>>> on any dispatch value which is not the fragmentation dispatch values.
>>> :-)
>>>
>>> Simple move it before nalp check. Maybe somebody fragment something and
>>> the dispatch value after fragmentation is nalp. I know it should catch
>>> the default branch above, but it's a little bit cleaner. I hope you are
>>> in the same opinion.
>> I think it should stay where it is.
>> From RFC 4944
>> NALP: Specifies that the following bits are not a part of the LoWPAN
>> encapsulation, and any LoWPAN node that encounters a dispatch
>> value of 00xxxxxx shall discard the packet. Other non-LoWPAN
>> protocols that wish to coexist with LoWPAN nodes should include a
>> byte matching this pattern immediately following the 802.15.4.
>> header.
>>
>> The last sentence implies that this NALP code is expected as the first byte 
>> following the MAC Header.  If a NALP is encountered after processing the 
>> 6LoWPAN header stack then it will be treated as an unknown compression type.
>>
> yes. But the issue is more a reassembled fragmentet 6LoWPAN packet have
> a dispatch value. This dispatch value should not NALP, but maybe
> somebody did it and then we should make the same code like what we do
> for NALP dispatches without fragmentation.
A NALP dispatch byte should be the first byte in the MAC payload that allows 
other protocols to co-exist with 6LoWPAN.  I think Jennet use this to insert 
their own protocol between 802.15.4 and 6LoWPAN.  So we have to check for this 
before we do anything.  Having a NALP byte after re-assembly isn't valid and 
should be treated as an unknown compression type in my opinion.

> The same for all other dispatches. The current code makes this with IPHC
> and IPv6 dispatch. And I really don't know is that a MESH or BC0 can
> also be fragmented because we have some worst cases in mac header,
> etc... sizes.
>
> - Alex

- Martin.

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel

Reply via email to