2021-05-24 02:46:11

by Yun-hao Chung

[permalink] [raw]
Subject: [Bluez PATCH v1] core: Add RSSI sampling period in system parameter

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


2021-05-24 03:02:52

by bluez.test.bot

[permalink] [raw]
Subject: RE: [Bluez,v1] core: Add RSSI sampling period in system parameter

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

2021-05-24 20:20:41

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [Bluez,v1] core: Add RSSI sampling period in system parameter

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