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 <[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel