Skip to content

Commit

Permalink
Bluetooth: Improve data packing in SAR mode
Browse files Browse the repository at this point in the history
There is no need to decrease pdu size with L2CAP SDU lenght in Start
L2CAP SDU frame. Start packtet is just 2 bytes longer as specified and
we can keep payload as long as possible.

When testing SAR L2CAP against PTS, L2CAP channel is usually configured
in that way, that SDU = MPS * 3. PTS expets then 3 I-Frames from IUT: Start,
Continuation and End frame.

Without this fix, we sent 4 I-Frames. We could pass a test by using -b
option in l2test and send just two bytes less than SDU length. With this
patch no need to use -b option.

Signed-off-by: Lukasz Rymanowski <lukasz.rymanowski@tieto.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Lukasz Rymanowski authored and Marcel Holtmann committed Aug 14, 2014
1 parent 3bbaf81 commit 069cb27
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions net/bluetooth/l2cap_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2275,7 +2275,6 @@ static int l2cap_segment_sdu(struct l2cap_chan *chan,
} else {
sar = L2CAP_SAR_START;
sdu_len = len;
pdu_len -= L2CAP_SDULEN_SIZE;
}

while (len > 0) {
Expand All @@ -2290,10 +2289,8 @@ static int l2cap_segment_sdu(struct l2cap_chan *chan,
__skb_queue_tail(seg_queue, skb);

len -= pdu_len;
if (sdu_len) {
if (sdu_len)
sdu_len = 0;
pdu_len += L2CAP_SDULEN_SIZE;
}

if (len <= pdu_len) {
sar = L2CAP_SAR_END;
Expand Down

0 comments on commit 069cb27

Please sign in to comment.