Hi Chethan, On Mon, Dec 16, 2019 at 10:40 PM chethan tn <chethantn@xxxxxxxxx> wrote: > > Hi, > > I would like to understand why the Source device L2CAP mtu is always > set to the remote device mtu during L2CAP connection? > > https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git/tree/net/bluetooth/l2cap_core.c#n3370 > https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git/tree/net/bluetooth/l2cap_core.c#n3474 > > > > I tried to set the specific MTU for specific profile connection( For > Ex: A2DP connection - PSM 25) patch mentioned below, but the same is > not reflected because of the below code. > > https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git/tree/net/bluetooth/l2cap_core.c#n3474 The answer is pretty simple, we don't control the remote/output MTU, so we cannot force the remote to use some arbitrary MTU if it doesn't agree with. > Here the patch to set the MTU from the use space bluez. > > diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c > index 58e1534a4..7d8a718c0 100644 > --- a/profiles/audio/a2dp.c > +++ b/profiles/audio/a2dp.c > @@ -1573,6 +1573,7 @@ static bool a2dp_server_listen(struct a2dp_server *server) > BT_IO_OPT_SOURCE_BDADDR, > btd_adapter_get_address(server->adapter), > BT_IO_OPT_PSM, AVDTP_PSM, > + BT_IO_OPT_OMTU, AVDTP_MTU, > BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM, > BT_IO_OPT_MASTER, true, > BT_IO_OPT_INVALID); > diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c > index 51ead684a..786702cec 100644 > --- a/profiles/audio/avdtp.c > +++ b/profiles/audio/avdtp.c > @@ -2394,6 +2394,7 @@ static GIOChannel *l2cap_connect(struct avdtp *session) > BT_IO_OPT_DEST_BDADDR, > device_get_address(session->device), > BT_IO_OPT_PSM, AVDTP_PSM, > + BT_IO_OPT_OMTU, AVDTP_MTU, > BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM, > BT_IO_OPT_INVALID); > if (!io) { > diff --git a/profiles/audio/avdtp.h b/profiles/audio/avdtp.h > index 621a6e3cf..372b2579d 100644 > --- a/profiles/audio/avdtp.h > +++ b/profiles/audio/avdtp.h > > > > Can you please suggest what is the best way to set the L2CAP mtu as > user defined. > > > Thanks > > Chethan -- Luiz Augusto von Dentz