From patchwork Wed Apr 16 16:04:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 881688 Received: from mail-ot1-f47.google.com (mail-ot1-f47.google.com [209.85.210.47]) (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 24917204F8A for ; Wed, 16 Apr 2025 16:04:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819479; cv=none; b=qmjCwwgZj1ziwb7wVA3w1KeLmnrHSUGFaBNyv/SxIZ9RYmg92RmW5/RwvaviZPijqEVNsVj+U3tRGZqn2e4/2rRrIdcvk+MkMT+0OcVqi3WkG+p/miHUYiY6WhD11KnD8jdugOpcMEZyLdYelK7/PupAcanpPNGw6PM9B2L27eg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819479; c=relaxed/simple; bh=r32oAtmJV4GUBVTcyRweY8W3ZwcYF9lzM96+0PEcaBo=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=dTzedM3Dj0GFLlO+JwJHG2V4iIeQ4K/gJIg9+48IPxzQ9lzw6802zOGrv+1D72BMU8eiLjx2TfjuuuGUABbTrzwFJkeG4IpJeP3EA8Ymq0mJHMa0Dkny+uJ+cAd4dO/DJyN5rrc2gx8psF07cBAm6w0P1MHIQgYyMX/gi37AFfE= 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=DyD2pVI6; arc=none smtp.client-ip=209.85.210.47 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DyD2pVI6" Received: by mail-ot1-f47.google.com with SMTP id 46e09a7af769-72ecb4d9a10so124538a34.3 for ; Wed, 16 Apr 2025 09:04:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819476; x=1745424276; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=aO8ssM0dfDJUhN473dOwaJoGRWoeMmAGYDR1boXBPUI=; b=DyD2pVI6eqDrC97fgNCjdaPbDeqyhEOUY7Wg50khWhcsJBwjdcMo0IzwOW67Nr6y+c 0+JBJ7OCH/Z25yTIr+M06myraYEBJaDeLOvYwg7Rdfuo06+w1gbSgeySQLgUqyKNCB7N ckguXfcggic4v12jMOALWg8sCqEzZ0usjOtYORS8mmVpy0h7A6qemcUYVwmkeohCO2w8 vdS6NqDMc6hEp/ck1t1u79ncJIVeG8VjpPj8+kiQ6z1IxlQbQ7th5BHkPS8MjGiHl3wm eHk7V2qbZ7qXfxzC1KgMwKFK/6ZuvZrBv8kvNCt3xRLHHXRiBMFcEB7lvhbzpubXYrmM vBLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819476; x=1745424276; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=aO8ssM0dfDJUhN473dOwaJoGRWoeMmAGYDR1boXBPUI=; b=kp+IeOsunhLtFMYF/lUVCNmXUZnTz2jdA66iJ4RvUQ50j09QrsofsrtHpsZCBrgomr GdwrV0WUrlrF7ZhQKeUqlwXASRsEoTk9kz3itjZTW3nx7QpInSadasOFsytHjy7SVHCj PYHow3MJ1JMWPxJg3poUmeRp2Q9JwJWTmZ7NBQsZG4FiEKTf5kQYhhlZtqVXGlZfJWDp 54JBs7FtznOOYhw5B7xUqc0GlFMFurvioUNHBfBC088dZ8UbTTw2F7RrRy4riIRcdgMy aFHFOFaAZKUOtXMFIE6cBwiYf34KTRxBitnur36P25OBKjTD5Wqi2Oh4AZBW2sYN2+Me QMdg== X-Gm-Message-State: AOJu0YxlukUQ2IcyOdOvgOeShQeyBMwj31V1OBvFEevZ14LbU4Az+fJu 6Mi0i+qmdMch66ru+t20V0rEhiLzWAaEvlUl+teN0oJfTmHianphCA28FOI5 X-Gm-Gg: ASbGncsUIUa3IwdjqlnOjrF/TkvmlGq7b0gEWD5tao12OGAYTbGVFEAia0g8qmQQ048 OeOxyPPCeK9ETR4yeCLYlfFidpINBXWeWKjurOCFw78oD1KqsWIiYpHTgrvqZqSFkW8+xPVXClz 5xD6xDbjzwkcPXl3trQDT7FkCik5y6tSK/xR3yjYbZBk8+FcY6gmQfMn3hBWUW1vulc9r+BnLzz /W7ZYK5mo2I0zoUT/yna3FOv78DOFOe2wN1c064pTGL2RsTRH1QwpdOuZJyDCYi06Ft10q0KbGo dXDZgW/tldC+WoQhmjO/SnXe49WTg+fokRvalDW5AGeStMpwO4dJw/RQ0xhZqSNbdbCIzamoCop 7+HyhQNIAMQ== X-Google-Smtp-Source: AGHT+IF8U5ZYKhkFSkpYiKWxsc31+YvpwJxNxmjUzfjSTaYaIPcDgzE0Qe7H5HbAcnM7WK8uF0uZtA== X-Received: by 2002:a05:6830:6f85:b0:727:33e9:322a with SMTP id 46e09a7af769-72ec6c36a4amr1531691a34.16.1744819475845; Wed, 16 Apr 2025 09:04:35 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:35 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 1/7] bap: Fix not setting SID for broadcast receiver Date: Wed, 16 Apr 2025 12:04:27 -0400 Message-ID: <20250416160433.1822263-1-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz SID most be set otherwise 0x00 is assume which may not be what the broadcast source is using over the air. but since we don't have access to the SID of the advertisement in userspace mark de SID as invalid (0xff) so the kernel fill it up while scanning when creating the PA sync. --- profiles/audio/bap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c index fd9b751cc1bf..24763666ce96 100644 --- a/profiles/audio/bap.c +++ b/profiles/audio/bap.c @@ -2813,6 +2813,7 @@ static void bap_detached(struct bt_bap *bap, void *user_data) static int pa_sync(struct bap_data *data) { GError *err = NULL; + uint8_t sid = 0xff; if (data->listen_io) { DBG("Already probed"); @@ -2833,6 +2834,7 @@ static int pa_sync(struct bap_data *data) btd_device_get_bdaddr_type(data->device), BT_IO_OPT_MODE, BT_IO_MODE_ISO, BT_IO_OPT_QOS, &bap_sink_pa_qos, + BT_IO_OPT_ISO_BC_SID, sid, BT_IO_OPT_INVALID); if (!data->listen_io) { error("%s", err->message); From patchwork Wed Apr 16 16:04:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 882373 Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) (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 BD0B12080F6 for ; Wed, 16 Apr 2025 16:04:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819483; cv=none; b=PnUjDvCok610fL70z9orn1Zpt5qMKDd7QF533tvU+Lc73RHe7wpXNDT54fkt2mqHPW2y0CfjyQgzISzQbe/s7TZVZx7ngQ/xBV1PJ1Erc4sutL7owvIIswi5+xU0hgCVdSj8QzvB53E07bJJYBJFtDAV1nqXLb7aVehW8KJQYQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819483; c=relaxed/simple; bh=tn3LLMUkmIgzSHBzNCOPge8xddrWH9LcOTg27zwPgds=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Iyjvso5w4dATgqinalkX3TwSRv29TEczlq5hEdoCP2qxnP8dDHUT3zB9cteg/Q43YrzKmlR1CPnjnIBOg6EqCwtzpwy9+/gloR5p4fDLQHe3VdkrQQQnexvi2r98EscdOTUj5d1ueWrb6QWThFaho1Y8DAq2Tgj0uBqzXzbc56A= 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=V35zuHJ9; arc=none smtp.client-ip=209.85.222.49 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="V35zuHJ9" Received: by mail-ua1-f49.google.com with SMTP id a1e0cc1a2514c-86d42f08135so2489776241.0 for ; Wed, 16 Apr 2025 09:04:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819479; x=1745424279; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=0qAWmu4uWB6mmSNQRF8c6wKOSO8fTTfpFkXVXjHgTSk=; b=V35zuHJ9HjhlB0pzJQQnTTLpsoPKCtaROFKLudBxyOY873avrtCsDGpdaVI6sPV8pA ToaQicLB/KqiuQUi1C4I3hMyLnd6YJBUcsRnjczIeF8N3NnaqDjiuJXc0xoBJi1qBtsu /6k6YiFgfh1uTJoXDvNVRsKXmASXecN4dG9G54tHqc3d9Aj+yl+2I0DXNJLb2T+9M3Sy FDMqx+5DTqWvQ7Vn9BtbXp0PrIlqVTd2U6gTRmeNmzYNeELUntPpK3RO0SI62GSe+9f1 r2x1lkmtYfIcgQ1gL1YNbiCJmnlQT12vX8RFqIOE/kEVIJ63rtfET0RDy2rpaR61eH7v D69w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819479; x=1745424279; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0qAWmu4uWB6mmSNQRF8c6wKOSO8fTTfpFkXVXjHgTSk=; b=h5U8ofNMr+x6VwjcjNJFBp8kic1WnqIQm85piny+/dSmKy+JVWuuyGgetoffiOb9e2 SRT7ES5KW0vWb8+6NKDQ/wK3exXUsXraKGyvKhPjhzAM71E7wIo+BtPLmFGv+wIXrgM1 gwK0P8C4x0B9STYaxFN/PEQGAUNGEaRh2Eglx4VsuSX+TWsdqnx1men+ntvDwTD/VCuL k4dDWXal4FGQtewvZXYHlZXzT7v3lrU5oWAc70Ke5UWZTvCFAlK2NOPU+m2wFvi/rP+G pEZ3jB7nDG81BY81WHWNWy6wfgUIbNDYR1otS6eBxrQWoOgVzbfLw6lPE2FHlVlJ60IN JxNQ== X-Gm-Message-State: AOJu0YwHZIgk0NdC/j3s9MJ4CnTjrhyPvJWCxHxTJAvI7XRq/ALUh1Jt AOLQM7kChFGbA8cHwgQqB0/jb+OyeP5RTr3m/obQQZmbnaFDDAQCfWX1zUA0 X-Gm-Gg: ASbGnctZsIKznwjOOTVmp31iC+B5hDYcZUNALXDOsWOnzYIjWbKBptnvqCEqU+6ZfcJ 7ZhFDWUCXmG7xi42kNS+lNVT4ZYx2zN3jwdNB1XKW37c66xlVF+N5S9qSIYSTa7oVx+xKs6P/nS RGnBH3x50O0fc9UmMWOVOuvaQwfJ1XqShEhQGJIAixnsCxxjBNlQGgXWQgbdMmsmMWXbCba4GsF WLduuVOAzu6Ka/T62tmOGIHqLqEC2Y9iJTmSkwVmgBFV20OxXCMPtjIgU3cOjQdgV3JCHMhMWON qerDNNNnqy21I4/+/DNFI7x6myTUtr8mJFBJYALtC3FhrRenzq+aFJ6UcMi+SUDHBJMhu2THLgp GEVACw8WlDg== X-Google-Smtp-Source: AGHT+IG/cNNf53t2pEYX4UXdbFqls1Qbp+BmVmknQwVve+7yLcOrCFslv6kJpQlI0rWeMGKYL+W5Gw== X-Received: by 2002:a05:6102:6b08:b0:4cb:5d6c:9943 with SMTP id ada2fe7eead31-4cb5d6c9a39mr1254271137.12.1744819479080; Wed, 16 Apr 2025 09:04:39 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:37 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 2/7] btdev: Check for valid SID on BT_HCI_CMD_LE_PA_CREATE_SYNC Date: Wed, 16 Apr 2025 12:04:28 -0400 Message-ID: <20250416160433.1822263-2-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250416160433.1822263-1-luiz.dentz@gmail.com> References: <20250416160433.1822263-1-luiz.dentz@gmail.com> Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz --- emulator/btdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/emulator/btdev.c b/emulator/btdev.c index 7e4cb9393593..a1c82ae306d7 100644 --- a/emulator/btdev.c +++ b/emulator/btdev.c @@ -5728,6 +5728,12 @@ static int cmd_pa_create_sync(struct btdev *dev, const void *data, uint8_t len) uint8_t status = BT_HCI_ERR_SUCCESS; struct le_per_adv *per_adv; + if (cmd->sid > 0x0f) { + cmd_status(dev, BT_HCI_ERR_INVALID_PARAMETERS, + BT_HCI_CMD_LE_PA_CREATE_SYNC); + return 0; + } + /* Create new train */ per_adv = le_per_adv_new(dev, cmd->addr_type, cmd->addr); if (!per_adv) From patchwork Wed Apr 16 16:04:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 881687 Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) (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 8954020F06C for ; Wed, 16 Apr 2025 16:04:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819484; cv=none; b=Hyz0X4BRzwgpbvAB53kCQUtEeRiGILzIrx7UWwg0dZvynRhzmpOsbcKwfJEYRUJzc+8vwZGX0ToFn0Au58hzqa0eXqJ7bYeFBc+CSOMr+46svrlZZEb2MZl716YJSmr6idkQUh7JRgvYFEwrYzmSAwsppDHtpioBoM/HuSH763c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819484; c=relaxed/simple; bh=3+SxI0tRGsZen8RqG1GYkdm0sHlmXTSVu/oAkMr6lhc=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B7YqCxL0qNP/kP0FNn62q182/136hK3ZAqvaDOK5aGxvB4G5toyH6kAJu3iP4MkXpgscTbZCL1OAiuxYxD09wExtYCACiOeel4vs828aBFnKY0jGJeTxhILdn0PTaa0P3XZoLB6+rDLluoAqx471RqBPTCD3Zq2RYIghlyIwxkA= 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=MOH/ZUac; arc=none smtp.client-ip=209.85.222.46 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MOH/ZUac" Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-873a2ba6f7cso2646793241.3 for ; Wed, 16 Apr 2025 09:04:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819481; x=1745424281; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=cFGMeZBaefAMiSCCYV7Imgs0fduQDzHhyo9+GmpG6KA=; b=MOH/ZUacwnYJkhKuuEjseTTXO/8uA1B30RVqCCULspjkjNERtB7q/goBtj5OtIIDJT wf6W2PStfl5a+P+CwlVhMi0uWg3diM14VmS5XMPQm0KNaWUsby6LnhZVj3yaJ7llmBDt Gk0PHBDQ2zN5dViIhCi0xYmXEXXITyAVwwIHrhg94opBY5fgKDi4kC6eL9JAyLfiSMR7 Prg/bdIUBU7YRIENYl4Fwo3LaBnFis9VbhKffHkh5P5zJ6T2vvfgoHg7kojS3NchiOXJ FM9uqPpUiPgNlKuTp/vtJDFXPnNDplLU8EcFh4V09g0sv+zabL06n6DAWQiHyd128hsX cnsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819481; x=1745424281; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cFGMeZBaefAMiSCCYV7Imgs0fduQDzHhyo9+GmpG6KA=; b=OPe009rhAsYULFU0CPjJFxEWDb78Eh9oej4Vf1T01CCWlIgClxZXZVXHWLIfxnCQrH tMCKTNUB46vAZWEzWkgYxMU4MWmFixMHR4IRLTkdHzDWSHsH9Na4l4QvKmIgRvZzk+Lp hgWP0DxRKAVAK8ZISYchsdXP/SqSYugfOee3M9a1hVRaLnQThcXwTbhU4k0383fiU+4u knmiVaNWN8A/Y8++LfUMoxBUipy2JjiYfeMxPUWHe/zS8hKBUKrx5P0hFWP8FoiYFblF RJGwTaSa5KqLBOG1cNhmc4C4vRd8xmhoFHz+TYdsjxgefG9TgJwcC5t+eTbZ9LaMfbkl 8MuQ== X-Gm-Message-State: AOJu0YzvhbTB3bx0pFqWhfeHFg1c0ruk30HwSauw3XQlpFkpxlqEfkVR 9Q30cI0LwmiZTJP61rpBT3jUAYDmR7RKgI7tRNOUoWE9P4Y1nBcn+Q8C6PVE X-Gm-Gg: ASbGnctRjZ9DdDfoTkd1CFqbIqtkYckfA34HJ9/8P5JnJKRUToHx3zRF8LXgXwXgBp1 jWFn9mA0NEsrh55V/8vcJlkq1NMlPdXui0h6M/vf2myS3Bg6BB9IqbAxauq3HbSNFVfC1AmRjMh 5WYVBaOYc+vSwcFqJEoUMT8cpYNhJT1Vwu9T7Z/PffNhBIdxSId9929fhFhqGUGVKw65tkvjLnx 7ZDBezH3gU0+HRyrbsj63UwthY3EyeuprUMi+SLkSqxGPAIkhXQ+p2P3nCLUraKLW8zRRFJXyk8 hWgew2yO2SlCpqIsDSaGNFAfqAl1gRHs0UFK0b9mb9wq/9a6ZIzCYMWlX0r+duwETrnxIWeT89G rYQvE2WP8wg== X-Google-Smtp-Source: AGHT+IFDsfO37IggKdfwJcsvFEvBDrVdfqWSBmUKCxDfx4fO/3MJX1RcvV9XPr8ZmHlypu6wumVG6Q== X-Received: by 2002:a05:6102:5c15:b0:4c1:9159:859c with SMTP id ada2fe7eead31-4cb5920e43bmr1322325137.15.1744819480670; Wed, 16 Apr 2025 09:04:40 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:39 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 3/7] btdev: Fix not matching SID on le_pa_sync_estabilished Date: Wed, 16 Apr 2025 12:04:29 -0400 Message-ID: <20250416160433.1822263-3-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250416160433.1822263-1-luiz.dentz@gmail.com> References: <20250416160433.1822263-1-luiz.dentz@gmail.com> Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz In order to estabilish a PA sync the advertising SID must match: 7.8.67. LE Periodic Advertising Create Sync command: 'The Advertising_SID parameter, if used, specifies the value that shall match the Advertising SID subfield in the ADI field of the received advertisement for it to be used to synchronize.' --- emulator/btdev.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/emulator/btdev.c b/emulator/btdev.c index a1c82ae306d7..76bae5ea1ab3 100644 --- a/emulator/btdev.c +++ b/emulator/btdev.c @@ -105,12 +105,14 @@ struct le_ext_adv { uint8_t scan_data_len; unsigned int broadcast_id; unsigned int timeout_id; + uint8_t sid; }; struct le_per_adv { struct btdev *dev; uint8_t addr_type; uint8_t addr[6]; + uint8_t sid; uint16_t sync_handle; }; @@ -4923,6 +4925,7 @@ static int cmd_set_ext_adv_params(struct btdev *dev, const void *data, ext_adv->direct_addr_type = cmd->peer_addr_type; memcpy(ext_adv->direct_addr, cmd->peer_addr, 6); ext_adv->filter_policy = cmd->filter_policy; + ext_adv->sid = cmd->sid; rsp.status = BT_HCI_ERR_SUCCESS; rsp.tx_power = 0; @@ -5019,6 +5022,7 @@ static void send_ext_adv(struct btdev *btdev, const struct btdev *remote, /* Right now we dont care about phy in adv report */ meta_event.lear.primary_phy = 0x01; meta_event.lear.secondary_phy = 0x01; + meta_event.lear.sid = ext_adv->sid; /* Scan or advertising response */ if (is_scan_rsp) { @@ -5420,17 +5424,32 @@ static bool match_dev(const void *data, const void *match_data) per_adv->addr_type); } +static bool match_sid(const void *data, const void *match_data) +{ + const struct le_ext_adv *ext_adv = data; + uint8_t sid = PTR_TO_UINT(match_data); + + return ext_adv->sid == sid; +} + static void le_pa_sync_estabilished(struct btdev *dev, struct btdev *remote, uint8_t status) { struct bt_hci_evt_le_per_sync_established ev; struct le_per_adv *per_adv; + struct le_ext_adv *ext_adv; uint16_t sync_handle = SYNC_HANDLE; per_adv = queue_find(dev->le_per_adv, match_dev, remote); if (!per_adv) return; + /* Match SID */ + ext_adv = queue_find(remote->le_ext_adv, match_sid, + UINT_TO_PTR(per_adv->sid)); + if (!ext_adv) + return; + memset(&ev, 0, sizeof(ev)); ev.status = status; @@ -5701,8 +5720,8 @@ static int cmd_ext_create_conn_complete(struct btdev *dev, const void *data, return 0; } -static struct le_per_adv *le_per_adv_new(struct btdev *btdev, - uint8_t addr_type, const uint8_t *addr) +static struct le_per_adv *le_per_adv_new(struct btdev *btdev, uint8_t addr_type, + const uint8_t *addr, uint8_t sid) { struct le_per_adv *per_adv; @@ -5711,6 +5730,7 @@ static struct le_per_adv *le_per_adv_new(struct btdev *btdev, per_adv->dev = btdev; per_adv->addr_type = addr_type; memcpy(per_adv->addr, addr, 6); + per_adv->sid = sid; per_adv->sync_handle = INV_HANDLE; /* Add to queue */ @@ -5735,7 +5755,7 @@ static int cmd_pa_create_sync(struct btdev *dev, const void *data, uint8_t len) } /* Create new train */ - per_adv = le_per_adv_new(dev, cmd->addr_type, cmd->addr); + per_adv = le_per_adv_new(dev, cmd->addr_type, cmd->addr, cmd->sid); if (!per_adv) status = BT_HCI_ERR_MEM_CAPACITY_EXCEEDED; From patchwork Wed Apr 16 16:04:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 882372 Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (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 62D2C207E11 for ; Wed, 16 Apr 2025 16:04:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819485; cv=none; b=cK+dhDPP19lUocoVWQF5nOzLVwv62rSgF3oJhbUS9n+hQ1tsk573nvEtHKpoR3OMa6oaB5kgG2jzo3OXpRCEL84Wu8OCK9f+Fhps9iXtn+64Gn3LYuInggdqvCiGzbmzbBpdtrlV+urA/CJ9Eh1FF2TE07mROh5MERi+iTS37BU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819485; c=relaxed/simple; bh=DPZ4Fy8hFB79kXhQkjjsaUMg1+lmOHgCZ9nLOHWNdV4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l8CBBZNXDI3Ew9GWDwmL+4jRzPer5fSM9AEeIDi13NfwGS+TNu6bpvd2T8yaY7wFz3Yg9joOReNYDMqKiE4McKPowIMiS/xten0b8Sia6lwiAi2IweI3vaTp9bFUnDUvhwuklKtHOffnxL/VhkALubV/fknJZlevGtmvV5SOllg= 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=AYajINZn; arc=none smtp.client-ip=209.85.210.46 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AYajINZn" Received: by mail-ot1-f46.google.com with SMTP id 46e09a7af769-72c13802133so2078980a34.3 for ; Wed, 16 Apr 2025 09:04:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819483; x=1745424283; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=wEjjwG5jx2aPU05qIE/xX2hSXaML6GcxiCjF2JKd8Z0=; b=AYajINZn+SOQxWCY6TOUPmrX/hxpr2r8N6gJ5oN9kpIx8XcL4bPNmN4up/8HnDZLWd O4ho58PVsCyhmz5NgiDPv/UauAEQlP5ywe2VcRIKUSYs1e01b2WXzMvy1ND2d7BiXhxQ c5JJu0emOeQD3yRWqgHBZwUiZvmA5H9kfmpyEGxmpecUelaK4gwIvt3rnQ82/JDKWACt ckPZvavoZXG9D/WOOK/fV/cwqKGgC1rAiqs4gjehrclRSxClOQnNqmPWtX1XUtUEijgA ugOTXsbdTGpAsGknAD5JKb9UzFUbcWscy6ScRHtS0aH33ryJZPy7nmJhb0LJP+h/nN31 uXHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819483; x=1745424283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wEjjwG5jx2aPU05qIE/xX2hSXaML6GcxiCjF2JKd8Z0=; b=Dg3mq3bYG5SUId6NjvtxTkjTJRzL5SeXfdCeU+G2rtPUAMTUde1RG2zD+0R2MgtfP7 W73fbAwTDYQVuf4bmOImC8PL1Do4O6qZ+hvsg3N/548WhpDVf0H+Bch9WDIwoLiZG2KS jJEmdoBnjsOFqJ48wS5C2n0htJ90SMPPpsSB7LzqKBd1YWdAL9cKmeDZWwkPhcYtocK9 B3ymYdYBXMi+egFom0M/LvKvGoM4jQPq0kjq7q12uBBJhrre2f8c7zzueKiNojdhB8Lv L6vCLgW+qYyx/DMfCUjLGYAvDK1vjoYu6U/PK/pmU30lJDieM+0w8vqe5KXGRLrUHdYQ qOYw== X-Gm-Message-State: AOJu0YwKYZVoFswd4OqG331QebrJNqmvocINL9WexPiB8xbpzcW5joyL soOrhmFNqICmIIDS30tAkKvb9t6NzX9LDbLz93umSpR16DvxkS1FKPqjKdNb X-Gm-Gg: ASbGncsxnVBuEzssohnhtt2jhz6jZRX10ahlg15dT7TudpU/bTHe2KAFtRoApSHLSLD CQaDWPnpEeR1IP3lOAVSWizdXD1R5qen6eNflwop7tT4WIAnntcmAxAQ21Yw2/d+UTAOBMZ698X ejxwTO4Levhx+Wdtv4cDa8PfJe6NvvaUPJa6OxAizJhfxfKzUj69zaUPfSsJ/1wbwRzs1xWcVig YfvOQwKdpnbYhJaDDuy1smnM9dYwAMH/zTE8Biql0pmLjROrjY/CjOKAV5zsYGm4h/ysu/n2P4O WTZAAy6TTF6szqrKtABN1P2+UJyvRrtPYw5hY5oTRKmyOp3r5etokgH9zQzlXn8QbLVMxAUI256 oF8hg5MNC5wuVaGxCgqxV X-Google-Smtp-Source: AGHT+IEUW7kT1FIFaHM09GIrwvo+YfPifX/+5COi80gYMTyCgk5xejaBCyrIMDSf2R77bq27Gi8cmA== X-Received: by 2002:a05:6830:6083:b0:72c:3235:9c5b with SMTP id 46e09a7af769-72ec6bf7f17mr1706273a34.16.1744819482689; Wed, 16 Apr 2025 09:04:42 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:41 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 4/7] iso-tester: Add test for SID=0xff Date: Wed, 16 Apr 2025 12:04:30 -0400 Message-ID: <20250416160433.1822263-4-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250416160433.1822263-1-luiz.dentz@gmail.com> References: <20250416160433.1822263-1-luiz.dentz@gmail.com> Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz This adds the following test which is used to verify that when application sets bc_sid to 0xff the kernel will attempt to scan for a valid SID before attempting to create the PA sync: ISO Broadcaster Receiver SID 0xff --- tools/iso-tester.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tools/iso-tester.c b/tools/iso-tester.c index 350775fddc96..b362647461c3 100644 --- a/tools/iso-tester.c +++ b/tools/iso-tester.c @@ -495,6 +495,7 @@ struct iso_client_data { uint8_t pkt_status; const uint8_t *base; size_t base_len; + uint8_t sid; bool listen_bind; bool pa_bind; bool big; @@ -1419,6 +1420,16 @@ static const struct iso_client_data bcast_16_2_1_recv2 = { .big = true, }; +static const struct iso_client_data bcast_16_2_1_recv_sid = { + .qos = QOS_IN_16_2_1, + .expect_err = 0, + .recv = &send_16_2_1, + .bcast = true, + .server = true, + .big = true, + .sid = 0xff, +}; + static const struct iso_client_data bcast_enc_16_2_1_recv = { .qos = QOS_IN_ENC_16_2_1, .expect_err = 0, @@ -2843,6 +2854,7 @@ static int listen_iso_sock(struct test_data *data, uint8_t num) bacpy(&addr->iso_bc->bc_bdaddr, (void *) dst); addr->iso_bc->bc_bdaddr_type = BDADDR_LE_PUBLIC; + addr->iso_bc->bc_sid = isodata->sid; if (!isodata->defer || isodata->listen_bind) { addr->iso_bc->bc_num_bis = 1; @@ -3817,6 +3829,10 @@ int main(int argc, char *argv[]) test_iso("ISO Broadcaster Receiver - Success", &bcast_16_2_1_recv, setup_powered, test_bcast_recv); + test_iso("ISO Broadcaster Receiver SID 0xff - Success", + &bcast_16_2_1_recv_sid, + setup_powered, + test_bcast_recv); test_iso2("ISO Broadcaster Receiver2 - Success", &bcast_16_2_1_recv2, setup_powered, test_bcast_recv2); From patchwork Wed Apr 16 16:04:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 881686 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 DA7FE20DD48 for ; Wed, 16 Apr 2025 16:04:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819487; cv=none; b=kmE4Cn777ZC1eFMepw89Znu975MI3HKTWHO8tUK+DyZFTlrzEykXIU40p4iVNYvdlSBwT4VxwdCnhhS0uvibL55rw81KLAXfILFIc2JWOM8G63NqYly9JSqnXIEXzmSbU4l8QHSWXupn/BsiSPR1g5dvS0vSyGBiNpkV5UkRcjQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819487; c=relaxed/simple; bh=L3JCkH3UOERCddVJK7QZMFBci/1m6FwhSUZ3on3hKJg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nbBpIWUdGuOEuhTRqp5fHiz7q2KOih3IfqHo1zRYp1ANyIAS2ZCT2zrGoebJ2kAAQxijn0E/TnrGRdP+5AV5diP4kepDOakneYG83/UL5KdifIohnH2C/my//hg9tFUNTAxMB/L09RcLp0CLBSvfUaeqc1CbrQvQ+AvDFhP5MAo= 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=g9LTI1Vb; arc=none smtp.client-ip=209.85.214.182 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="g9LTI1Vb" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-22c3407a87aso13922085ad.3 for ; Wed, 16 Apr 2025 09:04:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819484; x=1745424284; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=SuX4QN1XO5qkD+Mq8ZB4etY5v24jEcjvNl1G0WRpx40=; b=g9LTI1Vbcpd9FTfz1XJXzCXe3kseLf9pilp55YLV08gDHJ5BhzSc2a1NC125WnenhL YbDUqLzFlrYXJY1Ho6e4ZWn3cFN0pu/m6uBjix3wNG9BocdDi3zjvqlmMSCZ3ovTyk6U I1YU+6y4k5VdJafcZcNzNVf8+hiPdcfb9J3BHx5yeCZVJ70OPClpaIRQQNU3aDNSydYn bxv0nAXcVVFV4siv2Xv8okIiOCkTlvRl66tbewmPBUj4Nt6/ntvnSOFbigTk+706ieIR uvZKEuYU3wMhV935GOb5i1UvOOf/2db7L5UB8HCXmNIMIf1r8ts75TmVJAotKrdwFkCY mRAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819484; x=1745424284; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SuX4QN1XO5qkD+Mq8ZB4etY5v24jEcjvNl1G0WRpx40=; b=No8DpNVi0zc+vf1Lmr6EXflhNu1hJAcXUVr3/nEYb3JyZEuZNkdwc8VpIMwlkFXJET OFSOBNatEeejWntiUJ1IpDjHIp2np0zfw+6B/byCP0ZZdsLoU+cu+FGc4Hy8zB/V3fMk KpYziCIHZPGs1JjiJu1NDlQS8qgAffiuTjmYT3856Z8FlH9wR/KiaomvQGCt/7l0KD9V gkp3/PLD4aJOqXc7a1FndKU+arNkvBUV2BEVOUyGYnYKZqLL6XMG/O8d9EG3/bw66ZVo N6LidWMNB01MXgJI6g5OXgb67SH8B1X1o1iaTzOppx2tKTyBvw2n0FmuEIk0veWHnFvQ 6e3Q== X-Gm-Message-State: AOJu0YxpTl4xkBmXWCanhp3x7FIvd3PuMy8LBL8v4DjWZk3ISHtuKz6K JR0qhz2v2IFPxdkIG3bHA2Zl5HsU35aRSBSOMFvJ+CwGHD51UKYgIRo/sDy5 X-Gm-Gg: ASbGnctZA/be4xbV0EAuzHV6cQadg0bF7hlzQOYi3P/EEtWb3GB1s/ryfy4u3kJI+50 R1MjmhCzR6bew2CS1S7YScSTIQs6S6AAeYt/nzbfIIsD1I1iSL4b4j6SPeDs+w9RgMuU5x2kK+D +lJmATuF4RDGAFyHhH1/67fpunxJVcHu4xDR6VRMaxr0oeoWa6NvD17aY6hu+kQkxbGlqpta6Yy 1XiFcHpnHyfwxq3EAXtmdJqQkaYN+Y9mNJOUml/rgoPGhS1fUq/Tgkb3HyUd/RZpuz+Mz1QUWgv xd58v7YiPs0z/z+y3etcGMzyBue3mYs0HqXgbNrtyp2fSNuLdpNXXJ+MofCIb1qNq7u+3AeTb67 lhjwzM1BuJVOmK3GNEbQu X-Google-Smtp-Source: AGHT+IH2mZQlb6S/w6TxkjZbUxphnThU8XZ3cfchXs7VruclBFcGtnWs/LOP3h+su1tUNUK+7dS+Uw== X-Received: by 2002:a17:902:fc86:b0:227:e74a:a05a with SMTP id d9443c01a7336-22c35986066mr43926155ad.44.1744819484372; Wed, 16 Apr 2025 09:04:44 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:43 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 5/7] iso-tester: Test getpeername return SID Date: Wed, 16 Apr 2025 12:04:31 -0400 Message-ID: <20250416160433.1822263-5-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250416160433.1822263-1-luiz.dentz@gmail.com> References: <20250416160433.1822263-1-luiz.dentz@gmail.com> Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz If test is not setting a valid SID (0xff) use getpeername to validate the SID gets updated. --- tools/iso-tester.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tools/iso-tester.c b/tools/iso-tester.c index b362647461c3..63f6951e3d0a 100644 --- a/tools/iso-tester.c +++ b/tools/iso-tester.c @@ -2575,6 +2575,40 @@ static gboolean iso_connect(GIOChannel *io, GIOCondition cond, } } + if (isodata->sid == 0xff) { + struct { + struct sockaddr_iso iso; + struct sockaddr_iso_bc bc; + } addr; + socklen_t olen; + + olen = sizeof(addr); + + memset(&addr, 0, olen); + if (getpeername(sk, (void *)&addr, &olen) < 0) { + tester_warn("getpeername: %s (%d)", + strerror(errno), errno); + data->step = 0; + tester_test_failed(); + return FALSE; + } + + if (olen != sizeof(addr)) { + tester_warn("getpeername: olen %d != %zu sizeof(addr)", + olen, sizeof(addr)); + data->step = 0; + tester_test_failed(); + return FALSE; + } + + if (addr.bc.bc_sid > 0x0f) { + tester_warn("Invalid SID: %d", addr.bc.bc_sid); + data->step = 0; + tester_test_failed(); + return FALSE; + } + } + len = sizeof(sk_err); if (getsockopt(sk, SOL_SOCKET, SO_ERROR, &sk_err, &len) < 0) From patchwork Wed Apr 16 16:04:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 882371 Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) (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 3889720E31C for ; Wed, 16 Apr 2025 16:04:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819489; cv=none; b=XGwdkUW9PmR0ckaKZQ1MOrn8SrW/Hr7cQ0w6JxnIGKk/ypSiD9SpKm7WMr5cC7LhQal1uaLvA9H4gXJY9SKxmL7fe0NlPCr5J8blYhCm8l182pDgG8x/FoG0vafdAURdSFZa+GvW9SEnuBhjsV/Sez2BXHWeLGuXamhGfrFfRvo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819489; c=relaxed/simple; bh=Ep/VGdXyZEkyBZ8e1w235imF8eJuSSGF/xTIn+0YI+4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HLKGtmM2SfJrKli+bGrid2IUM5lq+O4DNCf14zEEv7zwTMviLEMfSZ7FIHQmDHtSwdwmx47W6iazmtyU5duo5oiN+Y+ptuzF84WYPPZ6k3qb0TB7DZOexwUwDJ8BX+OpQ5Fkpb8VvbONstWM/QKUpOWcNPhoChiKxXIFQ9pUr+c= 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=FlEACMBF; arc=none smtp.client-ip=209.85.167.170 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FlEACMBF" Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3f8ae3ed8f4so3848488b6e.3 for ; Wed, 16 Apr 2025 09:04:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819486; x=1745424286; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9HHkuNI7c4qBw/LbC/Lfy2J5sSnqFM4eZks/GYTvigw=; b=FlEACMBFexGvYGJ94zDwEApzjHxvlffsq0dP4hukes+GH9StPbVFoU2m28Mw1yaeNk qMLKA/INlFdiGxGVO11noehMLmSBIL/4opBsqA3L2AMjcenAspIyrQjLUN27agkC7O+b PpNDhEF63gVDBrUDfEV/IKORJnAQjpL+34QjyWgWT8zgPCXcU3fOBlswp3TOLzMX170/ CFmjo53m9NgiCBUeftLUiRxms42sk4OvQ6lLkT/IPsF3kZJ4heSSEvZNT815KitFjDio tNTC2YW8pY75Bq6MctWB8EpXrJSdRJbes9HX6FAGI1FOUGDlIr+8ufyublVmq40FLleT xTRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819486; x=1745424286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9HHkuNI7c4qBw/LbC/Lfy2J5sSnqFM4eZks/GYTvigw=; b=XIW+VZARewGT409pwxGCJrmP5rMujD8/n/0RzmVxs55hYQiwfdltBKvdyf4YvvC2lB OfVOaXJDgz1cN1OAm9rlCBK6ZUtfjyeqgWCvU2wV9ggVqUKle+9wZzWFMNMERcH1JuJ9 1MbeO52bPIvhsi6UYBhc1hijLoRrjcU4Id24biIRJB/YB2Z3LgeDh21lhg3ADNjOtxht L05j3NKDTbGfJP1IZHVO1iuAZs0kKiW2xZ3jo/+xL0KA0I3PA5m5Nq+gmLE8sRid5Jrz tzLjvgL2vbvt2hsdqpjowsLhoMfbnAklxYgmsNZU0FvKgypXsC4Y3JEaWUqFZ4Vz9XCU Jizw== X-Gm-Message-State: AOJu0YxOcxm6k5tXV9UIidi7FmU0Pp79pY9vXh16LM+x5EhUkBVp0d8k proi0Qk9e8kSvOGCkxnS663ljglJ47ucCCDLrDei8mYjhjgqfst6lmUDn3eT X-Gm-Gg: ASbGnct7vw3Sl+BTXXdnEaHi63lLFutdUVAU+fCuIvGMFrc8INRv+6wLHUlK6SaJZ/G FhkKAiVl4v53kDBG7bM+OapQQTTN+iT1iQhsWp2XIFd3PuUozzztNDjIPZkF9l/w/yxe9Mq2YIo j4AP92zxf0lYaDYpCWA9PQSSL/AlZQhVdk4MFockNwGSWYteW1hFL+Len8syolbD5ZTjVOjcNBl JrZxRoThP6QZeob94nchxzqlK9B53XBpOr6Y60+JwZU7fg+rx6E9C74NxmtGM/Fb4D/7Vhiz91j xRl5IWsXNywrmqD7eKciUWo+l6RErbhT2CSIKzgjORhM/HhjgwLJuHINhrcVAM1u+S0D1QYx9uD pUS+UkCFtrA== X-Google-Smtp-Source: AGHT+IEqKyvdXvBa90QphaLplhmVZuB8PUqsQhWWCyqe7FXJfnTf3w3Xd7dUw1kpNKPAKrB35l609g== X-Received: by 2002:a05:6808:1509:b0:3fe:aedb:4106 with SMTP id 5614622812f47-400b01cee49mr1520431b6e.11.1744819486424; Wed, 16 Apr 2025 09:04:46 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:45 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 6/7] btio: Add support to BT_IO_OPT_ISO_BC_SID to bt_io_get Date: Wed, 16 Apr 2025 12:04:32 -0400 Message-ID: <20250416160433.1822263-6-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250416160433.1822263-1-luiz.dentz@gmail.com> References: <20250416160433.1822263-1-luiz.dentz@gmail.com> Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz This adds support for reading BT_IO_OPT_ISO_BC_SID using bt_io_get --- btio/btio.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/btio/btio.c b/btio/btio.c index 7ea17c7754e4..14f2b700e383 100644 --- a/btio/btio.c +++ b/btio/btio.c @@ -1649,6 +1649,27 @@ static gboolean sco_get(int sock, GError **err, BtIOOption opt1, va_list args) return TRUE; } +static bool get_bc_sid(int sock, uint8_t *sid, GError **err) +{ + struct { + struct sockaddr_iso iso; + struct sockaddr_iso_bc bc; + } addr; + socklen_t olen; + + olen = sizeof(addr); + memset(&addr, 0, olen); + if (getpeername(sock, (void *)&addr, &olen) < 0 || + olen != sizeof(addr)) { + ERROR_FAILED(err, "getpeername", errno); + return false; + } + + *sid = addr.iso.iso_bc->bc_sid; + + return true; +} + static gboolean iso_get(int sock, GError **err, BtIOOption opt1, va_list args) { BtIOOption opt = opt1; @@ -1657,6 +1678,7 @@ static gboolean iso_get(int sock, GError **err, BtIOOption opt1, va_list args) struct bt_iso_base base; socklen_t len; uint32_t phy; + uint8_t bc_sid; len = sizeof(qos); memset(&qos, 0, len); @@ -1721,6 +1743,12 @@ static gboolean iso_get(int sock, GError **err, BtIOOption opt1, va_list args) case BT_IO_OPT_BASE: *(va_arg(args, struct bt_iso_base *)) = base; break; + case BT_IO_OPT_ISO_BC_SID: + if (!get_bc_sid(sock, &bc_sid, err)) + return FALSE; + + *(va_arg(args, uint8_t *)) = bc_sid; + break; case BT_IO_OPT_HANDLE: case BT_IO_OPT_CLASS: case BT_IO_OPT_DEFER_TIMEOUT: @@ -1736,7 +1764,6 @@ static gboolean iso_get(int sock, GError **err, BtIOOption opt1, va_list args) case BT_IO_OPT_FLUSHABLE: case BT_IO_OPT_PRIORITY: case BT_IO_OPT_VOICE: - case BT_IO_OPT_ISO_BC_SID: case BT_IO_OPT_ISO_BC_NUM_BIS: case BT_IO_OPT_ISO_BC_BIS: case BT_IO_OPT_INVALID: From patchwork Wed Apr 16 16:04:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Augusto von Dentz X-Patchwork-Id: 881685 Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) (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 51917211276 for ; Wed, 16 Apr 2025 16:04:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819492; cv=none; b=A9WdT+NqsbhkZOVVJI5ElJRts/XxUhGyoO7zH1CVc9XfgNlwMoW1XFUT07mv622vecP1DbUMeCNjDp6GKvBzxZ5/cixuCWksgoVpMpEq3oMpLSy11RM21hTmpaKJL1ffXg7MflBgEhHjUOv3B1HhrCmj05iIXgaodolT5Ubthwc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744819492; c=relaxed/simple; bh=SgsqgNkKR4j4LHuhbEW86j7JDfMHKDH4y6mzvihBRj8=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M8LXX56R3dVefqdBFujG6q/qRY4re8yoJQ8j9aolNwXtIsQ3ZiJ2Q1f8G3HHBv3mA8yaV1ecT+DyAZH2KEVY4PkjlVMHIBpsGcQ6Lu1u5ot/KTHdC2e3OVNlFBDflft+X8Xx+/MAsKv87JhPoYn+CdLcEr07Lmy7Z0H7euatSEU= 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=TCV7fpBR; arc=none smtp.client-ip=209.85.219.54 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TCV7fpBR" Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6f0cfbe2042so9246736d6.1 for ; Wed, 16 Apr 2025 09:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744819488; x=1745424288; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=TYO8tePVhqNcc/Lq2pqvHjQYNefQ+Sf1a7mfkT1hWBo=; b=TCV7fpBRcB3RfFkhOYDChxnsL7Z4jVSiLTpCfMgwiaWNh1r6YN6U9Javfd0QOJ4HF7 rxbamAr0RyNg1D2sn235FNf/pwwkqtgRdhpJecnL8Y/ISSin2VRlGzZhd+vg9380EbG3 uehyfSuVzFZ1QHOpnT8QqC4d/Eorefhvd761U95ZSW+GRJ3DNll/3fdOQSoVPfD12Vfs uWRD8dUtqRLi+CE50o1ubo/m/nvvsdlW/5KODcTd9OvKoKNlzzv0Sk0uybToMnAkkqM+ Gyk0h2NAD0Op8q4coUHbzqjPFcBjIFNSpyXtUbJXQH0EV8vpio91zPsQGjmIKKkpU50B cUhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744819488; x=1745424288; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TYO8tePVhqNcc/Lq2pqvHjQYNefQ+Sf1a7mfkT1hWBo=; b=aGa/ABsiqBfvNM78AjRJxlV0A1gH29ZDS3kuLwpSJO0fl4s08Ss/XJXLVylQyq7S5y L44j1UC5x+cgdSNNa8+RglaTL59hcUyhW9TV8led6vG9RKJ0IjZlMsOiSlkrVEcXUvGk JyfrpZ34uJaVrzY2P2LvgbA1efO41FoftsXXSjPAR9KIMTga+J5u3aaliDHvoxz6glRp g8IWqjbsl1GxjlJoEd3xujkRMhHJcHplgrv5ltQEpt6axXwwMbwdmd+WUJj+4DtQLuTM EC7WecjLOCpQijaUjZyPYZyS9VTbu70KPSawe0q2sh4TB18jAnsvv6R+rVs9kOh0xvs0 tcLQ== X-Gm-Message-State: AOJu0YxrPf8EEd+jpJ1M4ooRIimhlBJwJLSitAeRpkCYneydDPpccRdM 6xJK8CfDOdAyc6++VVQX8H6DtdtBynXgLry36iqqVutMa5lPoMfmFO1wOk6K X-Gm-Gg: ASbGnctYnXeu0/hwfQ7UeMwT+LvPvdTjL8JeUgTHasGN98mdS/LAlOorA1Hlw9LodWH HwUkUQAT8DEjgcZk6IxXPg8DieuBMSdhyyjLdigYBFeLheAnANj3dPP34ZngUgyB0RUCgLxQ3Wr jal6dskycWhJOPDAHNMNvlS7xKmkBuJciYUsWS2ohBlbj6mDWaRwlsH4DjJbhIG3GtEICGL9/+b /f+NsRPQ4SDVZ3x2gGJY6R79FFz2qtkm11gYY2E70WtDdztSlY2N6A3SvMSdnhMf4tkRUH59s6y vJ0JfHCsu4I939FJiQuqcrpn+3JflByszI4QBethQCsXVFrd8oxu8ftZN6ogizIgy6YwaKDbL1N H8nqg8rmoFA== X-Google-Smtp-Source: AGHT+IHmAwDH6AaKBTpTw7zfjHzYbyN1fjYNzrXYUZn4cYLhtaTyWU4tHIpjlkNr962B0yd93vAhXw== X-Received: by 2002:a05:6214:f25:b0:6e4:5a38:dd0f with SMTP id 6a1803df08f44-6f2b9955358mr1246476d6.4.1744819488314; Wed, 16 Apr 2025 09:04:48 -0700 (PDT) Received: from lvondent-mobl5.. (syn-050-089-067-214.res.spectrum.com. [50.89.67.214]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4c9c98afd43sm3094029137.20.2025.04.16.09.04.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 09:04:47 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 7/7] bap: Add support for using SID for broadcast receiver Date: Wed, 16 Apr 2025 12:04:33 -0400 Message-ID: <20250416160433.1822263-7-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250416160433.1822263-1-luiz.dentz@gmail.com> References: <20250416160433.1822263-1-luiz.dentz@gmail.com> Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Luiz Augusto von Dentz Broadcast receiver needs to set the SID of the advertisement, for now that is done by using 0xff which indicates to the kernel to perform to discover what is the actual SID in use over the air. --- profiles/audio/bap.c | 30 +++++++++++++++++------------- profiles/audio/bass.c | 19 ++++++++++++------- src/shared/bap.c | 11 ++++++----- src/shared/bap.h | 13 +++++++------ 4 files changed, 42 insertions(+), 31 deletions(-) diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c index 24763666ce96..88d17058592b 100644 --- a/profiles/audio/bap.c +++ b/profiles/audio/bap.c @@ -74,6 +74,7 @@ struct bap_setup { unsigned int io_id; bool recreate; bool cig_active; + uint8_t sid; struct iovec *caps; struct iovec *metadata; unsigned int id; @@ -1053,8 +1054,9 @@ static void iso_bcast_confirm_cb(GIOChannel *io, GError *err, void *user_data) } static void create_stream_for_bis(struct bap_data *bap_data, - struct bt_bap_pac *lpac, struct bt_bap_qos *qos, - struct iovec *caps, struct iovec *meta, char *path) + struct bt_bap_pac *lpac, uint8_t sid, + struct bt_bap_qos *qos, struct iovec *caps, + struct iovec *meta, char *path) { struct bap_setup *setup; @@ -1072,6 +1074,7 @@ static void create_stream_for_bis(struct bap_data *bap_data, setup->stream = bt_bap_stream_new(bap_data->bap, lpac, NULL, &setup->qos, caps); + setup->sid = sid; bt_bap_stream_set_user_data(setup->stream, path); bt_bap_stream_config(setup->stream, &setup->qos, caps, NULL, NULL); @@ -1079,29 +1082,27 @@ static void create_stream_for_bis(struct bap_data *bap_data, NULL, NULL); } -static void bis_handler(uint8_t bis, uint8_t sgrp, struct iovec *caps, - struct iovec *meta, struct bt_bap_qos *qos, void *user_data) +static void bis_handler(uint8_t sid, uint8_t bis, uint8_t sgrp, + struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos, void *user_data) { struct bap_data *data = user_data; struct bt_bap_pac *lpac; char *path; - bt_bap_bis_probe(data->bap, bis, sgrp, caps, meta, qos); + bt_bap_bis_probe(data->bap, sid, bis, sgrp, caps, meta, qos); /* Check if this BIS matches any local PAC */ - bt_bap_verify_bis(data->bap, bis, - caps, &lpac); + bt_bap_verify_bis(data->bap, bis, caps, &lpac); if (!lpac) return; - if (asprintf(&path, "%s/bis%d", - device_get_path(data->device), - bis) < 0) + if (asprintf(&path, "%s/sid%d/bis%d", device_get_path(data->device), + sid, bis) < 0) return; - create_stream_for_bis(data, lpac, qos, - caps, meta, path); + create_stream_for_bis(data, lpac, sid, qos, caps, meta, path); } static gboolean big_info_report_cb(GIOChannel *io, GIOCondition cond, @@ -1113,12 +1114,14 @@ static gboolean big_info_report_cb(GIOChannel *io, GIOCondition cond, struct bt_iso_qos qos; struct iovec iov; struct bt_bap_qos bap_qos = {0}; + uint8_t sid; DBG("BIG Info received"); bt_io_get(io, &err, BT_IO_OPT_BASE, &base, BT_IO_OPT_QOS, &qos, + BT_IO_OPT_ISO_BC_SID, &sid, BT_IO_OPT_INVALID); if (err) { error("%s", err->message); @@ -1147,7 +1150,7 @@ static gboolean big_info_report_cb(GIOChannel *io, GIOCondition cond, /* Create BAP QoS structure */ bt_bap_iso_qos_to_bap_qos(&qos, &bap_qos); - bt_bap_parse_base(&iov, &bap_qos, bap_debug, bis_handler, data); + bt_bap_parse_base(sid, &iov, &bap_qos, bap_debug, bis_handler, data); util_iov_free(bap_qos.bcast.bcode, 1); @@ -2941,6 +2944,7 @@ static void pa_and_big_sync(struct bap_setup *setup) btd_device_get_bdaddr_type(bap_data->device), BT_IO_OPT_MODE, BT_IO_MODE_ISO, BT_IO_OPT_QOS, &bap_sink_pa_qos, + BT_IO_OPT_ISO_BC_SID, setup->sid, BT_IO_OPT_INVALID); if (!bap_data->listen_io) { error("%s", err->message); diff --git a/profiles/audio/bass.c b/profiles/audio/bass.c index c36f432776b5..46ac0f4894e2 100644 --- a/profiles/audio/bass.c +++ b/profiles/audio/bass.c @@ -141,8 +141,9 @@ static struct bass_data *bass_data_new(struct btd_device *device); static void bass_data_add(struct bass_data *data); static void bass_data_remove(struct bass_data *data); -static void bis_probe(uint8_t bis, uint8_t sgrp, struct iovec *caps, - struct iovec *meta, struct bt_bap_qos *qos, void *user_data); +static void bis_probe(uint8_t sid, uint8_t bis, uint8_t sgrp, + struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos, void *user_data); static void bis_remove(struct bt_bap *bap, void *user_data); @@ -482,8 +483,9 @@ static void bass_add_bis(struct bass_setup *setup) setup_configure_stream(setup); } -static void bis_handler(uint8_t bis, uint8_t sgrp, struct iovec *caps, - struct iovec *meta, struct bt_bap_qos *qos, void *user_data) +static void bis_handler(uint8_t sid, uint8_t bis, uint8_t sgrp, + struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos, void *user_data) { struct bass_delegator *dg = user_data; struct bt_bap_pac *lpac; @@ -526,12 +528,14 @@ static gboolean big_info_cb(GIOChannel *io, GIOCondition cond, struct bt_iso_qos qos; struct iovec iov; struct bt_bap_qos bap_qos = {0}; + uint8_t sid; dg->io_id = 0; bt_io_get(io, &err, BT_IO_OPT_BASE, &base, BT_IO_OPT_QOS, &qos, + BT_IO_OPT_ISO_BC_SID, &sid, BT_IO_OPT_INVALID); if (err) { error("%s", err->message); @@ -545,7 +549,7 @@ static gboolean big_info_cb(GIOChannel *io, GIOCondition cond, /* Create BAP QoS structure */ bt_bap_iso_qos_to_bap_qos(&qos, &bap_qos); - bt_bap_parse_base(&iov, &bap_qos, bass_debug, bis_handler, dg); + bt_bap_parse_base(sid, &iov, &bap_qos, bass_debug, bis_handler, dg); util_iov_free(bap_qos.bcast.bcode, 1); @@ -1107,8 +1111,9 @@ static struct bass_assistant *assistant_new(struct btd_adapter *adapter, return assistant; } -static void bis_probe(uint8_t bis, uint8_t sgrp, struct iovec *caps, - struct iovec *meta, struct bt_bap_qos *qos, void *user_data) +static void bis_probe(uint8_t sid, uint8_t bis, uint8_t sgrp, + struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos, void *user_data) { struct btd_device *device = user_data; const struct queue_entry *entry; diff --git a/src/shared/bap.c b/src/shared/bap.c index 3758aa0000b0..3a11cb0820ec 100644 --- a/src/shared/bap.c +++ b/src/shared/bap.c @@ -5721,8 +5721,9 @@ bool bt_bap_bis_cb_unregister(struct bt_bap *bap, unsigned int id) return false; } -void bt_bap_bis_probe(struct bt_bap *bap, uint8_t bis, uint8_t sgrp, - struct iovec *caps, struct iovec *meta, struct bt_bap_qos *qos) +void bt_bap_bis_probe(struct bt_bap *bap, uint8_t sid, uint8_t bis, + uint8_t sgrp, struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos) { const struct queue_entry *entry; @@ -5737,7 +5738,7 @@ void bt_bap_bis_probe(struct bt_bap *bap, uint8_t bis, uint8_t sgrp, entry = entry->next; if (cb->probe) - cb->probe(bis, sgrp, caps, meta, qos, cb->data); + cb->probe(sid, bis, sgrp, caps, meta, qos, cb->data); } bt_bap_unref(bap); @@ -7341,7 +7342,7 @@ void bt_bap_verify_bis(struct bt_bap *bap, uint8_t bis_index, } -bool bt_bap_parse_base(struct iovec *iov, +bool bt_bap_parse_base(uint8_t sid, struct iovec *iov, struct bt_bap_qos *qos, util_debug_func_t func, bt_bap_bis_func_t handler, @@ -7452,7 +7453,7 @@ bool bt_bap_parse_base(struct iovec *iov, if (!bis_cc) continue; - handler(bis_index, idx, bis_cc, &meta, + handler(sid, bis_index, idx, bis_cc, &meta, qos, user_data); util_iov_free(bis_cc, 1); diff --git a/src/shared/bap.h b/src/shared/bap.h index dfd16998071b..d10581428e79 100644 --- a/src/shared/bap.h +++ b/src/shared/bap.h @@ -40,9 +40,9 @@ typedef void (*bt_bap_stream_func_t)(struct bt_bap_stream *stream, void *user_data); typedef void (*bt_bap_func_t)(struct bt_bap *bap, void *user_data); -typedef void (*bt_bap_bis_func_t)(uint8_t bis, uint8_t sgrp, - struct iovec *caps, struct iovec *meta, - struct bt_bap_qos *qos, void *user_data); +typedef void (*bt_bap_bis_func_t)(uint8_t sid, uint8_t bis, uint8_t sgrp, + struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos, void *user_data); typedef void (*bt_bap_bcode_reply_t)(void *user_data, int err); @@ -271,7 +271,7 @@ void bt_bap_verify_bis(struct bt_bap *bap, uint8_t bis_index, struct iovec *caps, struct bt_bap_pac **lpac); -bool bt_bap_parse_base(struct iovec *base, +bool bt_bap_parse_base(uint8_t sid, struct iovec *base, struct bt_bap_qos *qos, util_debug_func_t func, bt_bap_bis_func_t handler, @@ -284,8 +284,9 @@ unsigned int bt_bap_bis_cb_register(struct bt_bap *bap, bt_bap_destroy_func_t destroy); bool bt_bap_bis_cb_unregister(struct bt_bap *bap, unsigned int id); -void bt_bap_bis_probe(struct bt_bap *bap, uint8_t bis, uint8_t sgrp, - struct iovec *caps, struct iovec *meta, struct bt_bap_qos *qos); +void bt_bap_bis_probe(struct bt_bap *bap, uint8_t sid, uint8_t bis, + uint8_t sgrp, struct iovec *caps, struct iovec *meta, + struct bt_bap_qos *qos); void bt_bap_bis_remove(struct bt_bap *bap); void bt_bap_req_bcode(struct bt_bap_stream *stream,