Re: hcidump / avtest issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>> >>> I'm having issues where hcidump seems to be losing packets.  I'm
>>>> >>> trying to collect traces of avtest running.  Avtest properly prints
>>>> >>> out that it sent a packet and received a reply, but I don't always see
>>>> >>> it in hcidump.  Seems if I run avtest a lot successively, it does show
>>>> >>> up.  I'm running a 2.6.33.20 kernel with hcidump-2.3.  Let me know if
>>>> >>> the kernel is just too ancient, but I'd like to know if others have
>>>> >>> seen this type of issue.
>>>> >>
>>>> >> actually hcidump can not loose any packets. Write them into a file in
>>>> >> BTSnoop format and double check with Wireshark or the Frontline Viewer.
>>>> >>
>>>> >> The kernel is always sending the exact copy to the hcidump sockets and
>>>> >> thus there is no way you loose packets. The only explanation would be
>>>> >> that L2CAP socket has a bug and swallows it. Have you checked that
>>>> >> avtest actually reports L2CAP send errors.
>>>> >
>>>> > I was saving in btsnoop and looking at it in wireshark.  And verified
>>>> > that the other side got the command by enabling debug mode on
>>>> > bluetoothd.  But now I see the packet is sort of there, but it's
>>>> > malformed!
>>>> >
>>>> > Bad:
>>>> > < 02 01 20 07 00 03 00 40 00 00 06 04
>>>> >> 02 01 20 07 00 03 00 40 00 03 06 31
>>>> >
>>>> > Good:
>>>> > < 02 01 20 07 00 03 00 42 00 00 06 04
>>>> >> 02 01 20 07 00 03 00 42 00 03 06 31
>>>> >
>>>> > Somehow one byte is wrong (40 bad, 42 good).  Any ideas on that?  Let
>>>> > me know if you'd like the logs, but I verified the --raw output of
>>>> > hcidump had the same issue.
>>>>
>>>> BTW, I would say the issue exists more when SDP is going on (as when I
>>>> run the test a lot before a disconnect, it starts working -- no more
>>>> SDP later on).  And we can see that it classified the packet as SDP,
>>>> not AVDTP.  I'm tracking the hcidump code now, not entirely sure how
>>>> data goes into one or the other.
>>>
>>> the hcidump code is pure raw data. It is the same data that goes to the
>>> driver. Trust me here, that is how the kernel works, it clones the skb
>>> before sending to the driver and sends a copy back to hcidump. So you
>>> will not find a bug in the hcidump raw data.
>>>
>>> The only way something can go wrong if L2CAP has an issue. Are you using
>>> L2CAP basic modem or enhanced retransmission?
>>
>> Looks like ERTM was added in 2.6.36, and I didn't backport it, so must be basic.
>
> Unless it was added earlier.  I'm really not familiar enough.  Just
> running avtest.c, sending invalid commands!

OK, finally figured it out.  Wireshark was at fault [1].  The fix has
been in Wireshark trunk for a while, but their latest stable build
doesn't have that.  Basically, it was picking the last packet for a
given CID.  If I ran it once, the AVDTP packets went first, followed
by SDP so everything was parsed as SDP.

[1] https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6619
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux