Hi,

okay I will try to answer all question in this mail.

On Mon, Feb 17, 2014 at 04:32:48PM +0530, Varka Bhadram wrote:
> This is the packet i received from TinyOS node :
> 
> 41 c8 00 22 00 ff ff c6 0f 7c 50 45 6d 12 00 6b 3b 00 40 e0 3a 02 85 00 12 be 
> 00
> 00 00 00 01 02 c6 0f 7c 50 45 6d 12 00 00 00 00 00 00 00 16 ec
> 
> I put some debug messges in the kernel the results are as follows:
> 
> [   65.724839] Bhadra : ieee802154_rx_irqsafe
> [   65.724890] Bhadra : mac802154_subif_rx
> [   65.724948] Bhadra : lowpan_recv
> [   65.724964] Bhadra : lowpan_process_data
> [   65.724995] Bhadra : lowpan_give_skb_to_devices
> [   65.725010] pkt->type : 00, pkt->protocol: dd86
> [   65.725028] Bhadra : lowpan_give_skb_to_devices : netif_rx
> 
> 
> those are the function names in the kernel. With the protocol and packet type 
> ,
> the skb is handed over to the netif_rx() in lowpan_give_skb_to devices()
> function , but it is not reaching to ip6_input_finish() function.
> 
> What can be the problem. ? I am working on 3.12 kernel.
> 
What I can see from your trace is that you calling
"lowpan_give_skb_to_devices" right after "lowpan_process_data".

This can have only one reason. Your TinyOS don't make any IPv6
compression, because your IPv6 packet fits into one PDU. (Then we have
the special dispatch value of LOWPAN_DISPATCH_IPV6).

You get in this branch [1]. And I saw (yes, I already noticed that) there
is something wrong with the memory management.

We make a "kfree_skb(local_skb);" in this branch and not in the others,
but this can't be working. Please try to following patch (which should
included in my rework of fragmentation patches):

diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index ff41b4d..383f0a4 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c
@@ -1332,7 +1332,6 @@ static int lowpan_rcv(struct sk_buff *skb, struct 
net_device *dev,
 
                lowpan_give_skb_to_devices(local_skb);
 
-               kfree_skb(local_skb);
                kfree_skb(skb);
        } else {
                switch (skb->data[0] & 0xe0) {

I think local_skb is freed a little bit too early, and then you transmit some 
garbage to
ipv6. Please reply if it works or not for you.

> 
> 
> 
> On February 17, 2014 at 3:53 PM Varka Bhadram <var...@cdac.in> wrote:
> 
> >  Hai..
> > 
> >  May i know the status of 6LoWPAN implementation in the kernel.. Is it
> > implemented according to RFC6282/4944 ?
> > 
> > 
RFC6282 is most implemented except context based address compression.

RFC4944 which also describes fragmentation is currently not rfc
complaint. I have patches for this to make this rfc complaint.

RFC4944 describes lot of other things like a 6LoWPAN mesh routing. (But
this kind of routing have no partical relevance, means the most people
use RPL as routing protocol (That's my point of view, can somebody
confirm this))?

> >  Right now i am testing integration of 6LoWPAN with TinyOS . When i received
> > the packet ,it is reaching upto 6lowpan layer but not reaching to IP Layer.
> > 
I never used the 6LoWPAN TinyOS. I use contiki on my side to test
something with another 6LoWPAN Stack. Maybe there are some bugs in
6LoWPAN of TinyOS?

[1] 
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/ieee802154/6lowpan.c?id=refs/tags/v3.12#n1316


- Alex

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&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