Bluetooth: Use tx window from config response for ack timing
authorMat Martineau <mathewm@codeaurora.org>
Tue, 10 Jul 2012 12:47:07 +0000 (05:47 -0700)
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>
Sun, 15 Jul 2012 15:18:29 +0000 (12:18 -0300)
commitc20f8e35ca8b0583323d310ec63a0f0d17cfdcf5
treece775fec3821cc1cf9548b51ef10c980fe33c7e5
parenta0dfe0ab6bf194805ce9d6a2dc81efab7a4a7fda
Bluetooth: Use tx window from config response for ack timing

This change addresses an L2CAP ERTM throughput problem when a remote
device does not fully utilize the available transmit window.

The L2CAP ERTM transmit window size determines the maximum number of
unacked frames that may be outstanding at any time. It is configured
separately for each direction of an ERTM connection. Each side sends a
configuration request with a tx_win field indicating how many unacked
frames it is capable of receiving before sending an ack. The
configuration response's tx_win field shows how many frames the
transmitter will actually send before waiting for an ack.

It's important to trace both the actual transmit window (to check for
validity of incoming frames) and the number of frames that the
transmitter will send before waiting (to send acks at the appropriate
time). Now there are separate tx_win and ack_win values. ack_win is
updated based on configuration responses, and is used to determine
when acks are sent.

Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
include/net/bluetooth/l2cap.h
net/bluetooth/l2cap_core.c