[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [bluetooth-dev] Bug fix in rfcomm.c
Hi,
this problem is known and will be fixed, until then a new tar ball with a temp fix for this including lots of other bugfixes will hopefully be released today. (we have lots of people on vacation and until next week 'support' will be a little slow...)
brgds
Mattias Ågren,
AXIS Communications AB
> -----Original Message-----
> From: David LIBAULT [mailto:dli@xxxxxxx.fr]
> Sent: Tuesday, July 25, 2000 4:02 PM
> To: bluetooth-dev@xxxxxxx.com
> Subject: [bluetooth-dev] Bug fix in rfcomm.c
>
>
> Hi all,
>
> I am using bluetooth_20000607.tgz from developer.axis.com. I have
> modified the test_bench.c so that it works with the rfcomm stack api
> (probably test_bench.c has not been updated yet...), and
> built the stack
> in user mode using hci emulation.
> Everything builds properly.
>
> One test_bench works as a server on /dev/ttyS0 and another
> one works as
> a client on /dev/ttyS1. These two ports are linked together
> using a null
> modem cable.
> The client tries to setup an rfcomm channel and send 1024
> bytes through
> that channel.
>
> After the L2CAP and RFCOMM connections open, the client tries to send
> the 1024 bytes packet. This is the end of the debug output from the
> client :
>
> Sending 1024 bytes of data
> RFCOMM rfcomm_send_data: Will try to send 1024 bytes
> RFCOMM rfcomm_send_data 668 bytes
> L2CAP l2cap_send_data : hdl : 0, rcid : 64, len:673
> RFCOMM rfcomm_send_data 356 bytes
> L2CAP l2cap_send_data : hdl : 0, rcid : 64, len:361
> L2CAP l2cap_receive_data : 10 bytes, hci_handle : 0
> L2CAP l2cap_receive_data : New frame len:6 cid:1
> L2CAP l2cap_receive_data : Signal data !
> L2CAP signal_handler : received 6 bytes first cmd->len=2
> L2CAP signal_handler : Single command
> L2CAP signal_handler : got l2cap packet (2 bytes) with ID : 2
> L2CAP signal_handler : Got response : 0x1 id:2
> L2CAP signal_handler : Got command reject - L2CAP Not
> recognized
> cmd reject reason
>
> The server complains because the MTU has been exceeded :
>
> L2CAP l2cap_receive_data : 677 bytes, hci_handle : 0
> L2CAP get_lcon : lcid 64 con_list.count = 1
> L2CAP l2cap_cmdrej : Signalling MTU exceeded
> L2CAP l2cap_receive_data : 339 bytes, hci_handle : 0
> L2CAP l2cap_receive_data : New frame len:361 cid:64
> L2CAP l2cap_receive_data : 365 bytes, hci_handle : 0
> L2CAP get_lcon : lcid 64 con_list.count = 1
> RFCOMM rfcomm_receive_data: 361 bytes, our cid is 64
> RFCOMM rfcomm_receive_data: Long UIH packet received
> RFCOMM rfcomm_receive_data: long packet length 164
> RFCOMM crc_check: check_sum = 0x70
> RFCOMM crc_check : calc fcs 0xcf
> RFCOMM crc_check: CRC OK :-)
> RFCOMM rfcomm_receive_data : UIH on serverchannel 0
> RFCOMM parse_mcc: Received Remote line status
>
> Note that the RFCOMM_MTU is defined as 672.
> It looks like the segmentation of packets does not work properly...
> In line 890 of rfcomm.c the calculation of the size of the packet
> segment does not look quit robust yet (see the FIXME comment).
>
> These are my questions :
>
> - Has anyone already experienced this kind of problem in the same
> conditions and/or in other conditions ?
> - Has anyone fixed the problem already ?
> - Can I just fix the problem and distribute a patch ?
>
> Thank you all.
>
> David.
>