* [BlueZ PATCH v5 1/3] core: Add params to set interleaving durations
@ 2020-09-29 10:56 Howard Chung
2020-09-29 10:56 ` [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan Howard Chung
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Howard Chung @ 2020-09-29 10:56 UTC (permalink / raw)
To: linux-bluetooth; +Cc: mmandlik, luiz.dentz, alainm, mcchou, Howard Chung
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:
--
2.28.0.709.gb0816b6eb0-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan
2020-09-29 10:56 [BlueZ PATCH v5 1/3] core: Add params to set interleaving durations Howard Chung
@ 2020-09-29 10:56 ` Howard Chung
2020-09-29 19:50 ` Luiz Augusto von Dentz
2020-09-29 10:56 ` [BlueZ PATCH v5 3/3] doc: Add definition of advmon related parameters Howard Chung
2020-09-29 11:30 ` [BlueZ,v5,1/3] core: Add params to set interleaving durations bluez.test.bot
2 siblings, 1 reply; 5+ messages in thread
From: Howard Chung @ 2020-09-29 10:56 UTC (permalink / raw)
To: linux-bluetooth; +Cc: mmandlik, luiz.dentz, alainm, mcchou, Howard Chung
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:
--
2.28.0.709.gb0816b6eb0-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [BlueZ PATCH v5 3/3] doc: Add definition of advmon related parameters
2020-09-29 10:56 [BlueZ PATCH v5 1/3] core: Add params to set interleaving durations Howard Chung
2020-09-29 10:56 ` [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan Howard Chung
@ 2020-09-29 10:56 ` Howard Chung
2020-09-29 11:30 ` [BlueZ,v5,1/3] core: Add params to set interleaving durations bluez.test.bot
2 siblings, 0 replies; 5+ messages in thread
From: Howard Chung @ 2020-09-29 10:56 UTC (permalink / raw)
To: linux-bluetooth; +Cc: mmandlik, luiz.dentz, alainm, mcchou, Howard Chung
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.
--
2.28.0.709.gb0816b6eb0-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* RE: [BlueZ,v5,1/3] core: Add params to set interleaving durations
2020-09-29 10:56 [BlueZ PATCH v5 1/3] core: Add params to set interleaving durations Howard Chung
2020-09-29 10:56 ` [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan Howard Chung
2020-09-29 10:56 ` [BlueZ PATCH v5 3/3] doc: Add definition of advmon related parameters Howard Chung
@ 2020-09-29 11:30 ` bluez.test.bot
2 siblings, 0 replies; 5+ messages in thread
From: bluez.test.bot @ 2020-09-29 11:30 UTC (permalink / raw)
To: linux-bluetooth, howardchung
[-- Attachment #1: Type: text/plain, Size: 2555 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=357041
---Test result---
##############################
Test: CheckPatch - FAIL
Output:
core: Add param to disable interleave scan
WARNING:MULTILINE_DEREFERENCE: Avoid multiple line dereference - prefer 'main_opts.default_params.le_multi_adv_rotation_interval'
#133: FILE: src/main.c:379:
+ sizeof(main_opts.default_params.
+ le_multi_adv_rotation_interval),
WARNING:MULTILINE_DEREFERENCE: Avoid multiple line dereference - prefer 'main_opts.default_params.advmon_allowlist_scan_duration'
#214: FILE: src/main.c:460:
+ sizeof(main_opts.default_params.
+ advmon_allowlist_scan_duration),
WARNING:MULTILINE_DEREFERENCE: Avoid multiple line dereference - prefer 'main_opts.default_params.enable_advmon_interleave_scan'
#225: FILE: src/main.c:471:
+ sizeof(main_opts.default_params.
+ enable_advmon_interleave_scan),
- total: 0 errors, 3 warnings, 233 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
Your patch has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPLIT_STRING SSCANF_TO_KSTRTO
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
doc: Add definition of advmon related parameters
WARNING:TYPO_SPELLING: 'advertisment' may be misspelled - perhaps 'advertisement'?
#6:
This adds definition of the newly added parameters for advertisment
- total: 0 errors, 1 warnings, 9 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
Your patch has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPLIT_STRING SSCANF_TO_KSTRTO
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
##############################
Test: CheckGitLint - PASS
##############################
Test: CheckBuild - PASS
##############################
Test: MakeCheck - PASS
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan
2020-09-29 10:56 ` [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan Howard Chung
@ 2020-09-29 19:50 ` Luiz Augusto von Dentz
0 siblings, 0 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2020-09-29 19:50 UTC (permalink / raw)
To: Howard Chung
Cc: linux-bluetooth, Manish Mandlik, Alain Michaud, Miao-chen Chou
Hi Howard,
On Tue, Sep 29, 2020 at 3:56 AM Howard Chung <howardchung@google.com> wrote:
>
> 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);
> + }
> +
We could perhaps have a zero length here so that just the presence of
the type indicates it should be enabled, how about that?
> 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:
> --
> 2.28.0.709.gb0816b6eb0-goog
>
--
Luiz Augusto von Dentz
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-09-29 19:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-29 10:56 [BlueZ PATCH v5 1/3] core: Add params to set interleaving durations Howard Chung
2020-09-29 10:56 ` [BlueZ PATCH v5 2/3] core: Add param to disable interleave scan Howard Chung
2020-09-29 19:50 ` Luiz Augusto von Dentz
2020-09-29 10:56 ` [BlueZ PATCH v5 3/3] doc: Add definition of advmon related parameters Howard Chung
2020-09-29 11:30 ` [BlueZ,v5,1/3] core: Add params to set interleaving durations bluez.test.bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.