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 Mon, Sep 19, 2011 at 02:13:30PM -0300, Gustavo Padovan wrote:
> > > * 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));
> 
> Then do this in two parts:
> 
> 		size = min_t(...)
> 		rfc.max_pdu_size = cpu_to_le16(size);

This can be done, is this the only comment?

Best regards 
Andrei Emeltchenko 
--
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