diff options
Diffstat (limited to 'stack/smp/smp_main.c')
-rw-r--r-- | stack/smp/smp_main.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/stack/smp/smp_main.c b/stack/smp/smp_main.c index f8e450c30..dd40a7126 100644 --- a/stack/smp/smp_main.c +++ b/stack/smp/smp_main.c @@ -114,6 +114,8 @@ enum SMP_PROC_REL_DELAY, SMP_PROC_REL_DELAY_TOUT, SMP_DELAY_TERMINATE, + SMP_IDLE_TERMINATE, + SMP_FAST_CONN_PARAM, SMP_SM_NO_ACTION }; @@ -156,6 +158,8 @@ static const tSMP_ACT smp_sm_action[] = smp_proc_release_delay, smp_proc_release_delay_tout, smp_delay_terminate, + smp_idle_terminate, + smp_fast_conn_param }; /************ SMP Master FSM State/Event Indirection Table **************/ static const UINT8 smp_ma_entry_map[][SMP_ST_MAX] = @@ -176,7 +180,7 @@ static const UINT8 smp_ma_entry_map[][SMP_ST_MAX] = /* KEY_READY */{ 0, 3, 0, 3, 1, 0, 2, 1, 6, 0 }, /* ENC_CMPL */{ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 }, /* L2C_CONN */{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -/* L2C_DISC */{ 0x83, 0x83, 0, 0x83, 0x83,0x83, 0x83,0x83, 0x83, 3 }, +/* L2C_DISC */{ 3, 0x83, 0, 0x83, 0x83,0x83, 0x83,0x83, 0x83, 3 }, /* IO_RSP */{ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, /* SEC_GRANT */{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, /* TK_REQ */{ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 }, @@ -198,15 +202,16 @@ static const UINT8 smp_all_table[][SMP_SM_NUM_COLS] = { static const UINT8 smp_ma_idle_table[][SMP_SM_NUM_COLS] = { /* Event Action Next State */ /* L2C_CONN */ {SMP_SEND_APP_CBACK, SMP_SM_NO_ACTION, SMP_ST_WAIT_APP_RSP}, -/* SEC_REQ */ {SMP_PROC_SEC_REQ, SMP_SEND_APP_CBACK, SMP_ST_WAIT_APP_RSP} +/* SEC_REQ */ {SMP_PROC_SEC_REQ, SMP_SEND_APP_CBACK, SMP_ST_WAIT_APP_RSP}, +/* L2C_DISC */ {SMP_IDLE_TERMINATE, SMP_SM_NO_ACTION, SMP_ST_IDLE} }; static const UINT8 smp_ma_wait_app_rsp_table[][SMP_SM_NUM_COLS] = { /* Event Action Next State */ /* SEC_GRANT */ { SMP_PROC_SEC_GRANT, SMP_SEND_APP_CBACK, SMP_ST_WAIT_APP_RSP}, -/* IO_RSP */ { SMP_SEND_PAIR_REQ, SMP_SM_NO_ACTION, SMP_ST_PAIR_REQ_RSP}, +/* IO_RSP */ { SMP_SEND_PAIR_REQ, SMP_FAST_CONN_PARAM, SMP_ST_PAIR_REQ_RSP}, /* KEY_READY */ { SMP_GENERATE_CONFIRM, SMP_SM_NO_ACTION, SMP_ST_WAIT_CONFIRM},/* TK ready */ -/* ENC_REQ */ { SMP_START_ENC, SMP_SM_NO_ACTION, SMP_ST_ENC_PENDING},/* start enc mode setup */ +/* ENC_REQ */ { SMP_START_ENC, SMP_FAST_CONN_PARAM, SMP_ST_ENC_PENDING},/* start enc mode setup */ /* DISCARD_SEC_REQ */ { SMP_PROC_DISCARD, SMP_SM_NO_ACTION, SMP_ST_IDLE} }; |