Re: [PATCHv1 5/5] Bluetooth: EWS: prevent unneeded fragmentation in l2cap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Gustavo,

On Wed, Sep 14, 2011 at 12:51:04AM -0300, Gustavo Padovan wrote:
> Hi Andrei,
> 
> * Emeltchenko Andrei <Andrei.Emeltchenko.news@xxxxxxxxx> [2011-09-07 17:05:14 +0300]:
> 
> > From: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx>
> > 
> > Calculate pdu length before creating I-frame. Otherwise if
> > conn->mtu - (headers) < remote_mps we get fragmented packets in
> > create_iframe_pdu function.
> 
> You might check the way we set the remote_mps, it seems you are not taking
> that in account.

You are right, I was confused by magic "rfc.max_pdu_size =
cpu_to_le16(chan->conn->mtu - 10)"

I will send new patch with fixes like the one below:

-               rfc.max_pdu_size    = cpu_to_le16(L2CAP_DEFAULT_MAX_PDU_SIZE);
-               if (L2CAP_DEFAULT_MAX_PDU_SIZE > chan->conn->mtu - 10)
-                       rfc.max_pdu_size = cpu_to_le16(chan->conn->mtu - 10);
+
+               rfc.max_pdu_size = cpu_to_le16(min_t(u16,
+                                               L2CAP_DEFAULT_MAX_PDU_SIZE,
+                                               chan->conn->mtu -
+                                               L2CAP_EXTENDED_HDR_SIZE -
+                                               L2CAP_SDULEN_SIZE -
+                                               L2CAP_FCS_SIZE));

Regards,
Andrei
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux