Nr |
Label |
Behaviour Description |
Constraint Ref |
Verdict |
Comments |
1 |
|
LC ? LM_LC_DATA_CFM |
Lm_lc_data_cfm (TSC_confirm_ind_ok) |
|
handles all occuring LM_LC_DATA_CFMs with confirm_ind OK. |
2 |
|
RETURN |
|
|
|
3 |
DF01 |
LC ? LM_LC_DATA_CFM |
Lm_lc_data_cfm (COMPLEMENT (TSC_confirm_ind_ok)) |
(I) |
handles occuring LM_LC_DATA_CFMs with confirm_ind other than OK. |
4 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
5 |
DF02 |
LC ? LM_LC_SUPERVISION_TO_IND |
Lm_lc_supervision_to_ind (?,?,?) |
(I) |
handles all occuring supervision timeout |
6 |
DF03 |
CP_LM ! CM_CONTINUE |
Cm_terminate_other_ptc |
R |
Termination of this PTC, the connection is considered disconnected due to the supervision tiemout |
7 |
DF04 |
LC ? LM_LC_FLUSH_TO_IND |
Lm_lc_flush_to_ind (?,?,?) |
(I) |
handles all occuring a flush to |
8 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
9 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_unit_key:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_unit_key ( ?, ?) ) |
|
IUT requests to use unit key |
10 |
|
LC ! LM_LC_RAND_GET_REQ |
Lm_lc_rand_get_req |
|
tester requests a random number |
11 |
|
(TCV_flag_steps_lm.unit_key_step_1:=TRUE) |
|
|
|
12 |
|
RETURN |
|
|
|
13 |
|
LC ? LM_LC_RAND_GET_CFM [TCV_flag_steps_lm.unit_key_step_1] (TCV_lk_rand_b:=LM_LC_RAND_GET_CFM.random_number) |
Lm_lc_rand_get_cfm (TSC_confirm_ind_ok) |
|
tester gets the random number and saves it |
14 |
|
(TCV_rand_cb:=TSO_cal_xor_rand_num (TCV_lk_rand_b, TCV_current_link_key)) |
|
|
calculation of random number C_B |
15 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req ( TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_comb_key ( TCV_lm_pdu_lmp_unit_key.transaction_id, TCV_rand_cb) ) |
|
tester responses the request to use combination key and uses the same transaction ID which it has received |
16 |
|
(TCV_current_link_key:=TSO_cal_coded_link_key (TCV_lm_pdu_lmp_unit_key.key, TCV_key_init), TCV_flag_link_key_available:=TRUE) |
|
|
tester saves the unit key of the IUT as current link key |
17 |
|
(TCV_flag_steps_lm.unit_key_step_2:=TRUE, TCV_flag_steps_lm.unit_key_step_1:=FALSE) |
|
|
|
18 |
|
RETURN |
|
|
|
19 |
|
LC ? LM_LC_DATA_IND [TCV_flag_steps_lm.unit_key_step_2] (TCV_lm_pdu_lmp_au_rand:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( TCV_link_number_acl, TCV_received_am_addr, Lmp_au_rand (TCV_lm_pdu_lmp_unit_key.transaction_id, ?) ) |
|
IUT sends LMP_AU_RAND for mutual authentication |
20 |
|
LC!LM_LC_SRES_GET_REQ |
Lm_lc_sres_get_req (TCV_lm_pdu_lmp_au_rand.random_number, TSPX_bd_addr_tester, TCV_current_link_key) |
|
The tester requests to calculate authentication response with the received random number from the IUT. The random number is saved in the test case variable TCV_lm_pdu_lmp_au_rand.random_number |
21 |
|
(TCV_flag_steps_lm.unit_key_step_3:=TRUE, TCV_flag_steps_lm.unit_key_step_2:=FALSE) |
|
|
|
22 |
|
RETURN |
|
|
|
23 |
|
LC?LM_LC_SRES_GET_CFM [TCV_flag_steps_lm.unit_key_step_3] (TCV_sres:=LM_LC_SRES_GET_CFM.sres, TCV_aco:=LM_LC_SRES_GET_CFM.aco) |
Lm_lc_sres_get_cfm (TSC_confirm_ind_ok) |
|
The tester gets the calculated authentication response SRES |
24 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_sres (TCV_lm_pdu_lmp_unit_key.transaction_id, TCV_sres)) |
|
Tester transmits LMP_SRES and uses the same transaction ID which it has received |
25 |
|
LC!LM_LC_RAND_GET_REQ |
Lm_lc_rand_get_req |
|
The tester requests a random number from its link controller |
26 |
|
(TCV_flag_steps_lm.unit_key_step_4:=TRUE, TCV_flag_steps_lm.unit_key_step_3:=FALSE) |
|
|
|
27 |
|
RETURN |
|
|
|
28 |
|
LC?LM_LC_RAND_GET_CFM [TCV_flag_steps_lm.unit_key_step_4] (TCV_au_rand:=LM_LC_RAND_GET_CFM.random_number) |
Lm_lc_rand_get_cfm (TSC_confirm_ind_ok) |
|
The tester gets the random number |
29 |
|
LC!LM_LC_SRES_GET_REQ |
Lm_lc_sres_get_req (TCV_au_rand, TSPX_bd_addr_iut, TCV_current_link_key) |
|
The tester requests to calculate the authentication response SRES |
30 |
|
(TCV_flag_steps_lm.unit_key_step_5:=TRUE, TCV_flag_steps_lm.unit_key_step_4:=FALSE) |
|
|
|
31 |
|
RETURN |
|
|
|
32 |
|
LC?LM_LC_SRES_GET_CFM [TCV_flag_steps_lm.unit_key_step_5] (TCV_sres:=LM_LC_SRES_GET_CFM.sres, TCV_aco:=LM_LC_SRES_GET_CFM.aco) |
Lm_lc_sres_get_cfm (TSC_confirm_ind_ok) |
|
The tester gets the SRES which will also be expected to receive from the IUT |
33 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_au_rand (TCV_lm_pdu_lmp_unit_key.transaction_id, TCV_au_rand)) |
|
Tester transmits LMP_AU_RAND |
34 |
|
START T_LM_30_max |
|
|
to avoid deadlocks |
35 |
|
(TCV_flag_authentication_requested:=TRUE) |
|
|
this flag is used to check that the IUT does not send an Lmp_au_rand before Lmp_sres. It is only set to TRUE during this time. |
36 |
|
(TCV_flag_steps_lm.unit_key_step_6:=TRUE, TCV_flag_steps_lm.unit_key_step_5:=FALSE) |
|
|
|
37 |
|
RETURN |
|
|
|
38 |
|
LC ? LM_LC_DATA_IND [TCV_flag_steps_lm.unit_key_step_6] |
Lm_lc_data_ind ( TCV_link_number_acl, TCV_received_am_addr, Lmp_sres (TCV_lm_pdu_lmp_unit_key.transaction_id, TCV_sres) ) |
|
IUT sends the correct authentication response SRES |
39 |
|
CANCEL T_LM_30_max |
|
|
|
40 |
|
(TCV_flag_authentication_requested:=FALSE, TCV_flag_steps_lm.unit_key_step_6:=FALSE) |
|
|
|
41 |
|
RETURN |
|
|
|
42 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_comb_key:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_comb_key ( ?, ?) ) |
|
IUT requests to use a combination key |
43 |
|
LC ! LM_LC_RAND_GET_REQ |
Lm_lc_rand_get_req |
|
tester requests a random number |
44 |
|
(TCV_flag_steps_lm.comb_key_step_1:=TRUE) |
|
|
|
45 |
|
RETURN |
|
|
|
46 |
|
LC ? LM_LC_RAND_GET_CFM [TCV_flag_steps_lm.comb_key_step_1] (TCV_lk_rand_b:=LM_LC_RAND_GET_CFM.random_number) |
Lm_lc_rand_get_cfm (TSC_confirm_ind_ok) |
|
tester gets the random number and save it |
47 |
|
(TCV_rand_cb:=TSO_cal_xor_rand_num (TCV_lk_rand_b, TCV_current_link_key)) |
|
|
calculation of random number C_B |
48 |
|
(TCV_lk_rand_a:=TSO_cal_xor_rand_num (TCV_lm_pdu_lmp_comb_key.random_number, TCV_current_link_key)) |
|
|
calculation of random number LK_RAND_A |
49 |
|
LC ! LM_LC_E_21_GET_REQ |
Lm_lc_e_21_get_req ( TCV_lk_rand_a, TSPX_bd_addr_iut ) |
|
calculation of LK_K_A |
50 |
|
(TCV_flag_steps_lm.comb_key_step_2:=TRUE, TCV_flag_steps_lm.comb_key_step_1:=FALSE) |
|
|
|
51 |
|
RETURN |
|
|
|
52 |
|
LC ? LM_LC_E_21_GET_CFM [TCV_flag_steps_lm.comb_key_step_2] (TCV_lk_ka:=LM_LC_E_21_GET_CFM.unit_key) |
Lm_lc_e_21_get_cfm ( TSC_confirm_ind_ok ) |
|
tester gets LK_K_A and saves it |
53 |
|
LC ! LM_LC_E_21_GET_REQ |
Lm_lc_e_21_get_req ( TCV_lk_rand_b, TSPX_bd_addr_tester) |
|
calculation of LK_K_B |
54 |
|
(TCV_flag_steps_lm.comb_key_step_3:=TRUE, TCV_flag_steps_lm.comb_key_step_2:=FALSE) |
|
|
|
55 |
|
RETURN |
|
|
|
56 |
|
LC ? LM_LC_E_21_GET_CFM [TCV_flag_steps_lm.comb_key_step_3] (TCV_lk_kb:=LM_LC_E_21_GET_CFM.unit_key) |
Lm_lc_e_21_get_cfm ( TSC_confirm_ind_ok ) |
|
tester gets LK_K_B and saves it |
57 |
|
(TCV_combination_key:=TSO_cal_comb_link_key (TCV_lk_ka, TCV_lk_kb)) |
|
|
calculation of combination key |
58 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_comb_key ( TCV_lm_pdu_lmp_comb_key.transaction_id, TCV_rand_cb) ) |
|
tester responses the request to use combination key and use the same transaction ID which it has received |
59 |
|
(TCV_current_link_key:=TCV_combination_key, TCV_flag_link_key_available:=TRUE) |
|
|
change of current link key, the combination key is the new current link key |
60 |
|
(TCV_flag_steps_lm.comb_key_step_4:=TRUE, TCV_flag_steps_lm.comb_key_step_3:=FALSE) |
|
|
|
61 |
|
RETURN |
|
|
|
62 |
|
LC ? LM_LC_DATA_IND [TCV_flag_steps_lm.comb_key_step_4] (TCV_lm_pdu_lmp_au_rand:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, TCV_received_am_addr, Lmp_au_rand (TCV_lm_pdu_lmp_comb_key.transaction_id, ?) ) |
|
IUT sends LMP_AU_RAND for mutual authentication |
63 |
|
LC!LM_LC_SRES_GET_REQ |
Lm_lc_sres_get_req (TCV_lm_pdu_lmp_au_rand.random_number, TSPX_bd_addr_tester, TCV_current_link_key) |
|
The tester requests to calculate authentication response with the received random number from the IUT. The random number is saved in the test case variable TCV_lm_pdu_lmp_au_rand.random_number |
64 |
|
(TCV_flag_steps_lm.comb_key_step_5:=TRUE, TCV_flag_steps_lm.comb_key_step_4:=FALSE) |
|
|
|
65 |
|
RETURN |
|
|
|
66 |
|
LC?LM_LC_SRES_GET_CFM [TCV_flag_steps_lm.comb_key_step_5] (TCV_sres:=LM_LC_SRES_GET_CFM.sres, TCV_aco:=LM_LC_SRES_GET_CFM.aco) |
Lm_lc_sres_get_cfm (TSC_confirm_ind_ok) |
|
The tester gets the calculated authentication response SRES |
67 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_sres (TCV_lm_pdu_lmp_comb_key.transaction_id, TCV_sres)) |
|
Tester transmits LMP_SRES and uses the same transaction ID which it has received |
68 |
|
LC!LM_LC_RAND_GET_REQ |
Lm_lc_rand_get_req |
|
The tester requests a random number from its link controller |
69 |
|
(TCV_flag_steps_lm.comb_key_step_6:=TRUE, TCV_flag_steps_lm.comb_key_step_5:=FALSE) |
|
|
|
70 |
|
RETURN |
|
|
|
71 |
|
LC?LM_LC_RAND_GET_CFM [TCV_flag_steps_lm.comb_key_step_6] (TCV_au_rand:=LM_LC_RAND_GET_CFM.random_number) |
Lm_lc_rand_get_cfm (TSC_confirm_ind_ok) |
|
The tester gets the random number |
72 |
|
LC!LM_LC_SRES_GET_REQ |
Lm_lc_sres_get_req (TCV_au_rand, TSPX_bd_addr_iut, TCV_current_link_key) |
|
The tester requests to calculate the authentication response SRES |
73 |
|
(TCV_flag_steps_lm.comb_key_step_7:=TRUE, TCV_flag_steps_lm.comb_key_step_6:=FALSE) |
|
|
|
74 |
|
RETURN |
|
|
|
75 |
|
LC?LM_LC_SRES_GET_CFM [TCV_flag_steps_lm.comb_key_step_7] (TCV_sres:=LM_LC_SRES_GET_CFM.sres, TCV_aco:=LM_LC_SRES_GET_CFM.aco) |
Lm_lc_sres_get_cfm (TSC_confirm_ind_ok) |
|
The tester gets the SRES which will also be expected to receive from the IUT |
76 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_au_rand (TCV_lm_pdu_lmp_comb_key.transaction_id, TCV_au_rand)) |
|
Tester transmits LMP_AU_RAND |
77 |
|
START T_LM_30_max |
|
|
to avoid deadlocks |
78 |
|
(TCV_flag_authentication_requested:=TRUE) |
|
|
this flag is used to check that the IUT does not send an Lmp_au_rand before Lmp_sres. It is only set to TRUE during this time. |
79 |
|
(TCV_flag_steps_lm.comb_key_step_8:=TRUE, TCV_flag_steps_lm.comb_key_step_7:=FALSE) |
|
|
|
80 |
|
RETURN |
|
|
|
81 |
|
LC ? LM_LC_DATA_IND [TCV_flag_steps_lm.comb_key_step_8] |
Lm_lc_data_ind (TCV_link_number_acl, TCV_received_am_addr, Lmp_sres (TCV_lm_pdu_lmp_comb_key.transaction_id, TCV_sres) ) |
|
IUT sends the correct authentication response SRES |
82 |
|
CANCEL T_LM_30_max |
|
|
|
83 |
|
(TCV_flag_authentication_requested:=FALSE, TCV_flag_steps_lm.comb_key_step_8:=FALSE) |
|
|
|
84 |
|
RETURN |
|
|
|
85 |
|
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_au_rand:=LM_LC_DATA_IND.lmp_pdu, TCV_received_am_addr:=LM_LC_DATA_IND.am_addr) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut), Lmp_au_rand (?, ?) ) |
|
handles occuring LMP_AU_RAND (IUT is MASTER or SLAVE ) and saves the random number |
86 |
|
[TCV_flag_authentication_active AND TCV_flag_connecting AND TCV_flag_link_key_available AND NOT TCV_flag_calculation_encryption_key AND NOT TCV_flag_authentication_requested] |
|
|
|
87 |
|
LC!LM_LC_SRES_GET_REQ START T_guard_df |
Lm_lc_sres_get_req (TCV_lm_pdu_lmp_au_rand.random_number, TSPX_bd_addr_tester, TCV_current_link_key) |
|
|
88 |
|
(TCV_flag_steps_lm.au_rand_step_1:=TRUE) |
|
|
|
89 |
|
RETURN |
|
|
|
90 |
|
[TCV_flag_authentication_active AND TCV_flag_connecting AND TCV_flag_link_key_available AND TCV_flag_authentication_requested] |
|
|
when TCV_flag_authentication_requested is set to TRUE, the tester can not answer to an Lmp_au_rand with Lmp_sres |
91 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_au_rand.transaction_id, TSC_lm_opcode_lmp_au_rand, TSC_error_code_lmp_error_transaction_collision)) |
|
|
92 |
|
RETURN |
|
|
|
93 |
|
[ (TCV_flag_authentication_active AND TCV_flag_connecting AND TCV_flag_link_key_available AND TCV_flag_calculation_encryption_key) OR (NOT TCV_flag_authentication_active OR NOT TCV_flag_connecting)] |
|
|
when TCV_flag_calculation_encryption_key is set to TRUE, the tester can not answer to an Lmp_au_rand with Lmp_sres |
94 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_au_rand.transaction_id, TSC_lm_opcode_lmp_au_rand, TSC_error_code_lmp_pdu_not_allowed)) |
|
|
95 |
|
RETURN |
|
|
|
96 |
|
[TCV_flag_authentication_active AND TCV_flag_connecting AND NOT TCV_flag_link_key_available AND NOT TCV_flag_calculation_encryption_key AND NOT TCV_flag_authentication_requested] |
|
|
|
97 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_au_rand.transaction_id, TSC_lm_opcode_lmp_au_rand, TSC_error_code_key_missing )) |
|
|
98 |
|
RETURN |
|
|
|
99 |
|
LC?LM_LC_SRES_GET_CFM [TCV_flag_steps_lm.au_rand_step_1] (TCV_sres:=LM_LC_SRES_GET_CFM.sres) CANCEL T_guard_df |
Lm_lc_sres_get_cfm (TSC_confirm_ind_ok) |
|
|
100 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_sres (TCV_lm_pdu_lmp_au_rand.transaction_id, TCV_sres)) |
|
|
101 |
|
(TCV_flag_steps_lm.au_rand_step_1:=FALSE) |
|
|
|
102 |
|
RETURN |
|
|
|
103 |
|
LC ? LM_LC_DATA_IND ( TCV_lm_pdu_lmp_clkoffset_req:=LM_LC_DATA_IND.lmp_pdu, TCV_received_am_addr:=LM_LC_DATA_IND.am_addr) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_clkoffset_req (?)) |
|
clock offset request received |
104 |
|
[ (NOT TCV_flag_paging AND TCV_flag_iut_is_master) OR (NOT TCV_flag_paging AND NOT TCV_flag_iut_is_master) OR (TCV_flag_paging AND NOT TCV_flag_iut_is_master)] |
|
|
|
105 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_clkoffset_req.transaction_id, TSC_lm_opcode_lmp_clkoffset_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
106 |
|
RETURN |
|
|
|
107 |
|
[TCV_flag_paging AND TCV_flag_iut_is_master ] |
|
|
|
108 |
|
LC ! LM_LC_CLOCK_OFFSET_GET_REQ START T_guard_df |
Lm_lc_clock_offset_get_req (TCV_link_number_acl, TCV_am_addr_tester) |
|
tester request its clock offset |
109 |
|
(TCV_flag_steps_lm.clkoffset_step_1:=TRUE) |
|
|
|
110 |
|
RETURN |
|
|
|
111 |
|
LC ? LM_LC_CLOCK_OFFSET_GET_CFM [TCV_flag_steps_lm.clkoffset_step_1] (TCV_clock_offset:=LM_LC_CLOCK_OFFSET_GET_CFM.clock_offset) CANCEL T_guard_df |
Lm_lc_clock_offset_get_cfm (TSC_confirm_ind_ok,?) |
|
tester get its clock offset |
112 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_am_addr_tester, TSC_dm1_packet,Lmp_clkoffset_res (TCV_lm_pdu_lmp_clkoffset_req.transaction_id, TCV_clock_offset)) |
|
clock offset response |
113 |
|
(TCV_flag_steps_lm.clkoffset_step_1:=FALSE) |
|
|
|
114 |
|
RETURN |
|
|
|
115 |
|
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_supervision_timeout:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), TCV_am_addr_tester,Lmp_supervision_timeout (TSC_ti_master,?)) |
|
supervision timeout received, IUT is MASTER |
116 |
|
[TCV_flag_iut_is_master AND TCV_flag_connecting ] |
|
|
|
117 |
|
LC ! LM_LC_TIMER_SET_REQ START T_guard_df |
Lm_lc_timer_set_req (TCV_link_number_acl, TCV_am_addr_tester,'01'B,TCV_lm_pdu_lmp_supervision_timeout.supervision_timeout) |
|
LM requests LC to set a new timeout for the supervisionTO |
118 |
|
(TCV_flag_steps_lm.supervision_timeout_step_1:=TRUE) |
|
|
|
119 |
|
RETURN |
|
|
|
120 |
|
LC ? LM_LC_TIMER_SET_CFM [TCV_flag_steps_lm.supervision_timeout_step_1] CANCEL T_guard_df |
Lm_lc_timer_set_cfm (TSC_confirm_ind_ok) |
|
tester get its clock offset |
121 |
|
(TCV_flag_steps_lm.supervision_timeout_step_1:=FALSE) |
|
|
|
122 |
|
RETURN |
|
|
|
123 |
|
LC ? LM_LC_DATA_IND |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_slot_offset (?, ?,?)) |
|
slot offset received, IUT is MASTER OR SLAVE. |
124 |
|
[NOT TCV_flag_iut_is_master AND TCV_flag_connecting ] |
|
|
|
125 |
|
START T_guard_df |
|
|
|
126 |
|
(TCV_flag_steps_lm.slot_offset_step_1:=TRUE) |
|
|
|
127 |
|
RETURN |
|
|
|
128 |
|
[TRUE] |
|
|
|
129 |
|
RETURN |
|
|
|
130 |
|
LC ? LM_LC_DATA_IND [TCV_flag_steps_lm.slot_offset_step_1] (TCV_lm_pdu_lmp_switch_req:= LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl,TCV_am_addr_iut,Lmp_switch_req (?,?)) |
|
slot offset received, IUT is SLAVE. |
131 |
|
CANCEL T_guard_df |
|
|
|
132 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_am_addr_iut, TSC_dm1_packet,Lmp_not_accepted (TCV_lm_pdu_lmp_switch_req.transaction_id, TSC_lm_opcode_lmp_switch_req, '1F'O)) |
|
|
133 |
|
(TCV_flag_steps_lm.slot_offset_step_1:=FALSE) |
|
|
|
134 |
|
RETURN |
|
|
|
135 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_timing_accuracy_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester, TCV_am_addr_iut),Lmp_timing_accuracy_req (?)) |
|
Timing accuracy request received, IUT is MASTER or SLAVE. |
136 |
|
[TCV_flag_features_received AND TCV_flag_paging AND TSPC_feature_iut_timing_accuracy] |
|
|
|
137 |
|
LC ! LM_LC_TIMING_GET_REQ START T_guard_df |
Lm_lc_timing_get_req |
|
|
138 |
|
(TCV_flag_steps_lm.timing_accuracy_step_1:=TRUE) |
|
|
|
139 |
|
RETURN |
|
|
|
140 |
DF09 |
[NOT TCV_flag_paging] |
|
(I) |
|
141 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_timing_accuracy_req.transaction_id, TSC_lm_opcode_lmp_timing_accuracy_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
142 |
|
RETURN |
|
|
|
143 |
DF10 |
[NOT TCV_flag_features_received OR NOT TSPC_feature_iut_timing_accuracy] |
|
(I) |
|
144 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_timing_accuracy_req.transaction_id, TSC_lm_opcode_lmp_timing_accuracy_req, TSC_error_code_unsupported_lmp_feature)) |
|
|
145 |
|
RETURN |
|
|
|
146 |
|
LC ? LM_LC_TIMING_GET_CFM [TCV_flag_steps_lm.timing_accuracy_step_1] (TCV_drift:=LM_LC_TIMING_GET_CFM.drift, TCV_jitter:=LM_LC_TIMING_GET_CFM.jitter) CANCEL T_guard_df |
Lm_lc_timing_get_cfm (TSC_confirm_ind_ok,?,?) |
|
|
147 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_timing_accuracy_res (TCV_lm_pdu_lmp_timing_accuracy_req.transaction_id, TCV_drift, TCV_jitter)) |
|
|
148 |
|
(TCV_flag_steps_lm.timing_accuracy_step_1:=FALSE) |
|
|
|
149 |
|
RETURN |
|
|
|
150 |
|
LC ? LM_LC_DATA_IND |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_auto_rate (?)) |
|
auto rate received, IUT is MASTER OR SLAVE. |
151 |
|
RETURN |
|
|
|
152 |
|
LC ? LM_LC_DATA_IND |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_prefered_rate (?, ?)) |
|
preferred rate received, IUT is MASTER OR SLAVE. |
153 |
|
RETURN |
|
|
|
154 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_incr_power_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester, TCV_am_addr_iut),Lmp_incr_power_req (?)) |
|
Incr Power request received, IUT is MASTER or SLAVE. |
155 |
|
[TCV_flag_features_received AND TCV_flag_paging AND TSPC_feature_iut_rssi] |
|
|
|
156 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_max_power (TCV_lm_pdu_incr_power_req.transaction_id)) |
|
|
157 |
|
RETURN |
|
|
|
158 |
DF05 |
[NOT TCV_flag_paging] |
|
(I) |
|
159 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_incr_power_req.transaction_id, TSC_lm_opcode_lmp_incr_power_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
160 |
|
RETURN |
|
|
|
161 |
DF06 |
[NOT TSPC_feature_iut_power_control AND (NOT TCV_flag_features_received OR NOT TSPC_feature_iut_rssi)] |
|
(I) |
|
162 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_not_accepted (TCV_lm_pdu_incr_power_req.transaction_id, TSC_lm_opcode_lmp_incr_power_req, TSC_error_code_unsupported_lmp_feature)) |
|
|
163 |
|
RETURN |
|
|
|
164 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_decr_power_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester, TCV_am_addr_iut),Lmp_decr_power_req (?)) |
|
Decr Power request received, IUT is MASTER or SLAVE. |
165 |
|
[TCV_flag_features_received AND TCV_flag_paging AND TSPC_feature_iut_rssi] |
|
|
|
166 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_min_power (TCV_lm_pdu_decr_power_req.transaction_id)) |
|
|
167 |
|
RETURN |
|
|
|
168 |
DF07 |
[NOT TCV_flag_paging] |
|
(I) |
|
169 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_not_accepted (TCV_lm_pdu_decr_power_req.transaction_id, TSC_lm_opcode_lmp_decr_power_req, TSC_error_code_lmp_pdu_not_allowed)) |
|
|
170 |
|
RETURN |
|
|
|
171 |
DF08 |
[NOT TSPC_feature_iut_power_control AND (NOT TCV_flag_features_received OR NOT TSPC_feature_iut_rssi)] |
|
(I) |
|
172 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_not_accepted (TCV_lm_pdu_decr_power_req.transaction_id, TSC_lm_opcode_lmp_decr_power_req, TSC_error_code_unsupported_lmp_feature)) |
|
|
173 |
|
RETURN |
|
|
|
174 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_version_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_iut,TCV_am_addr_tester), Lmp_version_req (?, TSPX_lmp_version_number_iut, TSPX_company_id_iut, TSPX_subversion_number_iut) ) |
|
version request received, IUT is MASTER OR SLAVE. |
175 |
|
[NOT TCV_flag_paging] |
|
|
|
176 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_version_req.transaction_id, TSC_lm_opcode_lmp_version_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
177 |
|
RETURN |
|
|
|
178 |
|
[TCV_flag_paging] |
|
|
|
179 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_version_res (TCV_lm_pdu_lmp_version_req.transaction_id, TSPX_lmp_version_number_tester, TSPX_company_id_tester, TSPX_subversion_number_tester) ) |
|
version response |
180 |
|
(TCV_flag_version_received:=TRUE) |
|
|
|
181 |
|
RETURN |
|
|
|
182 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_name_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl,TCV_link_number_sco), (TCV_am_addr_tester, TCV_am_addr_iut), Lmp_name_req (?, '00'O) ) |
|
name request received, IUT is MASTER OR SLAVE. |
183 |
|
[NOT TCV_flag_paging] |
|
|
|
184 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_name_req.transaction_id, TSC_lm_opcode_lmp_name_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
185 |
|
RETURN |
|
|
|
186 |
|
[TCV_flag_paging] |
|
|
|
187 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_name_res (TCV_lm_pdu_lmp_name_req.transaction_id, '00'O, '0C'O, '5445535445520000000000000000'O) ) |
|
tester responses with the name 'TESTER' |
188 |
|
RETURN |
|
|
|
189 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_features_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_features_req (?, Features_iut)) |
|
features request received, IUT is MASTER OR SLAVE. |
190 |
|
[NOT TCV_flag_paging] |
|
|
|
191 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_features_req.transaction_id, TSC_lm_opcode_lmp_features_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
192 |
|
RETURN |
|
|
|
193 |
|
[TCV_flag_paging] |
|
|
|
194 |
|
[TCV_flag_features_all_supported] |
|
|
The tester must answer with Features_all_supported |
195 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_features_res (TCV_lm_pdu_lmp_features_req.transaction_id, Features_all_supported)) |
|
features response |
196 |
|
(TCV_flag_features_received:=TRUE) |
|
|
|
197 |
|
RETURN |
|
|
|
198 |
|
[TCV_flag_features_tester_non_support_power_control] |
|
|
The tester must answer with Features_tester_non_support_power_ control |
199 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_features_res (TCV_lm_pdu_lmp_features_req.transaction_id, Features_tester_non_support_power_control)) |
|
features response |
200 |
|
(TCV_flag_features_received:=TRUE) |
|
|
|
201 |
|
RETURN |
|
|
|
202 |
|
[TCV_flag_features_uncorrectable_payload] |
|
|
The tester must answer with Features_tester_non_support_power_ control |
203 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_features_res (TCV_lm_pdu_lmp_features_req.transaction_id, Features_uncorrectable_payload)) |
|
features response |
204 |
|
(TCV_flag_features_received:=TRUE) |
|
|
|
205 |
|
RETURN |
|
|
|
206 |
|
[TCV_flag_features_all_zero] |
|
|
The tester must answer with Features_tester_non_support_power_ control |
207 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_features_res (TCV_lm_pdu_lmp_features_req.transaction_id, Features_all_zero)) |
|
features response |
208 |
|
(TCV_flag_features_received:=TRUE) |
|
|
|
209 |
|
RETURN |
|
|
|
210 |
|
[TCV_flag_features_sco_link_supported] |
|
|
The tester must answer with Features_tester_non_support_power_ control |
211 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_features_res (TCV_lm_pdu_lmp_features_req.transaction_id, Features_sco_link_supported)) |
|
features response |
212 |
|
(TCV_flag_features_received:=TRUE) |
|
|
|
213 |
|
RETURN |
|
|
|
214 |
|
[TRUE] |
|
|
|
215 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet,Lmp_features_res (TCV_lm_pdu_lmp_features_req.transaction_id, Features_tester)) |
|
features response |
216 |
|
(TCV_flag_features_received:=TRUE) |
|
|
|
217 |
|
RETURN |
|
|
|
218 |
|
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_quality_of_service:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_quality_of_service (?, ?, ?)) |
|
|
219 |
|
[TCV_flag_connected AND TCV_flag_iut_is_master] |
|
|
|
220 |
|
(TCV_poll_interval:=TCV_lm_pdu_lmp_quality_of_service.poll_interval, TCV_n_bc:=TCV_lm_pdu_lmp_quality_of_service.n_bc) |
|
|
|
221 |
|
RETURN |
|
|
|
222 |
DF11 |
[NOT TCV_flag_iut_is_master OR NOT TCV_flag_connected] |
|
(I) |
|
223 |
|
RETURN |
|
|
|
224 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_quality_of_service_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_quality_of_service_req (?, ?, ?)) |
|
|
225 |
|
[TCV_flag_connected] |
|
|
|
226 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_quality_of_service_req.transaction_id, TSC_lm_opcode_lmp_quality_of_service_req, TSC_error_code_unspecified_error )) |
|
|
227 |
|
RETURN |
|
|
|
228 |
|
[NOT TCV_flag_connected] |
|
|
|
229 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_quality_of_service_req.transaction_id, TSC_lm_opcode_lmp_quality_of_service_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
230 |
|
RETURN |
|
|
|
231 |
|
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_max_slot:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_max_slot (?, ?)) |
|
|
232 |
|
[TCV_flag_connected] |
|
|
|
233 |
|
(TCV_max_slot_number:=TCV_lm_pdu_lmp_max_slot.max_slots) |
|
|
|
234 |
|
RETURN |
|
|
|
235 |
|
[NOT TCV_flag_connected] |
|
|
|
236 |
|
RETURN |
|
|
|
237 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_max_slot_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_max_slot_req (?, ?)) |
|
|
238 |
|
[TCV_flag_connected] |
|
|
|
239 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_max_slot_req.transaction_id, TSC_lm_opcode_lmp_max_slot_req, TSC_error_code_unspecified_error )) |
|
|
240 |
|
RETURN |
|
|
|
241 |
|
[NOT TCV_flag_connected] |
|
|
|
242 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_max_slot_req.transaction_id, TSC_lm_opcode_lmp_max_slot_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
243 |
|
RETURN |
|
|
|
244 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_in_rand:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_in_rand (?, ?) ) |
|
IUT initiates pairing and sends LMP_IN_RAND |
245 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_in_rand.transaction_id, TSC_lm_opcode_lmp_in_rand, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
246 |
|
RETURN |
|
|
|
247 |
DF12 |
LC ? LM_LC_DATA_IND |
Lm_lc_data_ind ( TCV_link_number_acl, TCV_am_addr_tester, Lmp_temp_rand (TSC_ti_master, ?) ) |
(I) |
The tester receives a random number to calculate key overlay |
248 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
249 |
|
LC ? LM_LC_DATA_IND |
Lm_lc_data_ind ( TCV_link_number_acl, TCV_am_addr_tester, Lmp_use_semi_permanent_key (TSC_ti_master) ) |
|
IUT requests to use the old semi perrmanent link key |
250 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_am_addr_tester, TSC_dm1_packet, Lmp_not_accepted (TSC_ti_master, TSC_lm_opcode_lmp_use_semi_permanent_key, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
251 |
|
RETURN |
|
|
|
252 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_encryption_mode_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut,TCV_am_addr_tester), Lmp_encryption_mode_req (?, ?) ) |
|
IUT requests to use encryption |
253 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_encryption_mode_req.transaction_id, TSC_lm_opcode_lmp_encryption_mode_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
254 |
|
RETURN |
|
|
|
255 |
|
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_start_encryption_req:=LM_LC_DATA_IND.lmp_pdu, TCV_received_am_addr:=LM_LC_DATA_IND.am_addr) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_start_encryption_req (?,?) ) |
|
IUT requests to start encryption and sends a random number |
256 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_start_encryption_req.transaction_id, TSC_lm_opcode_lmp_start_encryption_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
257 |
|
RETURN |
|
|
|
258 |
|
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_stop_encryption_req:=LM_LC_DATA_IND.lmp_pdu, TCV_received_am_addr:=LM_LC_DATA_IND.am_addr) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_stop_encryption_req (?) ) |
|
IUT requests to start encryption and sends a random number |
259 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_stop_encryption_req.transaction_id, TSC_lm_opcode_lmp_stop_encryption_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
260 |
|
RETURN |
|
|
|
261 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_switch_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_switch_req (?,?)) |
|
LC indicates to LM the reception of a LMP_switch_req. |
262 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_switch_req.transaction_id, TSC_lm_opcode_lmp_switch_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
263 |
|
RETURN |
|
|
|
264 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_page_mode_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_page_mode_req (?, ?, ?)) |
|
IUT shall send page_scan_mode_req with optional paging scheme 1
|
265 |
|
[TSPC_feature_iut_paging_scheme AND (TCV_lm_pdu_lmp_page_mode_req.paging_scheme= '00000000'B)]
|
|
|
Mandatory paging scheme
|
266 |
|
LC!LM_LC_DATA_REQ LC ! LM_LC_DATA_REQ
|
Lm_lc_data_req(TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted(TCV_lm_pdu_lmp_page_mode_req.transaction_id, TSC_lm_opcode_lmp_page_mode_req, TSC_error_code_lmp_pdu_not_allowed ))Lmp_accepted(TCV_lm_pdu_lmp_page_mode_req.transaction_id, TSC_lm_opcode_lmp_page_mode_req))
|
|
|
267 |
|
RETURN
|
|
|
|
268 |
|
[TSPC_feature_iut_paging_scheme AND (TCV_lm_pdu_lmp_page_mode_req.paging_scheme <> '00000000'B)]
|
|
|
Optional paging scheme
|
269 |
|
LC ! LM_LC_DATA_REQ
|
Lm_lc_data_req(TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted(TCV_lm_pdu_lmp_page_mode_req.transaction_id, TSC_lm_opcode_lmp_page_mode_req, TSC_error_code_unsupported_parameter_value))
|
|
|
270 |
|
RETURN
|
|
|
|
271 |
|
[TRUE]
|
|
|
Paging Scheme not supported
|
272 |
|
LC!LM_LC_DATA_REQ
|
Lm_lc_data_req(TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted(TCV_lm_pdu_lmp_page_mode_req.transaction_id, TSC_lm_opcode_lmp_page_mode_req, TSC_error_code_unsupported_lmp_feature ))
|
|
|
273 |
|
RETURN
|
|
|
|
274 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_page_scan_mode_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_page_scan_mode_req (?, ?, ?)) |
|
IUT shall send page_scan_mode_req with optional paging scheme 1 |
275 |
|
[TSPC_feature_iut_paging_scheme AND (TCV_lm_pdu_lmp_page_scan_mode_req.paging_scheme= '00000000'B)]
|
|
|
Mandatory paging scheme
|
276 |
|
LC!LM_LC_DATA_REQ LC ! LM_LC_DATA_REQ
|
Lm_lc_data_req(TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted(TCV_lm_pdu_lmp_page_scan_mode_req.transaction_id, TSC_lm_opcode_lmp_page_scan_mode_req, TSC_error_code_lmp_pdu_not_allowed ))Lmp_accepted(TCV_lm_pdu_lmp_page_scan_mode_req.transaction_id, TSC_lm_opcode_lmp_page_scan_mode_req))
|
|
|
277 |
|
RETURN
|
|
|
|
278 |
|
[TSPC_feature_iut_paging_scheme AND (TCV_lm_pdu_lmp_page_scan_mode_req.paging_scheme <> '00000000'B)]
|
|
|
Optional paging scheme
|
279 |
|
LC ! LM_LC_DATA_REQ
|
Lm_lc_data_req(TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted(TCV_lm_pdu_lmp_page_scan_mode_req.transaction_id, TSC_lm_opcode_lmp_page_scan_mode_req, TSC_error_code_unsupported_parameter_value))
|
|
|
280 |
|
RETURN
|
|
|
|
281 |
|
[TRUE]
|
|
|
Paging Scheme not supported
|
282 |
|
LC!LM_LC_DATA_REQ
|
Lm_lc_data_req(TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted(TCV_lm_pdu_lmp_page_scan_mode_req.transaction_id, TSC_lm_opcode_lmp_page_scan_mode_req, TSC_error_code_unsupported_lmp_feature ))
|
|
|
283 |
|
RETURN
|
|
|
|
284 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_sco_link_req := LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_sco_link_req (?, ?, ?, ?, ?, ?, ?)) |
|
LM indicates to LC the reception of a LMP_SCO_link_req. |
285 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_sco_link_req.transaction_id, TSC_lm_opcode_lmp_sco_link_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
286 |
|
RETURN |
|
|
|
287 |
DF13 |
LC ? LM_LC_DATA_IND (TCV_lm_pdu_lmp_hold := LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_hold (?, ?, ?)) |
(I) |
The IUT sends LMP_hold. |
288 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
289 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_hold_req := LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_hold_req (?, ?, ?)) |
|
The IUT sends LMP_hold_req. |
290 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_hold_req.transaction_id, TSC_lm_opcode_lmp_hold_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
291 |
|
RETURN |
|
|
|
292 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_park_req:=LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind ( TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_park_req (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ) |
|
IUT requests to be sent into park mode |
293 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_park_req.transaction_id, TSC_lm_opcode_lmp_park_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
294 |
|
RETURN |
|
|
|
295 |
|
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr, TCV_lm_pdu_lmp_sniff_req := LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl, (TCV_am_addr_iut, TCV_am_addr_tester), Lmp_sniff_req (?, ?, ?, ?, ?, ?)) |
|
LC indicates to LM a LMP_sniff_req. Tsniff=18, Ntimeout=2, Nattempt=4, initialization scheme = 1 |
296 |
|
LC!LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_sniff_req.transaction_id, TSC_lm_opcode_lmp_sniff_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
297 |
|
RETURN |
|
|
|
298 |
DF14 |
LC ? LM_LC_DATA_IND (TCV_received_am_addr:=LM_LC_DATA_IND.am_addr,TCV_lm_pdu_lmp_host_connection_req := LM_LC_DATA_IND.lmp_pdu) |
Lm_lc_data_ind (TCV_link_number_acl,?,Lmp_host_connection_req (?)) |
|
detach received, IUT is MASTER OR SLAVE. |
299 |
|
[TCV_page_resp_finished] |
|
|
|
300 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_accepted (TCV_lm_pdu_lmp_host_connection_req.transaction_id, TSC_lm_opcode_lmp_host_connection_req)) |
|
|
301 |
|
RETURN |
|
|
|
302 |
|
[NOT TCV_page_resp_finished] |
|
|
|
303 |
|
LC ! LM_LC_DATA_REQ |
Lm_lc_data_req (TCV_link_number_acl, TCV_received_am_addr, TSC_dm1_packet, Lmp_not_accepted (TCV_lm_pdu_lmp_host_connection_req.transaction_id, TSC_lm_opcode_lmp_host_connection_req, TSC_error_code_lmp_pdu_not_allowed )) |
|
|
304 |
|
RETURN |
|
|
|
305 |
DF15 |
LC ? LM_LC_DATA_IND |
Lm_lc_data_ind ( (TCV_link_number_acl, TCV_link_number_sco), (TCV_am_addr_tester,TCV_am_addr_iut),Lmp_detach (?, ?)) |
(I) |
detach received, IUT is MASTER OR SLAVE. |
306 |
|
[TCV_flag_iut_is_master] |
|
|
|
307 |
|
LC ! LM_LC_DISCONNECT_REQ |
Lm_lc_disconnect_req (TCV_link_number_acl, TCV_am_addr_tester) |
|
|
308 |
DF16 |
LC ? LM_LC_DISCONNECT_CFM |
Lm_lc_disconnect_cfm (TSC_confirm_ind_ok) |
R |
|
309 |
|
+ DFLTS_termination_p_lm |
|
|
|
310 |
|
[NOT TCV_flag_iut_is_master] |
|
|
|
311 |
|
LC ! LM_LC_DISCONNECT_REQ |
Lm_lc_disconnect_req (TCV_link_number_acl, TCV_am_addr_iut) |
|
|
312 |
DF17 |
LC ? LM_LC_DISCONNECT_CFM |
Lm_lc_disconnect_cfm (TSC_confirm_ind_ok) |
R |
|
313 |
|
+ DFLTS_termination_p_lm |
|
|
|
314 |
DF18 |
? TIMEOUT T_LM_30_max |
|
(I) |
|
315 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
316 |
DF19 |
? TIMEOUT T_guard_df |
|
(I) |
|
317 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
318 |
DF20 |
LC ? OTHERWISE |
|
(I) |
|
319 |
|
+DFLTS_send_detach_and_end_ptc_lm |
|
|
|
DFLTS_send_detach_and_end_ptc_lm |
320 |
|
CP_LM ! CM_CONTINUE |
Cm_terminate_other_ptc |
|
Termination of this PTC after the connection is released due to an unexpected event. |
321 |
|
[TCV_flag_paging] |
|
|
|
322 |
|
[TCV_flag_iut_is_master] |
|
|
|
323 |
|
LC ! LM_LC_DATA_REQ START T_guard_df (5) |
Lm_lc_data_req (TCV_link_number_acl, TCV_am_addr_tester, TSC_dm1_packet,Lmp_detach (TSC_ti_slave, TSC_error_code_unspecified_error)) |
|
|
324 |
|
LC ? LM_LC_DATA_CFM CANCEL T_guard_df |
Lm_lc_data_cfm (TSC_confirm_ind_ok) |
|
. |
325 |
|
LC ! LM_LC_DISCONNECT_REQ |
Lm_lc_disconnect_req (TCV_link_number_acl, TCV_am_addr_tester) |
|
|
326 |
DF21 |
LC ? LM_LC_DISCONNECT_CFM |
Lm_lc_disconnect_cfm (TSC_confirm_ind_ok) |
R |
|
327 |
|
+ DFLTS_termination_p_lm |
|
|
|
328 |
|
+ DFLTS_termination_p_lm |
|
|
|
329 |
|
[NOT TCV_flag_iut_is_master] |
|
|
|
330 |
|
LC ! LM_LC_DATA_REQ START T_guard_df (5) |
Lm_lc_data_req (TCV_link_number_acl, TCV_am_addr_iut, TSC_dm1_packet,Lmp_detach (TSC_ti_master, TSC_error_code_unspecified_error)) |
|
|
331 |
|
LC ? LM_LC_DATA_CFM CANCEL T_guard_df |
Lm_lc_data_cfm (TSC_confirm_ind_ok) |
|
. |
332 |
|
LC ! LM_LC_DISCONNECT_REQ |
Lm_lc_disconnect_req (TCV_link_number_acl, TCV_am_addr_iut) |
|
|
333 |
DF22 |
LC ? LM_LC_DISCONNECT_CFM |
Lm_lc_disconnect_cfm (TSC_confirm_ind_ok) |
R |
|
334 |
|
+ DFLTS_termination_p_lm |
|
|
|
335 |
|
+ DFLTS_termination_p_lm |
|
|
|
336 |
DF23 |
[NOT TCV_flag_paging] |
|
R |
|
DFLTS_termination_p_lm |
337 |
DF24 |
CP_LM ? CM_CONTINUE |
Cm_terminate_ptc |
R |
Termination of this PTC when the T_guard_var has expired on the MTC |
338 |
DF25 |
CP_LM ? CM_CONTINUE |
Cm_terminate_other_ptc_failed |
R |
Termination of this PTC when a failure has occured on the MTC or on the other PTCs. |
339 |
DF26 |
? TIMEOUT T_guard_df |
|
R |
|
340 |
DF27 |
LC ? OTHERWISE |
|
R |
|