Cordio Stack and Cordio Profiles  r2p3-02rel0
SMP Secure Connections Initiator Behavior

State table in smpi_sc_sm.c

The following diagram and table are generated from the following state tables:

Note: Not pictured are the common events that may occur at any pairing state, excluding IDLE, which cause a state change to IDLE:

Event Action
SMP_MSG_DM_CONN_CLOSE SMPI_SC_ACT_PAIRING_FAILED
SMP_MSG_CMD_PAIRING_FAILED SMPI_SC_ACT_PAIRING_FAILED
SMP_MSG_API_CANCEL_REQ SMPI_SC_ACT_PAIRING_CANCEL
SMP_MSG_INT_TIMEOUT SMPI_SC_ACT_PAIRING_FAILED
dot_inline_dotgraph_3.png
Transition ID Event Action
1 SMP_MSG_API_PAIR_REQ SMPI_SC_ACT_PAIR_REQ
2 SMP_MSG_DM_CONN_CLOSE SMPI_SC_ACT_CLEANUP
SMP_MSG_API_CANCEL_REQ SMPI_SC_ACT_CHECK_SECURITY_REQ
SMP_MSG_CMD_PKT SMPI_SC_ACT_PROC_SECURITY_REQ
SMP_MSG_CMD_PAIRING_FAILED SMPI_SC_ACT_NONE
SMP_MSG_INT_TIMEOUT SMPI_SC_ACT_NONE
3 SMP_MSG_CMD_PKT SMPI_SC_ACT_PROC_PAIR_RSP
4 SMP_MSG_INT_LESC SMPI_SC_ACT_NONE
5 SMP_MSG_INT_LEGACY SMPI_SC_ACT_NONE
6 SMP_MSG_API_AUTH_RSP SMPI_SC_ACT_SEND_PUB_KEY
7 SMP_MSG_CMD_PKT SMPI_SC_ACT_SC_AUTH_SELECT
8 SMP_MSG_INT_JW_NC SMPI_SC_ACT_JWNC_SETUP
9 SMP_MSG_INT_PASSKEY SMPI_SC_ACT_PK_SETUP
10 SMP_MSG_INT_OOB SMPI_SC_ACT_OOB_CALC_CB
11 SMP_MSG_CMD_PKT SMPI_SC_ACT_JWNC_SEND_RAND
12 SMP_MSG_CMD_PKT SMPI_SC_ACT_JWNC_CALC_F4
13 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_JWNC_CALC_G2
14 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_JWNC_DISPLAY
15 SMP_MSG_API_USER_CONFIRM SMPI_SC_ACT_CALC_DHKEY
16 SMP_MSG_CMD_PKT SMPI_SC_ACT_PK_KEYPRESS
SMP_MSG_API_USER_KEYPRESS SMPI_SC_ACT_PK_SEND_KEYPRESS
17 SMP_MSG_API_AUTH_RSP SMPI_SC_ACT_PK_CALC_CA
18 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_PK_SEND_CNF
19 SMP_MSG_CMD_PKT SMPI_SC_ACT_PK_SEND_RAND
20 SMP_MSG_CMD_PKT SMPI_SC_ACT_PK_CALC_CB
21 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_PK_CHECK
22 SMP_MSG_INT_PK_NEXT SMPI_SC_ACT_PK_CALC_CA
23 SMP_MSG_INT_PK_CMPL SMPI_SC_ACT_CALC_DHKEY
24 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_OOB_SEND_RAND
25 SMP_MSG_CMD_PKT SMPI_SC_ACT_OOB_PROC_RAND
26 SMP_MSG_WSF_ECC_CMPL SMPI_SC_ACT_CALC_F5_TKEY
27 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_CALC_F5_MACKEY
28 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_CALC_F5_LTK
29 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_CALC_F6_EA
30 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_CALC_F6_EB
31 SMP_MSG_WSF_CMAC_CMPL SMPI_SC_ACT_SEND_DH_CHECK
32 SMP_MSG_CMD_PKT SMPI_SC_ACT_VERIFY_DH_CHECK
33 SMP_MSG_API_AUTH_RSP SMPI_SC_ACT_PAIR_CNF_CALC_1
34 SMP_MSG_WSF_AES_CMPL SMPI_SC_ACT_PAIR_CNF_CALC_2
35 SMP_MSG_WSF_AES_CMPL SMPI_SC_ACT_SEND_PAIR_CNF
36 SMP_MSG_CMD_PKT SMPI_SC_ACT_PROC_PAIR_CNF
37 SMP_MSG_CMD_PKT SMPI_SC_ACT_PAIR_CNF_VER_CALC_1
38 SMP_MSG_WSF_AES_CMPL SMPI_SC_ACT_PAIR_CNF_VER_CALC_2
39 SMP_MSG_WSF_AES_CMPL SMPI_SC_ACT_CNF_VERIFY
40 SMP_MSG_WSF_AES_CMPL SMPI_SC_ACT_STK_ENCRYPT
41 SMP_MSG_INT_MAX_ATTEMPTS SMPI_SC_ACT_MAX_ATTEMPTS
42 SMP_MSG_DM_ENCRYPT_CMPL SMPI_SC_ACT_SETUP_KEY_DIST
43 SMP_MSG_DM_ENCRYPT_FAILED SMPI_SC_ACT_PAIRING_FAILED
SMP_MSG_DH_CHECK_FAILURE SMPI_SC_ACT_PAIRING_CANCEL
44 SMP_MSG_API_CANCEL_REQ SMPI_SC_ACT_NONE
45 SMP_MSG_CMD_PKT SMPI_SC_ACT_RCV_KEY
SMP_MSG_INT_SEND_NEXT_KEY SMPI_SC_ACT_SEND_KEY
SMP_MSG_API_CANCEL_REQ SMPI_SC_ACT_NONE
46 SMP_MSG_INT_PAIRING_CMPL SMPI_SC_ACT_PAIRING_CMPL
47 SMP_MSG_INT_TIMEOUT SMPI_SC_ACT_CHECK_ATTEMPTS
SMP_MSG_DM_CONN_CLOSE SMPI_SC_ACT_CLEANUP
SMP_MSG_API_CANCEL_REQ SMPI_SC_ACT_CLEANUP
48 SMP_MSG_CMD_PKT SMPI_SC_ACT_ATTEMPT_RCVD
SMP_MSG_CMD_PAIRING_FAILED SMPI_SC_ACT_NONE
49 SMP_MSG_API_PAIR_REQ SMPI_SC_ACT_PAIR_REQ