Bluetooth: Host: Automatically create EATT channels on connection

If the Kconfig BT_EATT_AUTO_CONNECT is enabled (on by default), the
host will try to connect BT_EATT_MAX EATT channels when a connection
to a peer is established.

Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
This commit is contained in:
Herman Berget 2022-01-26 15:45:08 +01:00 committed by Carles Cufí
commit 101a9a7525
5 changed files with 34 additions and 0 deletions

View file

@ -43,6 +43,14 @@ config BT_EATT_MAX
help
Number of Enhanced ATT bearers available.
config BT_EATT_AUTO_CONNECT
bool "Automatically connect EATT bearers when a link is established"
default y
help
The device will try to connect BT_EATT_MAX enhanced ATT bearers when a
connection to a peer is established.
config BT_EATT_SEC_LEVEL
int "Enhanced ATT bearer security level"
default 1

View file

@ -3127,6 +3127,29 @@ int bt_eatt_connect(struct bt_conn *conn, size_t num_channels)
return 0;
}
#if defined(CONFIG_BT_EATT_AUTO_CONNECT)
void eatt_auto_connect(struct bt_conn *conn, uint8_t conn_err)
{
int eatt_err;
if (conn_err) {
return;
}
eatt_err = att_schedule_eatt_connect(conn, CONFIG_BT_EATT_MAX);
if (eatt_err < 0) {
BT_WARN("Automatic creation of EATT bearers failed on "
"connection %s with error %d",
bt_addr_le_str_real(bt_conn_get_dst(conn)), eatt_err);
}
}
BT_CONN_CB_DEFINE(conn_callbacks) = {
.connected = eatt_auto_connect,
};
#endif /* CONFIG_BT_EATT_AUTO_CONNECT */
int bt_eatt_disconnect(struct bt_conn *conn)
{
struct bt_att_chan *chan;

View file

@ -8,6 +8,7 @@ CONFIG_BT_EATT=y
CONFIG_BT_L2CAP_ECRED=y
CONFIG_BT_EATT_MAX=5
CONFIG_BT_MAX_CONN=1
CONFIG_BT_EATT_AUTO_CONNECT=n
CONFIG_BT_TESTING=y
CONFIG_BT_DEBUG_LOG=y

View file

@ -9,6 +9,7 @@ CONFIG_BT_L2CAP_ECRED=y
CONFIG_BT_EATT_MAX=5
CONFIG_BT_MAX_CONN=1
CONFIG_BT_EATT_SEC_LEVEL=2
CONFIG_BT_EATT_AUTO_CONNECT=n
CONFIG_BT_TESTING=y
CONFIG_BT_DEBUG_LOG=y

View file

@ -8,6 +8,7 @@ CONFIG_BT_EATT=y
CONFIG_BT_L2CAP_ECRED=y
CONFIG_BT_EATT_MAX=5
CONFIG_BT_MAX_CONN=2
CONFIG_BT_EATT_AUTO_CONNECT=n
CONFIG_BT_TESTING=y
CONFIG_BT_DEBUG_LOG=y