From: Yun-Hao Chung <[email protected]>
Add an option in main.conf to configure the default RSSI sampling
period for advertisement monitor.
Reviewed-by: [email protected]
Reviewed-by: [email protected]
Reviewed-by: [email protected]
---
src/adv_monitor.c | 4 ++--
src/btd.h | 6 ++++++
src/main.c | 20 ++++++++++++++++++++
src/main.conf | 6 ++++++
4 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/src/adv_monitor.c b/src/adv_monitor.c
index 9f04aaefbf22..17f1777eb1da 100644
--- a/src/adv_monitor.c
+++ b/src/adv_monitor.c
@@ -25,6 +25,7 @@
#include "lib/mgmt.h"
#include "adapter.h"
+#include "btd.h"
#include "dbus-common.h"
#include "device.h"
#include "log.h"
@@ -49,7 +50,6 @@
#define ADV_MONITOR_DEFAULT_HIGH_TIMEOUT 10 /* second */
#define ADV_MONITOR_UNSET_SAMPLING_PERIOD 256 /* 100 ms */
#define ADV_MONITOR_MAX_SAMPLING_PERIOD 255 /* 100 ms */
-#define ADV_MONITOR_DEFAULT_SAMPLING_PERIOD 0 /* 100 ms */
struct btd_adv_monitor_manager {
struct btd_adapter *adapter;
@@ -831,7 +831,7 @@ static bool parse_rssi_and_timeout(struct adv_monitor *monitor,
h_rssi_timeout = ADV_MONITOR_DEFAULT_HIGH_TIMEOUT;
if (sampling_period == ADV_MONITOR_UNSET_SAMPLING_PERIOD)
- sampling_period = ADV_MONITOR_DEFAULT_SAMPLING_PERIOD;
+ sampling_period = btd_opts.advmon.rssi_sampling_period;
if (h_rssi < ADV_MONITOR_MIN_RSSI || h_rssi > ADV_MONITOR_MAX_RSSI ||
l_rssi < ADV_MONITOR_MIN_RSSI ||
diff --git a/src/btd.h b/src/btd.h
index 6af54a99a02b..d7288354698a 100644
--- a/src/btd.h
+++ b/src/btd.h
@@ -89,6 +89,10 @@ struct btd_avdtp_opts {
uint8_t stream_mode;
};
+struct btd_advmon_opts {
+ uint8_t rssi_sampling_period;
+};
+
struct btd_opts {
char *name;
uint32_t class;
@@ -123,6 +127,8 @@ struct btd_opts {
uint8_t key_size;
enum jw_repairing_t jw_repairing;
+
+ struct btd_advmon_opts advmon;
};
extern struct btd_opts btd_opts;
diff --git a/src/main.c b/src/main.c
index 57db9c134854..516509e3f076 100644
--- a/src/main.c
+++ b/src/main.c
@@ -145,6 +145,11 @@ static const char *avdtp_options[] = {
NULL
};
+static const char *advmon_options[] = {
+ "RSSISamplingPeriod",
+ NULL
+};
+
static const struct group_table {
const char *name;
const char **options;
@@ -155,6 +160,7 @@ static const struct group_table {
{ "Policy", policy_options },
{ "GATT", gatt_options },
{ "AVDTP", avdtp_options },
+ { "AdvMon", advmon_options },
{ }
};
@@ -802,6 +808,18 @@ static void parse_config(GKeyFile *config)
g_free(str);
}
+ val = g_key_file_get_integer(config, "AdvMon", "RSSISamplingPeriod",
+ &err);
+ if (err) {
+ DBG("%s", err->message);
+ g_clear_error(&err);
+ } else {
+ val = MIN(val, 0xFF);
+ val = MAX(val, 0);
+ DBG("RSSISamplingPeriod=%d", val);
+ btd_opts.advmon.rssi_sampling_period = val;
+ }
+
parse_br_config(config);
parse_le_config(config);
}
@@ -842,6 +860,8 @@ static void init_defaults(void)
btd_opts.avdtp.session_mode = BT_IO_MODE_BASIC;
btd_opts.avdtp.stream_mode = BT_IO_MODE_BASIC;
+
+ btd_opts.advmon.rssi_sampling_period = 0;
}
static void log_handler(const gchar *log_domain, GLogLevelFlags log_level,
diff --git a/src/main.conf b/src/main.conf
index bf8a86080a24..198899541459 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -248,3 +248,9 @@
# The value is in seconds.
# Default: 2
#ResumeDelay = 2
+
+[AdvMon]
+# Default RSSI Sampling Period. This is used when a client registers an
+# advertisement monitor and leaves the RSSISamplingPeriod unset.
+# Default: 0
+#RSSISamplingPeriod=0
--
2.31.1.818.g46aad6cb9e-goog
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=487211
---Test result---
Test Summary:
CheckPatch FAIL 0.38 seconds
GitLint PASS 0.11 seconds
Prep - Setup ELL PASS 44.60 seconds
Build - Prep PASS 0.10 seconds
Build - Configure PASS 7.98 seconds
Build - Make PASS 191.14 seconds
Make Check PASS 9.02 seconds
Make Distcheck PASS 238.86 seconds
Build w/ext ELL - Configure PASS 8.53 seconds
Build w/ext ELL - Make PASS 190.53 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf
Output:
core: Add RSSI sampling period in system parameter
WARNING:STATIC_CONST_CHAR_ARRAY: static const char * array should probably be static const char * const
#74: FILE: src/main.c:148:
+static const char *advmon_options[] = {
- total: 0 errors, 1 warnings, 93 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.
"[PATCH] core: Add RSSI sampling period in system parameter" has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG 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: GitLint - PASS
Desc: Run gitlint with rule in .gitlint
##############################
Test: Prep - Setup ELL - PASS
Desc: Clone, build, and install ELL
##############################
Test: Build - Prep - PASS
Desc: Prepare environment for build
##############################
Test: Build - Configure - PASS
Desc: Configure the BlueZ source tree
##############################
Test: Build - Make - PASS
Desc: Build the BlueZ source tree
##############################
Test: Make Check - PASS
Desc: Run 'make check'
##############################
Test: Make Distcheck - PASS
Desc: Run distcheck to check the distribution
##############################
Test: Build w/ext ELL - Configure - PASS
Desc: Configure BlueZ source with '--enable-external-ell' configuration
##############################
Test: Build w/ext ELL - Make - PASS
Desc: Build BlueZ source with '--enable-external-ell' configuration
---
Regards,
Linux Bluetooth
Hi Howard,
On Sun, May 23, 2021 at 8:02 PM <[email protected]> wrote:
>
> 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=487211
>
> ---Test result---
>
> Test Summary:
> CheckPatch FAIL 0.38 seconds
> GitLint PASS 0.11 seconds
> Prep - Setup ELL PASS 44.60 seconds
> Build - Prep PASS 0.10 seconds
> Build - Configure PASS 7.98 seconds
> Build - Make PASS 191.14 seconds
> Make Check PASS 9.02 seconds
> Make Distcheck PASS 238.86 seconds
> Build w/ext ELL - Configure PASS 8.53 seconds
> Build w/ext ELL - Make PASS 190.53 seconds
>
> Details
> ##############################
> Test: CheckPatch - FAIL
> Desc: Run checkpatch.pl script with rule in .checkpatch.conf
> Output:
> core: Add RSSI sampling period in system parameter
> WARNING:STATIC_CONST_CHAR_ARRAY: static const char * array should probably be static const char * const
> #74: FILE: src/main.c:148:
> +static const char *advmon_options[] = {
>
> - total: 0 errors, 1 warnings, 93 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.
>
> "[PATCH] core: Add RSSI sampling period in system parameter" has style problems, please review.
>
> NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG 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: GitLint - PASS
> Desc: Run gitlint with rule in .gitlint
>
> ##############################
> Test: Prep - Setup ELL - PASS
> Desc: Clone, build, and install ELL
>
> ##############################
> Test: Build - Prep - PASS
> Desc: Prepare environment for build
>
> ##############################
> Test: Build - Configure - PASS
> Desc: Configure the BlueZ source tree
>
> ##############################
> Test: Build - Make - PASS
> Desc: Build the BlueZ source tree
>
> ##############################
> Test: Make Check - PASS
> Desc: Run 'make check'
>
> ##############################
> Test: Make Distcheck - PASS
> Desc: Run distcheck to check the distribution
>
> ##############################
> Test: Build w/ext ELL - Configure - PASS
> Desc: Configure BlueZ source with '--enable-external-ell' configuration
>
> ##############################
> Test: Build w/ext ELL - Make - PASS
> Desc: Build BlueZ source with '--enable-external-ell' configuration
>
>
>
> ---
> Regards,
> Linux Bluetooth
Applied, thanks.
--
Luiz Augusto von Dentz