Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Jul 2005 13:11:57 -0700
From:      Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
To:        oliver.ruiz-dorantes@yellowtab.com
Cc:        freebsd-bluetooth@freebsd.org
Subject:   Re: segmented ACLs..
Message-ID:  <42EA8D8D.40407@savvis.net>
In-Reply-To: <20050729185029.15220.3@@vodafone.es>
References:  <20050719031223.GA20371@alzatex.com>	<42DC75F3.2000802@savvis.net> <20050729092655.GA9887@alzatex.com>	<42EA4979.1000507@savvis.net> <20050729185029.15220.3@@vodafone.es>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42EA8D8D.40407>