Received: by 2002:a05:7412:d1aa:b0:fc:a2b0:25d7 with SMTP id ba42csp402681rdb; Mon, 29 Jan 2024 06:02:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IFDVmdinCehcnVK/e34H5lTcEot+zkkKL5SPxnPOpvyaV7raWQui1ZQCPGGQ8TOO2UfiqLS X-Received: by 2002:a05:6a20:9391:b0:19c:aa78:7551 with SMTP id x17-20020a056a20939100b0019caa787551mr2505873pzh.19.1706536925467; Mon, 29 Jan 2024 06:02:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706536925; cv=pass; d=google.com; s=arc-20160816; b=Jr/onuzDW6Iwh8z5xe3sWBpNHDvQYkpNeCGc0UX6Jue0jW7GZJbi5BQTjpXb1U+1gk edgvzPj+mu9R3wkDujrIvDkw/DBT1ijW0MWRVl8ydTYLM+SbVGmRxx3XNYEufAqpueln mMiqEaREvzA8Zp8+7aJaA9H054i6S/SmkrH+gW4l+NSht4VB+FNS1NrGt80j+Ri8gxd7 4tnGx3EabM+jiWNPA5anAwCxP/jiVQYGDE7wb4EIDvR7od9AEsCaMlM+5Elvo820ct35 ZhRhFKX6wbbyjmA6byuzrJzaBOHoQQDM3r/uuKLUjrP6vnku/3VwB3ljIqp/I3e+9hSm gVvQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=E3pltyrYUnYzCic2pC9NYr3dO8UO41hNcc7S33FlDbc=; fh=rp3tMoecty1ekj+3pxoItUq1xz8ShPZQG6DjuVvgVUA=; b=VOUOoT4ihMVIJH/B9vg6+cEUYYeUQVuQC7HjYno8jJjnKacPpEeLaNMQ1xW/h8Skjp SHh3KnBx90FSSRaG7GqsYYceQ0JHWLT5XXy4hg4Uxf7eLFT5Nual+kz+Ya51n0wLMSpB lwtFzyQjexXpQDnqS5eeOW/LqtrBsDh6J8M9vhdFqItr0BFg/GGktx5Pv4irAZFioO8q uRiNkzH3CNaGnwonmuCgWl+sEesZvCwIHF73It979iQDirFy6lzu9VIu+BxnQ6rh6n2d QF90vQAZIaPfLw1TZnpkMXO+TA7ZVBHpUNTeaPAt/EV2dpjXvvvlgThtM1puFo4Fa6mc apYg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Hm5211ad; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-1436-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-1436-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id y6-20020a170902b48600b001d8bb0db3d7si3394725plr.206.2024.01.29.06.02.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 06:02:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-1436-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Hm5211ad; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-1436-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-1436-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id BD4E328CA0B for ; Mon, 29 Jan 2024 13:59:25 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B67BC657C4; Mon, 29 Jan 2024 13:58:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Hm5211ad" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DB2567721 for ; Mon, 29 Jan 2024 13:58:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706536698; cv=none; b=ssQT35WDCYlt1e6C2N4I55GKDV8oHbyVOi/KYOQvoxJrDKdPGDSq3T0P+Mk1J+xdyvGhtbarf6pWLQ+SVGdy6cxZbIjK9OBBZpPLivF9cj8JNYOZWbr/VQmKDThVwRHsfdRLYNS04aqQAoFq4wzGk3AKOm4JSRfGJhtKna0S29E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706536698; c=relaxed/simple; bh=Zitl050dGhwx1u2RLlvYnH0IBwgpwaeKS3GEPzetF8M=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=gfRAHAO3g30YshZYfFOtY/n0Yr7v8m2Dx3K1cwhVDS6ntUS+0fUgLpuD/IQJ5JeiV2PraoYB0zRqY4dQQDQibJegUqtO+w9/9TGxSyG11fyoE5XQwtj8FdPbL9KM0IQFaHEvOMs4EJ/TvoIrw0RUZ9xiXtVAzdsVznEX8mIIVVs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Hm5211ad; arc=none smtp.client-ip=209.85.208.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2cf33b909e8so38697371fa.0 for ; Mon, 29 Jan 2024 05:58:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706536694; x=1707141494; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=E3pltyrYUnYzCic2pC9NYr3dO8UO41hNcc7S33FlDbc=; b=Hm5211advc+dBUXglqn4BK9GTe17ylw8XOrIzlJyfHciNsiQNdyOlAYcNdWQW91OJB g+fjUZIYhJdON/AlymY7wkb2UBlP9zqXn72GZB7YdgTZFooXCR1i8mRPSRYAc+OXgXvY P0cY2aZWU/l6qaPJ7+fKXzJr0FFGsMdzfcp5hUrBwatcwEZprV++TvVv4wgJbTKpmJS0 44Rz/4TGDpktOBxO9DvAQYDxpv7Ki/g/yolS6sDxQlpG5zjVwZEIKgmgic2ipQTKXU9F jL6jvfJLJY2JG9l7Y7Ps/VltRxdsnVYkmrCBi3ABIA5NssGqbByDQOb+8G1HAqs5aBlu IkKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706536694; x=1707141494; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E3pltyrYUnYzCic2pC9NYr3dO8UO41hNcc7S33FlDbc=; b=TUqmtStTr6fpo39eRii4kYtUAJLkKMPv/lhs/7g0XKI7L43r/e66fGa6rhDfoIABgC CQaSf01eJoeRVRn2XFESysQJom3f2yyc0rpdo/c+lcv2OKL/7BQjbY2Oc2cmHCXGj1dM j64/6SWO7idL/xeYLC40OLx8hyb8ViWPNHSAZTmJd1+0cnrSupFx06w/MNWpN+pwfzi4 EO7/TWo8r4HyY46mGcDQ7hbSWmH4nE49F5MN20D3/5TubJmV72igviaWiVkVnUUMXMEE fzBg00YK5g/tp0U46k77nLoQX9eWJvyTFIQUjBpShRPNkY+11ZddRUoKqcR1bAhshWfQ nJSQ== X-Gm-Message-State: AOJu0YxX2nh1LK2H5HmHcNMJbJWgYLVqiYAt252HT8jONWmeztl3ReRO dQtYSjryftYb3hKj5yk9DCpzbrA8fXNeDdWJZO7Z5UsU/JjB1zBah4HzP9PNKDh9IhjyQd47om0 BEsH5vCKS59a2nOsUgp+eojw8zaAwFFQW X-Received: by 2002:a2e:9f4b:0:b0:2cf:1de7:1fd with SMTP id v11-20020a2e9f4b000000b002cf1de701fdmr2131683ljk.20.1706536694122; Mon, 29 Jan 2024 05:58:14 -0800 (PST) Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240129114900.92919-1-verdre@v0yd.nl> <20240129114900.92919-4-verdre@v0yd.nl> In-Reply-To: <20240129114900.92919-4-verdre@v0yd.nl> From: Luiz Augusto von Dentz Date: Mon, 29 Jan 2024 08:58:00 -0500 Message-ID: Subject: Re: [PATCH BlueZ 3/4] emulator/btdev: Send page timeout after 2 secs delay To: =?UTF-8?Q?Jonas_Dre=C3=9Fler?= Cc: linux-bluetooth@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Jonas, On Mon, Jan 29, 2024 at 6:49=E2=80=AFAM Jonas Dre=C3=9Fler = wrote: > > Real bluetooth adapters wouldn't send the page timeout immediately > when trying to page a device, instead it would take a few seconds. > > Try to behave more realistically in the emulator and send the page > timeout after two seconds. > --- > emulator/btdev.c | 30 +++++++++++++++++++++++++++++- > 1 file changed, 29 insertions(+), 1 deletion(-) > > diff --git a/emulator/btdev.c b/emulator/btdev.c > index da94f29d1..a40117400 100644 > --- a/emulator/btdev.c > +++ b/emulator/btdev.c > @@ -1281,6 +1281,27 @@ static void conn_complete(struct btdev *btdev, > send_event(btdev, BT_HCI_EVT_CONN_COMPLETE, &cc, sizeof(cc)); > } > > +struct page_timeout_data { > + struct btdev *btdev; > + uint8_t bdaddr[6]; > + unsigned int timeout_id; > +}; > + > +static bool page_timeout(void *user_data) > +{ > + struct page_timeout_data *pt_data =3D user_data; > + struct btdev *btdev =3D pt_data->btdev; > + const uint8_t *bdaddr =3D pt_data->bdaddr; > + > + timeout_remove(pt_data->timeout_id); > + pt_data->timeout_id =3D 0; > + > + conn_complete(btdev, bdaddr, BT_HCI_ERR_PAGE_TIMEOUT); > + > + free(pt_data); > + return false; > +} > + > static int cmd_create_conn_complete(struct btdev *dev, const void *data, > uint8_t len) > { > @@ -1298,7 +1319,14 @@ static int cmd_create_conn_complete(struct btdev *= dev, const void *data, > > send_event(remote, BT_HCI_EVT_CONN_REQUEST, &cr, sizeof(c= r)); > } else { > - conn_complete(dev, cmd->bdaddr, BT_HCI_ERR_PAGE_TIMEOUT); > + struct page_timeout_data *pt_data =3D new0(struct page_ti= meout_data, 1); > + pt_data->btdev =3D dev; > + memcpy(pt_data->bdaddr, cmd->bdaddr, 6); > + > + /* Send page timeout after 2 seconds to emulate real pagi= ng */ > + pt_data->timeout_id =3D timeout_add(2000, > + page_timeout, > + pt_data, NULL); > } > > return 0; > -- > 2.43.0 We currently don't set a specific page timeout which means we are using the default value which is 5.12 sec, so I'd replace 2000 with 5120, we might have to do something similar to LE Audio scanning though since during this period the remote instance could enable connections which should trigger the connection request event as well. --=20 Luiz Augusto von Dentz