aboutsummaryrefslogtreecommitdiff
path: root/stack/smp/smp_br_main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'stack/smp/smp_br_main.cc')
-rw-r--r--stack/smp/smp_br_main.cc107
1 files changed, 56 insertions, 51 deletions
diff --git a/stack/smp/smp_br_main.cc b/stack/smp/smp_br_main.cc
index b06055fb5..b311d9d25 100644
--- a/stack/smp/smp_br_main.cc
+++ b/stack/smp/smp_br_main.cc
@@ -19,8 +19,10 @@
#include "bt_target.h"
#include <string.h>
-#include "log/log.h"
+
+#include "osi/include/log.h"
#include "smp_int.h"
+#include "types/hci_role.h"
const char* const smp_br_state_name[SMP_BR_STATE_MAX + 1] = {
"SMP_BR_STATE_IDLE", "SMP_BR_STATE_WAIT_APP_RSP",
@@ -31,7 +33,7 @@ const char* const smp_br_event_name[SMP_BR_MAX_EVT] = {
"BR_PAIRING_REQ_EVT", "BR_PAIRING_RSP_EVT",
"BR_CONFIRM_EVT", "BR_RAND_EVT",
"BR_PAIRING_FAILED_EVT", "BR_ENCRPTION_INFO_EVT",
- "BR_MASTER_ID_EVT", "BR_ID_INFO_EVT",
+ "BR_CENTRAL_ID_EVT", "BR_ID_INFO_EVT",
"BR_ID_ADDR_EVT", "BR_SIGN_INFO_EVT",
"BR_SECURITY_REQ_EVT", "BR_PAIR_PUBLIC_KEY_EVT",
"BR_PAIR_DHKEY_CHCK_EVT", "BR_PAIR_KEYPR_NOTIF_EVT",
@@ -73,23 +75,23 @@ enum {
};
static const tSMP_ACT smp_br_sm_action[] = {
- smp_send_pair_req, /* SMP_SEND_PAIR_REQ */
- smp_br_send_pair_response, /* SMP_BR_SEND_PAIR_RSP */
- smp_send_pair_fail, /* SMP_SEND_PAIR_FAIL */
- smp_send_id_info, /* SMP_SEND_ID_INFO */
- smp_br_process_pairing_command, /* SMP_BR_PROC_PAIR_CMD */
- smp_proc_pair_fail, /* SMP_PROC_PAIR_FAIL */
- smp_proc_id_info, /* SMP_PROC_ID_INFO */
- smp_proc_id_addr, /* SMP_PROC_ID_ADDR */
- smp_proc_srk_info, /* SMP_PROC_SRK_INFO */
- smp_br_process_security_grant, /* SMP_BR_PROC_SEC_GRANT */
- smp_br_process_slave_keys_response, /* SMP_BR_PROC_SL_KEYS_RSP */
- smp_br_select_next_key, /* SMP_BR_KEY_DISTRIBUTION */
- smp_br_pairing_complete, /* SMP_BR_PAIRING_COMPLETE */
- smp_send_app_cback, /* SMP_SEND_APP_CBACK */
- smp_br_check_authorization_request, /* SMP_BR_CHECK_AUTH_REQ */
- smp_pair_terminate, /* SMP_PAIR_TERMINATE */
- smp_idle_terminate /* SMP_IDLE_TERMINATE */
+ smp_send_pair_req, /* SMP_SEND_PAIR_REQ */
+ smp_br_send_pair_response, /* SMP_BR_SEND_PAIR_RSP */
+ smp_send_pair_fail, /* SMP_SEND_PAIR_FAIL */
+ smp_send_id_info, /* SMP_SEND_ID_INFO */
+ smp_br_process_pairing_command, /* SMP_BR_PROC_PAIR_CMD */
+ smp_proc_pair_fail, /* SMP_PROC_PAIR_FAIL */
+ smp_proc_id_info, /* SMP_PROC_ID_INFO */
+ smp_proc_id_addr, /* SMP_PROC_ID_ADDR */
+ smp_proc_srk_info, /* SMP_PROC_SRK_INFO */
+ smp_br_process_security_grant, /* SMP_BR_PROC_SEC_GRANT */
+ smp_br_process_peripheral_keys_response, /* SMP_BR_PROC_SL_KEYS_RSP */
+ smp_br_select_next_key, /* SMP_BR_KEY_DISTRIBUTION */
+ smp_br_pairing_complete, /* SMP_BR_PAIRING_COMPLETE */
+ smp_send_app_cback, /* SMP_SEND_APP_CBACK */
+ smp_br_check_authorization_request, /* SMP_BR_CHECK_AUTH_REQ */
+ smp_pair_terminate, /* SMP_PAIR_TERMINATE */
+ smp_idle_terminate /* SMP_IDLE_TERMINATE */
};
static const uint8_t smp_br_all_table[][SMP_BR_SM_NUM_COLS] = {
@@ -101,8 +103,8 @@ static const uint8_t smp_br_all_table[][SMP_BR_SM_NUM_COLS] = {
/* BR_L2CAP_DISCONN */
{SMP_PAIR_TERMINATE, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_IDLE}};
-/************ SMP Master FSM State/Event Indirection Table **************/
-static const uint8_t smp_br_master_entry_map[][SMP_BR_STATE_MAX] = {
+/************ SMP Central FSM State/Event Indirection Table **************/
+static const uint8_t smp_br_central_entry_map[][SMP_BR_STATE_MAX] = {
/* br_state name: Idle WaitApp Pair Bond
Rsp ReqRsp Pend */
/* BR_PAIRING_REQ */ {0, 0, 0, 0},
@@ -111,7 +113,7 @@ static const uint8_t smp_br_master_entry_map[][SMP_BR_STATE_MAX] = {
/* BR_RAND */ {0, 0, 0, 0},
/* BR_PAIRING_FAILED */ {0, 0x81, 0x81, 0},
/* BR_ENCRPTION_INFO */ {0, 0, 0, 0},
- /* BR_MASTER_ID */ {0, 0, 0, 0},
+ /* BR_CENTRAL_ID */ {0, 0, 0, 0},
/* BR_ID_INFO */ {0, 0, 0, 1},
/* BR_ID_ADDR */ {0, 0, 0, 2},
/* BR_SIGN_INFO */ {0, 0, 0, 3},
@@ -131,7 +133,7 @@ static const uint8_t smp_br_master_entry_map[][SMP_BR_STATE_MAX] = {
/* BR_BOND_REQ */ {0, 0, 2, 0},
/* BR_DISCARD_SEC_REQ */ {0, 0, 0, 0}};
-static const uint8_t smp_br_master_idle_table[][SMP_BR_SM_NUM_COLS] = {
+static const uint8_t smp_br_central_idle_table[][SMP_BR_SM_NUM_COLS] = {
/* Event Action Next State */
/* BR_L2CAP_CONN */
{SMP_SEND_APP_CBACK, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_WAIT_APP_RSP},
@@ -139,13 +141,13 @@ static const uint8_t smp_br_master_idle_table[][SMP_BR_SM_NUM_COLS] = {
{SMP_IDLE_TERMINATE, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_IDLE}};
static const uint8_t
- smp_br_master_wait_appln_response_table[][SMP_BR_SM_NUM_COLS] = {
+ smp_br_central_wait_appln_response_table[][SMP_BR_SM_NUM_COLS] = {
/* Event Action Next State */
/* BR_KEYS_RSP */
{SMP_SEND_PAIR_REQ, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_PAIR_REQ_RSP}};
static const uint8_t
- smp_br_master_pair_request_response_table[][SMP_BR_SM_NUM_COLS] = {
+ smp_br_central_pair_request_response_table[][SMP_BR_SM_NUM_COLS] = {
/* Event Action Next State */
/* BR_PAIRING_RSP */
{SMP_BR_PROC_PAIR_CMD, SMP_BR_CHECK_AUTH_REQ,
@@ -153,7 +155,7 @@ static const uint8_t
/* BR_BOND_REQ */
{SMP_BR_SM_NO_ACTION, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING}};
-static const uint8_t smp_br_master_bond_pending_table[][SMP_BR_SM_NUM_COLS] = {
+static const uint8_t smp_br_central_bond_pending_table[][SMP_BR_SM_NUM_COLS] = {
/* Event Action Next State */
/* BR_ID_INFO */
{SMP_PROC_ID_INFO, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING},
@@ -162,7 +164,7 @@ static const uint8_t smp_br_master_bond_pending_table[][SMP_BR_SM_NUM_COLS] = {
/* BR_SIGN_INFO */
{SMP_PROC_SRK_INFO, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING}};
-static const uint8_t smp_br_slave_entry_map[][SMP_BR_STATE_MAX] = {
+static const uint8_t smp_br_peripheral_entry_map[][SMP_BR_STATE_MAX] = {
/* br_state name: Idle WaitApp Pair Bond
Rsp ReqRsp Pend */
/* BR_PAIRING_REQ */ {1, 0, 0, 0},
@@ -171,7 +173,7 @@ static const uint8_t smp_br_slave_entry_map[][SMP_BR_STATE_MAX] = {
/* BR_RAND */ {0, 0, 0, 0},
/* BR_PAIRING_FAILED */ {0, 0x81, 0x81, 0x81},
/* BR_ENCRPTION_INFO */ {0, 0, 0, 0},
- /* BR_MASTER_ID */ {0, 0, 0, 0},
+ /* BR_CENTRAL_ID */ {0, 0, 0, 0},
/* BR_ID_INFO */ {0, 0, 0, 1},
/* BR_ID_ADDR */ {0, 0, 0, 2},
/* BR_SIGN_INFO */ {0, 0, 0, 3},
@@ -191,13 +193,13 @@ static const uint8_t smp_br_slave_entry_map[][SMP_BR_STATE_MAX] = {
/* BR_BOND_REQ */ {0, 3, 0, 0},
/* BR_DISCARD_SEC_REQ */ {0, 0, 0, 0}};
-static const uint8_t smp_br_slave_idle_table[][SMP_BR_SM_NUM_COLS] = {
+static const uint8_t smp_br_peripheral_idle_table[][SMP_BR_SM_NUM_COLS] = {
/* Event Action Next State */
/* BR_PAIRING_REQ */
{SMP_BR_PROC_PAIR_CMD, SMP_SEND_APP_CBACK, SMP_BR_STATE_WAIT_APP_RSP}};
static const uint8_t
- smp_br_slave_wait_appln_response_table[][SMP_BR_SM_NUM_COLS] = {
+ smp_br_peripheral_wait_appln_response_table[][SMP_BR_SM_NUM_COLS] = {
/* Event Action Next State */
/* BR_API_SEC_GRANT */
{SMP_BR_PROC_SEC_GRANT, SMP_SEND_APP_CBACK, SMP_BR_STATE_WAIT_APP_RSP},
@@ -208,34 +210,35 @@ static const uint8_t
{SMP_BR_KEY_DISTRIBUTION, SMP_BR_SM_NO_ACTION,
SMP_BR_STATE_BOND_PENDING}};
-static const uint8_t smp_br_slave_bond_pending_table[][SMP_BR_SM_NUM_COLS] = {
- /* Event Action Next State */
- /* BR_ID_INFO */
- {SMP_PROC_ID_INFO, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING},
- /* BR_ID_ADDR */
- {SMP_PROC_ID_ADDR, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING},
- /* BR_SIGN_INFO */
- {SMP_PROC_SRK_INFO, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING}};
+static const uint8_t
+ smp_br_peripheral_bond_pending_table[][SMP_BR_SM_NUM_COLS] = {
+ /* Event Action Next State */
+ /* BR_ID_INFO */
+ {SMP_PROC_ID_INFO, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING},
+ /* BR_ID_ADDR */
+ {SMP_PROC_ID_ADDR, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING},
+ /* BR_SIGN_INFO */
+ {SMP_PROC_SRK_INFO, SMP_BR_SM_NO_ACTION, SMP_BR_STATE_BOND_PENDING}};
static const tSMP_BR_SM_TBL smp_br_state_table[][2] = {
/* SMP_BR_STATE_IDLE */
- {smp_br_master_idle_table, smp_br_slave_idle_table},
+ {smp_br_central_idle_table, smp_br_peripheral_idle_table},
/* SMP_BR_STATE_WAIT_APP_RSP */
- {smp_br_master_wait_appln_response_table,
- smp_br_slave_wait_appln_response_table},
+ {smp_br_central_wait_appln_response_table,
+ smp_br_peripheral_wait_appln_response_table},
/* SMP_BR_STATE_PAIR_REQ_RSP */
- {smp_br_master_pair_request_response_table, NULL},
+ {smp_br_central_pair_request_response_table, NULL},
/* SMP_BR_STATE_BOND_PENDING */
- {smp_br_master_bond_pending_table, smp_br_slave_bond_pending_table},
+ {smp_br_central_bond_pending_table, smp_br_peripheral_bond_pending_table},
};
typedef const uint8_t (*tSMP_BR_ENTRY_TBL)[SMP_BR_STATE_MAX];
-static const tSMP_BR_ENTRY_TBL smp_br_entry_table[] = {smp_br_master_entry_map,
- smp_br_slave_entry_map};
+static const tSMP_BR_ENTRY_TBL smp_br_entry_table[] = {
+ smp_br_central_entry_map, smp_br_peripheral_entry_map};
#define SMP_BR_ALL_TABLE_MASK 0x80
@@ -303,7 +306,6 @@ void smp_br_state_machine_event(tSMP_CB* p_cb, tSMP_BR_EVENT event,
tSMP_BR_STATE curr_state = p_cb->br_state;
tSMP_BR_SM_TBL state_table;
uint8_t action, entry;
- tSMP_BR_ENTRY_TBL entry_table = smp_br_entry_table[p_cb->role];
SMP_TRACE_EVENT("main %s", __func__);
if (curr_state >= SMP_BR_STATE_MAX) {
@@ -311,16 +313,19 @@ void smp_br_state_machine_event(tSMP_CB* p_cb, tSMP_BR_EVENT event,
return;
}
- if (p_cb->role > HCI_ROLE_SLAVE) {
+ if (p_cb->role > HCI_ROLE_PERIPHERAL) {
SMP_TRACE_ERROR("%s: invalid role %d", __func__, p_cb->role);
android_errorWriteLog(0x534e4554, "80145946");
return;
}
- SMP_TRACE_DEBUG("SMP Role: %s State: [%s (%d)], Event: [%s (%d)]",
- (p_cb->role == HCI_ROLE_SLAVE) ? "Slave" : "Master",
- smp_get_br_state_name(p_cb->br_state), p_cb->br_state,
- smp_get_br_event_name(event), event);
+ tSMP_BR_ENTRY_TBL entry_table = smp_br_entry_table[p_cb->role];
+
+ SMP_TRACE_DEBUG(
+ "SMP Role: %s State: [%s (%d)], Event: [%s (%d)]",
+ (p_cb->role == HCI_ROLE_PERIPHERAL) ? "Peripheral" : "Central",
+ smp_get_br_state_name(p_cb->br_state), p_cb->br_state,
+ smp_get_br_event_name(event), event);
/* look up the state table for the current state */
/* lookup entry / w event & curr_state */