On Wed, Feb 19, 2014 at 02:46:15PM +0530, Varka Bhadram wrote:
> Hai Alex,
> 
> 
> On February 17, 2014 at 11:15 PM Alexander Aring <alex.ar...@gmail.com> wrote:
> > 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.
> 
> this is not working properly... Sometimes it is not reaching to IP layer
> sometimes its working.
> 
> I am not able understand the problem.. Where is the problem...
>
Can you instrument some code with pr_debug for the dispatch value and
and send the trace with #define DEBUG?

- 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