Bluetooth: Mesh: Use system workqueue for dhkey gen
Since the default process dhkey gen in bt rx, will block send Trans Ack, cause peer device send more package. Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
This commit is contained in:
parent
141467a261
commit
1b22324317
3 changed files with 19 additions and 3 deletions
|
@ -210,7 +210,7 @@ config BT_MESH_PB_ADV_TRANS_PDU_RETRANSMIT_COUNT
|
|||
|
||||
config BT_MESH_PB_ADV_TRANS_ACK_RETRANSMIT_COUNT
|
||||
int "Link Ack and Transaction Ack retransmit count"
|
||||
default 2
|
||||
default 0
|
||||
range 0 7
|
||||
help
|
||||
Controls the number of retransmissions of original Link Open and Transaction Acknowledgment PDU,
|
||||
|
|
|
@ -358,6 +358,13 @@ static void prov_dh_key_gen(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void prov_dh_key_gen_handler(struct k_work *work)
|
||||
{
|
||||
prov_dh_key_gen();
|
||||
}
|
||||
|
||||
static K_WORK_DEFINE(dh_gen_work, prov_dh_key_gen_handler);
|
||||
|
||||
static void prov_pub_key(const uint8_t *data)
|
||||
{
|
||||
LOG_DBG("Remote Public Key: %s", bt_hex(data, PUB_KEY_SIZE));
|
||||
|
@ -385,7 +392,7 @@ static void prov_pub_key(const uint8_t *data)
|
|||
PDU_LEN_PUB_KEY);
|
||||
}
|
||||
|
||||
prov_dh_key_gen();
|
||||
k_work_submit(&dh_gen_work);
|
||||
}
|
||||
|
||||
static void notify_input_complete(void)
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
#include "common/bt_str.h"
|
||||
|
||||
#include "host/long_wq.h"
|
||||
|
||||
#include "crypto.h"
|
||||
#include "adv.h"
|
||||
#include "mesh.h"
|
||||
|
@ -450,6 +452,13 @@ static void prov_dh_key_gen(void)
|
|||
send_confirm();
|
||||
}
|
||||
|
||||
static void prov_dh_key_gen_handler(struct k_work *work)
|
||||
{
|
||||
prov_dh_key_gen();
|
||||
}
|
||||
|
||||
static K_WORK_DEFINE(dh_gen_work, prov_dh_key_gen_handler);
|
||||
|
||||
static void prov_pub_key(const uint8_t *data)
|
||||
{
|
||||
LOG_DBG("Remote Public Key: %s", bt_hex(data, PUB_KEY_SIZE));
|
||||
|
@ -460,7 +469,7 @@ static void prov_pub_key(const uint8_t *data)
|
|||
memcpy(bt_mesh_prov_link.conf_inputs.pub_key_device, data, PUB_KEY_SIZE);
|
||||
bt_mesh_prov_link.bearer->clear_tx();
|
||||
|
||||
prov_dh_key_gen();
|
||||
k_work_submit(&dh_gen_work);
|
||||
}
|
||||
|
||||
static void notify_input_complete(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue