segmented ACLs..
Maksim Yevmenkin
maksim.yevmenkin at savvis.net
Fri Jul 29 20:12:12 GMT 2005
Oliver,
> Well i hope to help as much as I am asking but in same file, func:
>
> ng_l2cap_lp_send()
>
> As i see is done the creation of the L2CAP packet and its segmentation in ACL
> packets. Afterwards they are linked in the connection tx_pkt chain.
correct. you are not allowed to mix segments from other packets in
bluetooth. basically, once you start sending the segmented acl data
packet you must send it all in order. tx_pkt chain is the current l2cap
packet that will be sent as segmented acl packet (per ACL connection).
> So, Somewhere, a kernel_thread or some entity should check the whole chain
> and send it down to the HCI one by one... Where can I find this?
you are probably looking for ng_l2cap_lp_deliver(). if tx_pkt is not
NULL then we are not allowed to start new transfer and must continue to
send ACL packet segments (but only up to max. number of ACL packets
device can hold in its buffers). if tx_pkt is NULL then we should get
next l2cap command from the queue (per ACL connection), chop it into
segments and send it down to hci layer
thanks,
max
More information about the freebsd-bluetooth
mailing list