core: Add parmas to set interleaving durations
authorHoward Chung <howardchung@google.com>
Fri, 30 Oct 2020 09:11:00 +0000 (17:11 +0800)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:33 +0000 (19:08 +0530)
This patch adds parameters to control the durations of allowlist scan
and no-filter scan when the kernel is doing interleaving scan.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
src/adapter.c
src/btd.h
src/main.c
src/main.conf

index 2c9f63e..f8b42dc 100644 (file)
@@ -9129,6 +9129,18 @@ static void load_default_system_params(struct btd_adapter *adapter)
                        goto done;
        }
 
+       if (btd_opts.defaults.le.advmon_allowlist_scan_duration) {
+               if (!mgmt_tlv_add_fixed(tlv_list, 0x001d,
+                       &btd_opts.defaults.le.advmon_allowlist_scan_duration))
+                       goto done;
+       }
+
+       if (btd_opts.defaults.le.advmon_no_filter_scan_duration) {
+               if (!mgmt_tlv_add_fixed(tlv_list, 0x001e,
+                       &btd_opts.defaults.le.advmon_no_filter_scan_duration))
+                       goto done;
+       }
+
        err = mgmt_send_tlv(adapter->mgmt, MGMT_OP_SET_DEF_SYSTEM_CONFIG,
                        adapter->dev_id, tlv_list, NULL, NULL, NULL);
 
index 6d49580..da7fca4 100755 (executable)
--- a/src/btd.h
+++ b/src/btd.h
@@ -71,6 +71,9 @@ struct btd_le_defaults {
        uint16_t        conn_latency;
        uint16_t        conn_lsto;
        uint16_t        autoconnect_timeout;
+
+       uint16_t        advmon_allowlist_scan_duration;
+       uint16_t        advmon_no_filter_scan_duration;
 };
 
 struct btd_defaults {
index 969091d..ce71b1b 100755 (executable)
@@ -119,6 +119,8 @@ static const char *le_options[] = {
        "ConnectionLatency",
        "ConnectionSupervisionTimeout",
        "Autoconnecttimeout",
+       "AdvMonAllowlistScanDuration",
+       "AdvMonNoFilterScanDuration",
        NULL
 };
 
@@ -502,6 +504,16 @@ static void parse_le_config(GKeyFile *config)
                  sizeof(btd_opts.defaults.le.autoconnect_timeout),
                  0x0001,
                  0x4000},
+               { "AdvMonAllowlistScanDuration",
+                 &btd_opts.defaults.le.advmon_allowlist_scan_duration,
+                 sizeof(btd_opts.defaults.le.advmon_allowlist_scan_duration),
+                 1,
+                 10000},
+               { "AdvMonNoFilterScanDuration",
+                 &btd_opts.defaults.le.advmon_no_filter_scan_duration,
+                 sizeof(btd_opts.defaults.le.advmon_no_filter_scan_duration),
+                 1,
+                 10000},
        };
        if (btd_opts.mode == BT_MODE_BREDR)
                return;
index 6de0b79..a896220 100755 (executable)
 #ConnectionSupervisionTimeout=
 #Autoconnecttimeout=
 
+# 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: