main: Add configurable le autoconnect timeout value
authorAlain Michaud <alainm@chromium.org>
Mon, 15 Jun 2020 14:52:52 +0000 (14:52 +0000)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 12 Apr 2021 09:00:49 +0000 (14:30 +0530)
This patch adds support for a configurable le autoconnect timer.

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

index 113d0f9c2eaff07eaf050b23cc0a88ca6519f4cd..e2c73a8108d429cf24cab4b13002246157ae59e0 100755 (executable)
@@ -3340,6 +3340,7 @@ Read Default System Configuration Command
                0x0018  LE Max Connection Interval
                0x0019  LE Connection Latency
                0x001a  LE Connection Supervision Timeout
+               0x001b  LE Autoconnect Timeout
 
        This command can be used at any time and will return a list of
        supported default parameters as well as their current value.
index 688d18853a7f78d730eb8ba919695f591b0aa40f..26a5a1f855cbb8ab5b18646d6c40b9ebc5fba772 100644 (file)
@@ -9197,6 +9197,14 @@ static void load_default_system_params(struct btd_adapter *adapter)
                len += sizeof(params[i].u16);
        }
 
+       if (main_opts.default_params.le_autoconnect_timeout) {
+               params[i].entry.type = 0x001b;
+               params[i].entry.length = sizeof(params[i].u16);
+               params[i].u16 = main_opts.default_params.le_autoconnect_timeout;
+               ++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)
index 9396dfe40f72db68e3d4d7def8a773f021f220f5..e675ba2f9d5ca0a7ca793083f5595eb9d2d6c234 100755 (executable)
@@ -91,6 +91,7 @@ struct main_opts {
                uint16_t        le_max_conn_interval;
                uint16_t        le_conn_latency;
                uint16_t        le_conn_lsto;
+               uint16_t        le_autoconnect_timeout;
        } default_params;
 
 
index 67e6691882bd4df4f2caf0487110d08abb8b6498..1c5d555a543145942a0be7d5137aa0aa5d35e2ff 100755 (executable)
@@ -124,6 +124,7 @@ static const char *controller_options[] = {
        "LEMaxConnectionInterval",
        "LEConnectionLatency",
        "LEConnectionSupervisionTimeout",
+       "LEAutoconnecttimeout",
        NULL
 };
 
@@ -414,6 +415,10 @@ static void parse_controller_config(GKeyFile *config)
                  &main_opts.default_params.le_scan_win_connect,
                  0x0004,
                  0x4000},
+               { "LEAutoconnecttimeout",
+                 &main_opts.default_params.le_autoconnect_timeout,
+                 0x0001,
+                 0x4000},
        };
        uint16_t i;
 
index fbd60bbdcc9059d8604c8cf8d66e8dce633a83d6..2b7a6f02dea424bf645c6a075c5999b998d50be5 100755 (executable)
 #LEMaxConnectionInterval=
 #LEConnectionLatency=
 #LEConnectionSupervisionTimeout=
+#LEAutoconnecttimeout=
 
 [GATT]
 # GATT attribute cache.