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

State table in smpr_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 SMPR_SC_ACT_PAIRING_FAILED
SMP_MSG_CMD_PAIRING_FAILED SMPR_SC_ACT_PAIRING_FAILED
SMP_MSG_API_CANCEL_REQ SMPR_SC_ACT_PAIRING_CANCEL
SMP_MSG_INT_TIMEOUT SMPR_SC_ACT_PAIRING_FAILED
dot_inline_dotgraph_1.png
Transition ID Event Action
1 SMP_MSG_API_SECURITY_REQ SMPR_SC_ACT_SEND_SECURITY_REQ
SMP_MSG_DM_CONN_CLOSE SMPR_SC_ACT_CLEANUP
SMP_MSG_DM_ENCRYPT_CMPL SMPR_SC_ACT_CLEAR_SECURITY_REQ
SMP_MSG_DM_ENCRYPT_FAILED SMPR_SC_ACT_CLEAR_SECURITY_REQ
SMP_MSG_CMD_PAIRING_FAILED SMPR_SC_ACT_CHECK_SECURITY_REQ
SMP_MSG_API_CANCEL_REQ SMPR_SC_ACT_CLEANUP
SMP_MSG_INT_TIMEOUT SMPR_SC_ACT_NONE
2 SMP_MSG_CMD_PKT SMPR_SC_ACT_PROC_PAIR_REQ
3 SMP_MSG_API_PAIR_RSP SMPR_SC_ACT_SEND_PAIR_RSP
4 SMP_MSG_INT_LESC SMPR_SC_ACT_NONE
5 SMP_MSG_INT_LEGACY SMPR_SC_ACT_NONE
6 SMP_MSG_API_AUTH_RSP SMPR_SC_ACT_STORE_LESC_PIN
7 SMP_MSG_CMD_PKT SMPR_SC_ACT_SEND_PUB_KEY
8 SMP_MSG_INT_JW_NC SMPR_SC_ACT_JWNC_SETUP
9 SMP_MSG_INT_PASSKEY SMPR_SC_ACT_PK_SETUP
10 SMP_MSG_INT_OOB SMPR_SC_ACT_OOB_SETUP
11 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_JWNC_SEND_CNF
12 SMP_MSG_CMD_PKT SMPR_SC_ACT_JWNC_CALC_G2
13 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_JWNC_DISPLAY
14 SMP_MSG_API_USER_CONFIRM SMPR_SC_ACT_WAIT_DH_CHECK
15 SMP_MSG_CMD_PKT SMPR_SC_ACT_STORE_DH_CHECK
16 SMP_MSG_API_USER_CONFIRM SMPR_SC_ACT_CALC_DHKEY
17 SMP_MSG_CMD_PKT SMPR_SC_ACT_PK_KEYPRESS
SMP_MSG_API_USER_KEYPRESS SMPR_SC_ACT_PK_SEND_KEYPRESS
18 SMP_MSG_EARLY_CNF SMPR_SC_ACT_PK_STORE_CNF
19 SMP_MSG_API_AUTH_RSP SMPR_SC_ACT_STORE_LESC_PIN
20 SMP_MSG_API_AUTH_RSP SMPR_SC_ACT_PK_STORE_PIN_CALC_CB
21 SMP_MSG_CMD_PKT SMPR_SC_ACT_PK_STORE_CNF_CALC_CB
22 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_PK_SEND_CNF
23 SMP_MSG_CMD_PKT SMPR_SC_ACT_PK_CALC_CA
24 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_PK_SEND_RAND
25 SMP_MSG_INT_PK_NEXT SMPR_SC_ACT_NONE
26 SMP_MSG_INT_PK_CMPL SMPR_SC_ACT_WAIT_DH_CHECK
27 SMP_MSG_CMD_PKT SMPR_SC_ACT_OOB_CALC_CA
28 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_OOB_SEND_RAND
29 SMP_MSG_CMD_PKT SMPR_SC_ACT_CALC_DHKEY
30 SMP_MSG_WSF_ECC_CMPL SMPR_SC_ACT_CALC_F5_TKEY
31 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_CALC_F5_MACKEY
32 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_CALC_F5_LTK
33 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_CALC_F6_EA
34 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_CALC_F6_EB
35 SMP_MSG_WSF_CMAC_CMPL SMPR_SC_ACT_SEND_DH_CHECK
36 SMP_MSG_API_AUTH_RSP SMPR_SC_ACT_STORE_LEGACY_PIN
SMP_MSG_CMD_PKT SMPR_SC_ACT_PROC_PAIR_CNF
37 SMP_MSG_API_AUTH_RSP SMPR_SC_ACT_PAIR_CNF_CALC_1
SMP_MSG_CMD_PKT SMPR_SC_ACT_PROC_PAIR_CNF_CALC_1
38 SMP_MSG_WSF_AES_CMPL SMPR_SC_ACT_PAIR_CNF_CALC_2
39 SMP_MSG_WSF_AES_CMPL SMPR_SC_ACT_SEND_PAIR_CNF
40 SMP_MSG_CMD_PKT SMPR_SC_ACT_PAIR_CNF_VER_CALC_1
41 SMP_MSG_WSF_AES_CMPL SMPR_SC_ACT_PAIR_CNF_VER_CALC_2
42 SMP_MSG_WSF_AES_CMPL SMPR_SC_ACT_CNF_VERIFY
43 SMP_MSG_WSF_AES_CMPL SMPR_SC_ACT_SEND_PAIR_RANDOM
44 SMP_MSG_INT_MAX_ATTEMPTS SMPR_SC_ACT_MAX_ATTEMPTS
45 SMP_MSG_DM_ENCRYPT_CMPL SMPR_SC_ACT_SETUP_KEY_DIST
46 SMP_MSG_DM_ENCRYPT_FAILED SMPR_SC_ACT_PAIRING_FAILED
SMP_MSG_DH_CHECK_FAILURE SMPR_SC_ACT_PAIRING_CANCEL
47 SMP_MSG_API_CANCEL_REQ SMPR_SC_ACT_NONE
48 SMP_MSG_CMD_PKT SMPR_SC_ACT_RCV_KEY
SMP_MSG_INT_SEND_NEXT_KEY SMPR_SC_ACT_SEND_KEY
SMP_MSG_API_CANCEL_REQ SMPR_SC_ACT_NONE
49 SMP_MSG_INT_PAIRING_CMPL SMPR_SC_ACT_PAIRING_CMPL
50 SMP_MSG_INT_TIMEOUT SMPR_SC_ACT_CHECK_ATTEMPTS
SMP_MSG_API_SECURITY_REQ SMPR_SC_ACT_SEND_SECURITY_REQ
SMP_MSG_DM_CONN_CLOSE SMPR_SC_ACT_CLEANUP
SMP_MSG_API_CANCEL_REQ SMPR_SC_ACT_CLEANUP
51 SMP_MSG_CMD_PKT SMPR_SC_ACT_ATTEMPT_RCVD
SMP_MSG_CMD_PAIRING_FAILED SMPR_SC_ACT_NONE