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 113d0f9..e2c73a8 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 688d188..26a5a1f 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 9396dfe..e675ba2 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 67e6691..1c5d555 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 fbd60bb..2b7a6f0 100755 (executable)
 #LEMaxConnectionInterval=
 #LEConnectionLatency=
 #LEConnectionSupervisionTimeout=
+#LEAutoconnecttimeout=
 
 [GATT]
 # GATT attribute cache.