Motorola E1000 and obexapp 1.4.4 in server mode

Maksim Yevmenkin maksim.yevmenkin at savvis.net
Mon Jan 10 14:22:45 PST 2005


Jes,

>> can i ask you to try something else? basically its the same change
>> as before, but you need to adjust a couple more variables.
>> 
>> 1) edit /sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h file
>> and change
>> 
>> #define RFCOMM_DEFAULT_MTU              127
>> 
>> to
>> 
>> #define RFCOMM_DEFAULT_MTU              667
>> 
>> 
>> 2) edit /sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h file
>> and change
>> 
>> #define NG_BTSOCKET_RFCOMM_SENDSPACE \ (RFCOMM_MAX_CREDITS *
>> RFCOMM_DEFAULT_MTU * 10) #define NG_BTSOCKET_RFCOMM_RECVSPACE \ 
>> (RFCOMM_MAX_CREDITS * RFCOMM_DEFAULT_MTU * 10)
>> 
>> to
>> 
>> #define NG_BTSOCKET_RFCOMM_SENDSPACE \ (RFCOMM_MAX_CREDITS *
>> RFCOMM_DEFAULT_MTU * 2) #define NG_BTSOCKET_RFCOMM_RECVSPACE \ 
>> (RFCOMM_MAX_CREDITS * RFCOMM_DEFAULT_MTU * 2)
>> 
>> 
>> 3) re-compile ng_btsocket module, i.e.
>> 
>> # cd /sys/modules/netgraph/bluetooth/socket/ # make depend # make #
>> make install
>> 
>> 
>> 4) reboot and try again
> 
> 
> WoW !  now I get everything working ... Those changes are good,
> tested with both motorola e1000 and sony ericsson z600, obexapp in
> both server and client mode and rfcomm_pppd.

thanks for trying this. i'm glad it works for you now. once again it 
sort of points finger back at the phone. i did not change any logic in 
my code. all i did is changed default mtu on *rfcomm* sessions to match 
default *l2cap* mtu.

btw, rfcomm spec says default rfcomm mtu should be 127 bytes. i still 
did not find anything in the spec that says otherwise. right now i'm 
fairly convinced that there is something wrong in l2cap/rfcomm channel 
configuration process. what i do not know is who is at fault here. i 
need to have access to the phone in question. anyone willing to donate 
phone/money? :)

just for the record here how the fix works

- default l2cap mtu is 672 bytes
- rfcomm packet header is 5 bytes

so, assuming one rfcomm frame must fit entirely into one l2cap packet we 
get 672 - 5 = 667 default rfcomm mtu.

the second change it just to ensure we do not reserve too much memory 
for socket's send and receive buffers.

> Thanks a lot Max.

thank you for your time and patience.

max


More information about the freebsd-bluetooth mailing list