linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gustavo Padovan <gustavo@padovan.org>
To: Mat Martineau <mathewm@codeaurora.org>
Cc: linux-bluetooth@vger.kernel.org, marcel@holtmann.org,
	pkrystad@codeaurora.org, andrei.emeltchenko.news@gmail.com
Subject: Re: [RFCv2 4/8] Bluetooth: Fix a redundant and problematic incoming MTU check
Date: Fri, 27 Apr 2012 21:18:19 -0300	[thread overview]
Message-ID: <20120428001819.GA2917@joana> (raw)
In-Reply-To: <1335570655-30878-5-git-send-email-mathewm@codeaurora.org>

Hi Mat,

* Mat Martineau <mathewm@codeaurora.org> [2012-04-27 16:50:51 -0700]:

> The L2CAP MTU for incoming data is verified differently depending on
> the L2CAP mode, so the check is best performed in a mode-specific
> context.  Checking the incoming MTU before HCI fragment reassembly is
> a layer violation and assumes all bytes after the standard L2CAP
> header are L2CAP data.
> 
> This approadch causes issues with unsegmented ERTM or streaming mode
> frames, where there are additional enhanced or extended headers before
> the data payload and possible FCS bytes after the data payload.  A
> valid frame could be as many as 10 bytes larger than the MTU.
> 
> Removing this code is the best fix, because the MTU is checked later
> on for all L2CAP data frames (connectionless, basic, ERTM, and
> streaming).  This also gets rid of outdated locking (socket instead of
> l2cap_chan) and an extra lookup of the channel ID.

I don't think we can remove this code from here. This check is different
from the ones you are talking, those are l2cap packets, here we are still
dealing with ACL fragments. This check is there to avoid accept a first
ACL packet that is too big. See 8979481328d. 

One possible solution is to add a slack value to the check, so we can
fit those 10+ bytes packets in it.

	Gustavo

  reply	other threads:[~2012-04-28  0:18 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-27 23:50 [RFCv2 0/8] ERTM state machine changes, part 2 Mat Martineau
2012-04-27 23:50 ` [RFCv2 1/8] Bluetooth: Initialize new l2cap_chan structure members Mat Martineau
2012-04-27 23:50 ` [RFCv2 2/8] Bluetooth: Remove unused function Mat Martineau
2012-04-27 23:50 ` [RFCv2 3/8] Bluetooth: Make better use of l2cap_chan reference counting Mat Martineau
2012-04-29 20:25   ` Gustavo Padovan
2012-04-27 23:50 ` [RFCv2 4/8] Bluetooth: Fix a redundant and problematic incoming MTU check Mat Martineau
2012-04-28  0:18   ` Gustavo Padovan [this message]
2012-04-30 21:04     ` Mat Martineau
2012-04-30 21:31       ` Ulisses Furquim
2012-04-27 23:50 ` [RFCv2 5/8] Bluetooth: Restore locking semantics when looking up L2CAP channels Mat Martineau
2012-04-29 20:25   ` Gustavo Padovan
2012-04-30 15:02     ` Mat Martineau
2012-04-27 23:50 ` [RFCv2 6/8] Bluetooth: Lock the L2CAP channel when sending Mat Martineau
2012-04-28  0:30   ` Gustavo Padovan
2012-04-30 15:27     ` Mat Martineau
2012-04-27 23:50 ` [RFCv2 7/8] Bluetooth: Refactor L2CAP ERTM and streaming transmit segmentation Mat Martineau
2012-04-27 23:50 ` [RFCv2 8/8] Bluetooth: Add Code Aurora Forum copyright Mat Martineau
2012-04-29 20:26   ` Gustavo Padovan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120428001819.GA2917@joana \
    --to=gustavo@padovan.org \
    --cc=andrei.emeltchenko.news@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=mathewm@codeaurora.org \
    --cc=pkrystad@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).