From patchwork Tue Sep 29 10:56:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yun-hao Chung X-Patchwork-Id: 285382 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.9 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1DEB8C4727F for ; Tue, 29 Sep 2020 10:56:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D6EF120C09 for ; Tue, 29 Sep 2020 10:56:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="cinaYxH3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725535AbgI2K4L (ORCPT ); Tue, 29 Sep 2020 06:56:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725306AbgI2K4L (ORCPT ); Tue, 29 Sep 2020 06:56:11 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDBA8C061755 for ; Tue, 29 Sep 2020 03:56:10 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 140so4422051ybf.2 for ; Tue, 29 Sep 2020 03:56:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:to:cc; bh=+EMiw7AaqKMTc7moeMEEbaeFth4p8VcNu3tluYaRH/E=; b=cinaYxH3W1pTZymurBfk1cJTsO+Me+skJdMlZSAKxagEhxPA0GY+KgMy2PNeKu5oKp MTRRk6jefJAoO0mFBIj8IPnunsiex5a5ovz5UasqIfbgYWk3mmtYxsjryDmJC6A4UgTQ gKU/p2Cym1tO+1Spa3Exmd3idGA1l8Dft+8OKTzGRm1gwfl+aIufS7GbcusXu09FilJk 1/W6MY/tXAabCvyQ+nN4kOD0ReZXHA9i89si/87hXmekkzgGvKzDGTktv2Y8oLMIwUgJ AFaRNGLjI/yfb7H1OKEqQUQwzeMSdhwm15Q0xwvrpijSZLD7bgCaaoeKPcWIyMtKtgwM ppLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :to:cc; bh=+EMiw7AaqKMTc7moeMEEbaeFth4p8VcNu3tluYaRH/E=; b=FbZbBAa4cT/ibM9l+6VQYBkg5cdWDekuJlYuMTtec1Gcsc39yHaCMKUQ1wTpufG93s XW4yGddMKIcdgLOC5Ll88gbMODih/J8gFP6VCCIcr9RG6jr5+bt0lrKG3sK1Q1V7CW9r 5UKFyaOquxToHFuCDeohs/d1HnBZ6jCYRjylKmG2D6xIk02bRGlNM25P3Z91WRFC5EVG f65wV9FA9DjtDP6gheTqNDte0C1Njj+Q+glG54zSoUKaYOG6pYR56UmaEcsrm2gZpQeO riwCU7FVTeh664zYw2GVMIgDpKew2/Kxft/vpTdWS3VtxJHsfDfCskDfa4A1AfnUw3q2 9esw== X-Gm-Message-State: AOAM530AY8nQGvpo3biY0cnxpFbqybR+ImV37mxaX0Y93qnbLhrAWJS8 QnOE3MNfdysBDudG3/uBLT6O+Nbu884u8y3OMr9XLKxTSSQS865AT/HICUTv/ltJOZ6OKw/6cX4 U1EhWBlquvFOQuCBTW5Qy4rlt/Lvo/48SGsN6l3gLRJCy+AwI4p7Kf/NF9y6bFNlHxtgzoMt7Ua V5kgqTUcxwU0Y= X-Google-Smtp-Source: ABdhPJwAZeDbbODn3OYP8Zi4yWnpCJNW+esswDIKUUwI877Z11baj7kWUoH+YS+neXDw134VJeFl5hY8slgPL8Nuqw== Sender: "howardchung via sendgmr" X-Received: from howardchung-p920.tpe.corp.google.com ([2401:fa00:1:10:f693:9fff:fef4:4e45]) (user=howardchung job=sendgmr) by 2002:a25:3b14:: with SMTP id i20mr4651510yba.351.1601376970005; Tue, 29 Sep 2020 03:56:10 -0700 (PDT) Date: Tue, 29 Sep 2020 18:56:02 +0800 Message-Id: <20200929185522.BlueZ.v5.1.I1f083629d41c747a33a3937fbc199ea37dccde12@changeid> Mime-Version: 1.0 X-Mailer: git-send-email 2.28.0.709.gb0816b6eb0-goog Subject: [BlueZ PATCH v5 1/3] core: Add params to set interleaving durations From: Howard Chung To: linux-bluetooth@vger.kernel.org Cc: mmandlik@chromium.org, luiz.dentz@gmail.com, alainm@chromium.org, mcchou@chromium.org, Howard Chung Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org This patch adds parameters to control the durations of allowlist scan and no-filter scan when the kernel is doing interleaving scan. --- Changes in v5: - Fix compile warning Changes in v4: - Change type of EnableAdvMonInterleaveScan default to u8 - Add a patch for doc/mgmt-api.txt Changes in v3: - Set EnableAdvMonInterleaveScan default to Disable Changes in v2: - Fix typo in the commit title src/adapter.c | 18 ++++++++++++++++++ src/hcid.h | 3 +++ src/main.c | 10 ++++++++++ src/main.conf | 7 +++++++ 4 files changed, 38 insertions(+) diff --git a/src/adapter.c b/src/adapter.c index c0053000ac19..f072541aad35 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -4418,6 +4418,24 @@ static void load_default_system_params(struct btd_adapter *adapter) len += sizeof(params[i].u16); } + if (main_opts.default_params.advmon_allowlist_scan_duration) { + params[i].entry.type = 0x001d; + params[i].entry.length = sizeof(params[i].u16); + params[i].u16 = + main_opts.default_params.advmon_allowlist_scan_duration; + ++i; + len += sizeof(params[i].u16); + } + + if (main_opts.default_params.advmon_no_filter_scan_duration) { + params[i].entry.type = 0x001e; + params[i].entry.length = sizeof(params[i].u16); + params[i].u16 = + main_opts.default_params.advmon_no_filter_scan_duration; + ++i; + len += sizeof(params[i].u16); + } + err = mgmt_send(adapter->mgmt, MGMT_OP_SET_DEF_SYSTEM_CONFIG, adapter->dev_id, len, params, NULL, NULL, NULL); if (!err) diff --git a/src/hcid.h b/src/hcid.h index 95d4b9665193..713eab8e03ae 100644 --- a/src/hcid.h +++ b/src/hcid.h @@ -80,6 +80,9 @@ struct main_opts { uint16_t le_conn_latency; uint16_t le_conn_lsto; uint16_t le_autoconnect_timeout; + + uint16_t advmon_allowlist_scan_duration; + uint16_t advmon_no_filter_scan_duration; } default_params; diff --git a/src/main.c b/src/main.c index 77be776686a8..38f193a093df 100644 --- a/src/main.c +++ b/src/main.c @@ -110,6 +110,8 @@ static const char *controller_options[] = { "LEConnectionLatency", "LEConnectionSupervisionTimeout", "LEAutoconnecttimeout", + "AdvMonAllowlistScanDuration", + "AdvMonNoFilterScanDuration", NULL }; @@ -421,6 +423,14 @@ static void parse_controller_config(GKeyFile *config) &main_opts.default_params.le_autoconnect_timeout, 0x0001, 0x4000}, + { "AdvMonAllowlistScanDuration", + &main_opts.default_params.advmon_allowlist_scan_duration, + 1, + 10000}, + { "AdvMonNoFilterScanDuration", + &main_opts.default_params.advmon_no_filter_scan_duration, + 1, + 10000}, }; uint16_t i; diff --git a/src/main.conf b/src/main.conf index 8d85702d4316..3b341f44c9cf 100644 --- a/src/main.conf +++ b/src/main.conf @@ -152,6 +152,13 @@ #LEConnectionSupervisionTimeout= #LEAutoconnecttimeout= +# Scan duration during interleaving scan. Only used when scanning for ADV +# monitors. The units are msec. +# Default: 300 +#AdvMonAllowlistScanDuration= +# Default: 500 +#AdvMonNoFilterScanDuration= + [GATT] # GATT attribute cache. # Possible values: From patchwork Tue Sep 29 10:56:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yun-hao Chung X-Patchwork-Id: 252636 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.9 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A4D8C4346E for ; Tue, 29 Sep 2020 10:56:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C779F207C4 for ; Tue, 29 Sep 2020 10:56:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jE4ugx5j" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725774AbgI2K4Q (ORCPT ); Tue, 29 Sep 2020 06:56:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59774 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725306AbgI2K4Q (ORCPT ); Tue, 29 Sep 2020 06:56:16 -0400 Received: from mail-qt1-x849.google.com (mail-qt1-x849.google.com [IPv6:2607:f8b0:4864:20::849]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BA398C061755 for ; Tue, 29 Sep 2020 03:56:14 -0700 (PDT) Received: by mail-qt1-x849.google.com with SMTP id a16so2647119qtj.7 for ; Tue, 29 Sep 2020 03:56:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:in-reply-to:message-id:mime-version:references:subject :from:to:cc; bh=GnzdACP512zgJlZNer+AWXbyoPMk47HIJPVn+VkAO1U=; b=jE4ugx5jScfBHZv2LYCYdO2ihvTPgOSodmCUr2Pct4X3tabrNoblDPSwTyHKCVc/w8 UgareC4ZVPu/RN1gPUV2FoJKiFXQsBU+Iht3b7XViS/XSP2gmIMq1SRAssZjx30u0mNd GlCT/+EVArXmp2oZk/hlIDnaLGN4wk4FPOQnEci7TB6wi4/L6u3W4S8LxoOoiEKZUWy+ RXungaDKodDX9+wptiDUtvbNV3/ut1dz0U2mWxgQLjGP68d+dcMzoSYPCsJ29uRVp0uZ meE7njYg6afr/6NORdFfWs6DpcAZzfK7yHkdf+bXx/uDvipksn7jWDiJHfTKE+EnIrge SWrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=GnzdACP512zgJlZNer+AWXbyoPMk47HIJPVn+VkAO1U=; b=pyg1XXVDcxgcNyBAJEPa0Jrla/Xa36zUaPj+ikddBcax1joEkWE5o//eY86DdtLXIs alPEqWPjYetDBzj1yGzq203XAIv7YpSlo/tHHRes+R9q3TNDbX0OBBkfbcKk1jk+H0Oa Rh6zyepEF/uHDswJ4Hju/JNg5GciPHOgkK3X9n9QEwac6O5XQDKf7tSMrJcYt5K7RoQj BsisNE/30GRV0Uo7rv6h9+azYf8SpDR6wIUv1DNcL879OHfHxmqx/lgt6RafYo1YGRCe hLra2MXFwnC0HNzKu4wfMS/TTfm87pdvml/84kTlMs+VmG7piy8Cg/dMMIEM7nukg6dk 1Cmg== X-Gm-Message-State: AOAM530cZYXwUq6OFjWxIGlqwVQ/wjDL+y3m4Rwg3Y47OadxTfucOxbv 0fFt3s2VyEwYu5Ujmsy3y0jK7+XFKMZeplxzNI9AiHVoEx1xhY3qShRdBgXJCTcEaIlMrs1zb7O DD4KeIpD5E1091S4jmcXVJSbJ2B7MsgbbnaySDlR+YiHF2aKAt+HBHJzdzykiL8xfY3uEKySlpf GVmnFJLFDAs4o= X-Google-Smtp-Source: ABdhPJx5BeGhe4R+VZuaFOsS/NYf7WyyPp/rCWtGTvaMAH4m5c4tk03DpalPt1aSSLp703wnUvTdX5jSefM5DZc77Q== Sender: "howardchung via sendgmr" X-Received: from howardchung-p920.tpe.corp.google.com ([2401:fa00:1:10:f693:9fff:fef4:4e45]) (user=howardchung job=sendgmr) by 2002:ad4:41c4:: with SMTP id a4mr3670216qvq.60.1601376973698; Tue, 29 Sep 2020 03:56:13 -0700 (PDT) Date: Tue, 29 Sep 2020 18:56:03 +0800 In-Reply-To: <20200929185522.BlueZ.v5.1.I1f083629d41c747a33a3937fbc199ea37dccde12@changeid> Message-Id: <20200929185522.BlueZ.v5.2.Iac5207375d22fb7b96ae4ef73b49ae4ab457219c@changeid> Mime-Version: 1.0 References: <20200929185522.BlueZ.v5.1.I1f083629d41c747a33a3937fbc199ea37dccde12@changeid> X-Mailer: git-send-email 2.28.0.709.gb0816b6eb0-goog Subject: [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan From: Howard Chung To: linux-bluetooth@vger.kernel.org Cc: mmandlik@chromium.org, luiz.dentz@gmail.com, alainm@chromium.org, mcchou@chromium.org, Howard Chung Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org This patch adds parameter to enable/disable the interleave scan feature. --- Changes in v5: - Fix compile warning Changes in v4: - Set type of EnableAdvMonInterleaveScan to u8 - Add support of different sizes of parameters Changes in v3: - Set EnableAdvMonInterleaveScan default to Disable src/adapter.c | 10 ++++++++++ src/hcid.h | 1 + src/main.c | 45 +++++++++++++++++++++++++++++++++++++++++++-- src/main.conf | 6 ++++++ 4 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index f072541aad35..553db4aa8b1f 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -4169,6 +4169,7 @@ static void load_default_system_params(struct btd_adapter *adapter) struct mgmt_tlv entry; union { uint16_t u16; + uint8_t u8; }; } __packed *params; uint16_t i = 0; @@ -4436,6 +4437,15 @@ static void load_default_system_params(struct btd_adapter *adapter) len += sizeof(params[i].u16); } + if (main_opts.default_params.enable_advmon_interleave_scan != 0xFF) { + params[i].entry.type = 0x001f; + params[i].entry.length = sizeof(params[i].u8); + params[i].u8 = + main_opts.default_params.enable_advmon_interleave_scan; + ++i; + len += sizeof(params[i].u8); + } + err = mgmt_send(adapter->mgmt, MGMT_OP_SET_DEF_SYSTEM_CONFIG, adapter->dev_id, len, params, NULL, NULL, NULL); if (!err) diff --git a/src/hcid.h b/src/hcid.h index 713eab8e03ae..34d22b3470f9 100644 --- a/src/hcid.h +++ b/src/hcid.h @@ -83,6 +83,7 @@ struct main_opts { uint16_t advmon_allowlist_scan_duration; uint16_t advmon_no_filter_scan_duration; + uint8_t enable_advmon_interleave_scan; } default_params; diff --git a/src/main.c b/src/main.c index 38f193a093df..274af6bdcc0f 100644 --- a/src/main.c +++ b/src/main.c @@ -112,6 +112,7 @@ static const char *controller_options[] = { "LEAutoconnecttimeout", "AdvMonAllowlistScanDuration", "AdvMonNoFilterScanDuration", + "EnableAdvMonInterleaveScan", NULL }; @@ -307,130 +308,169 @@ static void parse_controller_config(GKeyFile *config) { static const struct { const char * const val_name; - uint16_t * const val; + void * const val; + const size_t size; const uint16_t min; const uint16_t max; } params[] = { { "BRPageScanType", &main_opts.default_params.br_page_scan_type, + sizeof(main_opts.default_params.br_page_scan_type), 0, 1}, { "BRPageScanInterval", &main_opts.default_params.br_page_scan_interval, + sizeof(main_opts.default_params.br_page_scan_interval), 0x0012, 0x1000}, { "BRPageScanWindow", &main_opts.default_params.br_page_scan_win, + sizeof(main_opts.default_params.br_page_scan_win), 0x0011, 0x1000}, { "BRInquiryScanType", &main_opts.default_params.br_scan_type, + sizeof(main_opts.default_params.br_scan_type), 0, 1}, { "BRInquiryScanInterval", &main_opts.default_params.br_scan_interval, + sizeof(main_opts.default_params.br_scan_interval), 0x0012, 0x1000}, { "BRInquiryScanWindow", &main_opts.default_params.br_scan_win, + sizeof(main_opts.default_params.br_scan_win), 0x0011, 0x1000}, { "BRLinkSupervisionTimeout", &main_opts.default_params.br_link_supervision_timeout, + sizeof(main_opts.default_params.br_link_supervision_timeout), 0x0001, 0xFFFF}, { "BRPageTimeout", &main_opts.default_params.br_page_timeout, + sizeof(main_opts.default_params.br_page_scan_win), 0x0001, 0xFFFF}, { "BRMinSniffInterval", &main_opts.default_params.br_min_sniff_interval, + sizeof(main_opts.default_params.br_min_sniff_interval), 0x0001, 0xFFFE}, { "BRMaxSniffInterval", &main_opts.default_params.br_max_sniff_interval, + sizeof(main_opts.default_params.br_max_sniff_interval), 0x0001, 0xFFFE}, { "LEMinAdvertisementInterval", &main_opts.default_params.le_min_adv_interval, + sizeof(main_opts.default_params.le_min_adv_interval), 0x0020, 0x4000}, { "LEMaxAdvertisementInterval", &main_opts.default_params.le_max_adv_interval, + sizeof(main_opts.default_params.le_max_adv_interval), 0x0020, 0x4000}, { "LEMultiAdvertisementRotationInterval", &main_opts.default_params.le_multi_adv_rotation_interval, + sizeof(main_opts.default_params. + le_multi_adv_rotation_interval), 0x0001, 0xFFFF}, { "LEScanIntervalAutoConnect", &main_opts.default_params.le_scan_interval_autoconnect, + sizeof(main_opts.default_params.le_scan_interval_autoconnect), 0x0004, 0x4000}, { "LEScanWindowAutoConnect", &main_opts.default_params.le_scan_win_autoconnect, + sizeof(main_opts.default_params.le_scan_win_autoconnect), 0x0004, 0x4000}, { "LEScanIntervalSuspend", &main_opts.default_params.le_scan_interval_suspend, + sizeof(main_opts.default_params.le_scan_interval_suspend), 0x0004, 0x4000}, { "LEScanWindowSuspend", &main_opts.default_params.le_scan_win_suspend, + sizeof(main_opts.default_params.le_scan_win_suspend), 0x0004, 0x4000}, { "LEScanIntervalDiscovery", &main_opts.default_params.le_scan_interval_discovery, + sizeof(main_opts.default_params.le_scan_interval_discovery), 0x0004, 0x4000}, { "LEScanWindowDiscovery", &main_opts.default_params.le_scan_win_discovery, + sizeof(main_opts.default_params.le_scan_win_discovery), 0x0004, 0x4000}, { "LEScanIntervalAdvMonitor", &main_opts.default_params.le_scan_interval_adv_monitor, + sizeof(main_opts.default_params.le_scan_interval_adv_monitor), 0x0004, 0x4000}, { "LEScanWindowAdvMonitor", &main_opts.default_params.le_scan_win_adv_monitor, + sizeof(main_opts.default_params.le_scan_win_adv_monitor), 0x0004, 0x4000}, { "LEScanIntervalConnect", &main_opts.default_params.le_scan_interval_connect, + sizeof(main_opts.default_params.le_scan_interval_connect), 0x0004, 0x4000}, { "LEScanWindowConnect", &main_opts.default_params.le_scan_win_connect, + sizeof(main_opts.default_params.le_scan_win_connect), 0x0004, 0x4000}, { "LEMinConnectionInterval", &main_opts.default_params.le_min_conn_interval, + sizeof(main_opts.default_params.le_min_conn_interval), 0x0006, 0x0C80}, { "LEMaxConnectionInterval", &main_opts.default_params.le_max_conn_interval, + sizeof(main_opts.default_params.le_max_conn_interval), 0x0006, 0x0C80}, { "LEConnectionLatency", &main_opts.default_params.le_conn_latency, + sizeof(main_opts.default_params.le_conn_latency), 0x0000, 0x01F3}, { "LEConnectionSupervisionTimeout", &main_opts.default_params.le_conn_lsto, + sizeof(main_opts.default_params.le_conn_lsto), 0x000A, 0x0C80}, { "LEAutoconnecttimeout", &main_opts.default_params.le_autoconnect_timeout, + sizeof(main_opts.default_params.le_autoconnect_timeout), 0x0001, 0x4000}, { "AdvMonAllowlistScanDuration", &main_opts.default_params.advmon_allowlist_scan_duration, + sizeof(main_opts.default_params. + advmon_allowlist_scan_duration), 1, 10000}, { "AdvMonNoFilterScanDuration", &main_opts.default_params.advmon_no_filter_scan_duration, + sizeof(main_opts.default_params.br_page_scan_win), 1, 10000}, + { "EnableAdvMonInterleaveScan", + &main_opts.default_params.enable_advmon_interleave_scan, + sizeof(main_opts.default_params. + enable_advmon_interleave_scan), + 0, + 1}, }; uint16_t i; @@ -449,7 +489,7 @@ static void parse_controller_config(GKeyFile *config) val = MAX(val, params[i].min); val = MIN(val, params[i].max); - *params[i].val = val; + memcpy(params[i].val, &val, params[i].size); ++main_opts.default_params.num_entries; } } @@ -698,6 +738,7 @@ static void init_defaults(void) main_opts.default_params.num_entries = 0; main_opts.default_params.br_page_scan_type = 0xFFFF; main_opts.default_params.br_scan_type = 0xFFFF; + main_opts.default_params.enable_advmon_interleave_scan = 0xFF; if (sscanf(VERSION, "%hhu.%hhu", &major, &minor) != 2) return; diff --git a/src/main.conf b/src/main.conf index 3b341f44c9cf..82ffc5813204 100644 --- a/src/main.conf +++ b/src/main.conf @@ -159,6 +159,12 @@ # Default: 500 #AdvMonNoFilterScanDuration= +# Enable/Disable Advertisement Monitor interleave scan for power saving. +# 0: disable +# 1: enable +# Defaults to 0 +#EnableAdvMonInterleaveScan= + [GATT] # GATT attribute cache. # Possible values: From patchwork Tue Sep 29 10:56:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yun-hao Chung X-Patchwork-Id: 285381 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.9 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50D78C4727F for ; Tue, 29 Sep 2020 10:56:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 16AD521734 for ; Tue, 29 Sep 2020 10:56:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="SIOlNjM0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727360AbgI2K4S (ORCPT ); Tue, 29 Sep 2020 06:56:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727403AbgI2K4S (ORCPT ); Tue, 29 Sep 2020 06:56:18 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E096C0613D0 for ; Tue, 29 Sep 2020 03:56:18 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id p187so4391740ybg.14 for ; Tue, 29 Sep 2020 03:56:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:in-reply-to:message-id:mime-version:references:subject :from:to:cc; bh=tUfIoHY+I51t089OtH1cmnT10uqLtMWw27M2pZamjGQ=; b=SIOlNjM0Tzc9GwmmuW+tWZInkxM14bE/TgDoLxJRnaky/W6dyiaGZOScwIgV8AS4Qj ukCMVLgx37FNaAuB8F7RlA28blL7tX9eqZ2VV9t6FHIHQQCHhvaAHHrjm3dHfTxbY171 087XNl2YSF4VqCSFsCRonFyYlPrHmrfaSW4X9CVYLUxaAwWjMOhRNMPOqRTZncF2uEkd wRuWXhSXLpZJfiltckZs9WymxyIrZgq4AKnaH1Za8IyI+VouaJEM7QmJ8hhrH1YAdtgU rHo07IhsnKTqB0RjH+FhLZ/+EUJ98FQGPY4hkVhzcgsh1Re5X/F6qC5w3XomCSK21wD+ eLXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=tUfIoHY+I51t089OtH1cmnT10uqLtMWw27M2pZamjGQ=; b=Jty6BiXKXXB9hWB63InyZoGJWTDex36IXe8Ec7Ogi+U8wAuMQljqR904iOu9eJ+vdw R8oTKZ/owwHC2gNKXRPbiNLbKeaU4O2OEd3h5mqSkL1XbqoYJQnzcYZUq1IOnR0DMyAI cAscJWmnqeqNy+NQB+sGJGh87qHjYLXWrjzStkWzr2ad01j+iPC7u0JyX57rVFOo9hT/ +SIjKZuTx9rYv4lNxeZMi1lM4CN1zhxyGmEnsBct3C59P3KKWmipkdZ+WZauo9sfgWMG 2dQabW6FQCPWe4k/C2yZKgUna/nYhxl637aPTAKG+xuN4kfO58snL6CbHRmbYOLsKn9p DAHA== X-Gm-Message-State: AOAM531G9W2Am91FnE5FNjIbmDvw56G1aW2HNcB5bTXWusZ8E3SbvyDB upee1TIrcL6m63AX5wFJj4vhPmzKHIZNbJDPwThxDCxOGcy9IjXQrnbMUyNZmYI+8gVfNgu/j2r DTRQmZ4eTh5927LGjpdlLjK5MwTFTPDafLwKSUdnTJUwoCuSddYF/ER+H59NvJxcCb8LBLS4Gfd Jl7Pl1Yq/66pg= X-Google-Smtp-Source: ABdhPJynLa++z8js+mdAZvFF8iVQyg5jofp+Nz0kCpaa4/P412VEcVcmPh+AZE+cfwIUbDTDLd/Y/koFDNAsWm3Thw== Sender: "howardchung via sendgmr" X-Received: from howardchung-p920.tpe.corp.google.com ([2401:fa00:1:10:f693:9fff:fef4:4e45]) (user=howardchung job=sendgmr) by 2002:a25:5c43:: with SMTP id q64mr5692337ybb.498.1601376977518; Tue, 29 Sep 2020 03:56:17 -0700 (PDT) Date: Tue, 29 Sep 2020 18:56:04 +0800 In-Reply-To: <20200929185522.BlueZ.v5.1.I1f083629d41c747a33a3937fbc199ea37dccde12@changeid> Message-Id: <20200929185522.BlueZ.v5.3.I7d35bfa961d5f9998833b0b015e02b81f804f9fe@changeid> Mime-Version: 1.0 References: <20200929185522.BlueZ.v5.1.I1f083629d41c747a33a3937fbc199ea37dccde12@changeid> X-Mailer: git-send-email 2.28.0.709.gb0816b6eb0-goog Subject: [BlueZ PATCH v5 3/3] doc: Add definition of advmon related parameters From: Howard Chung To: linux-bluetooth@vger.kernel.org Cc: mmandlik@chromium.org, luiz.dentz@gmail.com, alainm@chromium.org, mcchou@chromium.org, Howard Chung Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org This adds definition of the newly added parameters for advertisment monitor interleave scan. --- (no changes since v1) doc/mgmt-api.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/mgmt-api.txt b/doc/mgmt-api.txt index e7a7138249d1..45211dba7fbd 100644 --- a/doc/mgmt-api.txt +++ b/doc/mgmt-api.txt @@ -3279,6 +3279,9 @@ Read Default System Configuration Command 0x0019 LE Connection Latency 0x001a LE Connection Supervision Timeout 0x001b LE Autoconnect Timeout + 0x001d Advertisement Monitor Allowlist scan duration + 0x001e Advertisement Monitor No filter scan duration + 0x001f Enable Advertisement Monitor Interleave Scan This command can be used at any time and will return a list of supported default parameters as well as their current value.