arrowdevices mipi unipro verification checklist

Upload: sandip-bhadani

Post on 19-Oct-2015

175 views

Category:

Documents


3 download

DESCRIPTION

verification check list

TRANSCRIPT

TestPlan_CmdLinesLAYERSECTIONCATEGORYLOGNAMETESTNAMETESTDESCRIPTIONPRIOIRITYSTATUSL1P5L1P5 PHY testingCOMPLIANCEcompliance_l1p5_two_custom_power_mode_change_uvm.logcompliance_l1p5_two_custom_power_mode_change2 custom power mode change testarguments provided in below Stimulus section

Stimulus:

First power request;

+PWR_REQ_TX_MODE/PWR_REQ_RX_MODE={1,2,4,5}; //1 -FAST_MODE, 2-SLOW_MODE , 4-FAST_AUTO_MODE , 5-SLOW_AUTO_MODE

+PWR_REQ_TX_GEAR/PWR_REQ_RX_GEAR={1,2,3,4,5,6,7 for LS mode and 1,2,3 for HS mode};

+PWR_REQ_TX_LANE/PWR_REQ_RX_LANE={0,1,2,3 - 0 means 4};

+PWR_HS_SERIES={A,B};

+DEFAULT_PWR_REQ={BFM,DUT}; //POWER REQ TARGET - BFM or DUT

Second power request;

+SECOND_PWR_REQ_TX_MODE/SECOND_PWR_REQ_RX_MODE={1,2,4,5}; //1 -FAST_MODE, 2-SLOW_MODE , 4-FAST_AUTO_MODE , 5-SLOW_AUTO_MODE

+SECOND_PWR_REQ_TX_GEAR/SECOND_PWR_REQ_RX_GEAR={1,2,3,4,5,6,7 for LS mode and 1,2,3 for HS mode};

+SECOND_PWR_REQ_TX_LANE/SECOND_PWR_REQ_RX_LANE={0,1,2,3 - 0 means 4};

+SECOND_PWR_HS_SERIES={A,B};

+SECOND_PWR_REQ={BFM,DUT}; //POWER REQ TARGET - BFM or DUT

Capability setting:

+BFM_TX_AVAILABLE_LANES=4 +DUT_TX_AVAILABLE_LANES=4 //BFM and DUT connected lanes

+PA_MAX_HS_GEAR_CAP=3 +PA_MAX_PWM_GEAR_CAP=7 //maximum hs_gear and pwm_gear supportedP0NYETL1P5L1P5 Error Injection - M-PHY related CasesCOMPLIANCEcompliance_normal_l1p5_bad_phy_symb_uvm.logcompliance_normal_l1p5_bad_phy_symb3b4b_Error 5b6b_Error and RD_Error from BFM Tx side[0] Enable the 3b4b_Error, 5b6b_Error, and RD_Error in the m-phy BFM Tx side

[1] Send a message from the BFM which is will be corrupted randomly with the one of the above

error

[2] This will cause the DUT's RxSymbolError to get asserted

[3] DUT L1.5 will pass the PA_ERROR.ind to L2 with the PAErrorCode set to BAD_PHY_SYMBOL

[4] DUT L2 is expected to generate PA_LANE_ALIGN request and send NAC with RReq bit set to 0

[5] After credit exchange sequence the message will be retrasmitted this time without any errorsP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_pa_init_all_phase_trg_uprx_e_rr_or_and_recovery_uvm.logcompliance_pa_init_phase_err_and_recoveryAll Phase : Corrupted TRG_UPRx from BFM for all Phase- Start the initialization sequence from both DUT, BFM

- Transmit upto 10 INVALID_TRG_UPRx_TRIGGERS for DUT's phase 0/0b/1/2/3/4/ for less than

PA_LINKSTARTUP_TIMER timeout

- Initialization sequence is expected to complete normallyP0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_line_reset_bfm_hibernate_req_uvm.logdirected_test_l1p5_pacp_corruptionBFM LINE-RESET with PACP_PWR_Req & PACP_REQUEST_TIMER timeout attempt#2(LINE-RESET)Refer LINE - 1190 , 1191 & 1192

Rx Error injection where the PACP_PWR_cnf from DUT is dropped

Cover hibenrate and non-hibernate cases

[1] From BFM initiate the PWR Mode change request

[2] Drop PACP_PWR_cnf from the DUT on BFM Rx side.

[3] From BFM retransmit the same PACP PWR req agin - Retransmission attempt#1

[4] Drop PACP_PWR_cnf from the DUT on BFM Rx side.

[5] From BFM signal the LINE-RESET

[5] From BFM retransmit the same PACP PWR req agin - Retransmission attempt#2

- With LINE-RESET flag SET

[6] Check that DUT Issues the LINE-RESET from the L1.5 and send the PACP_PWR_cnf with status set to PWR_OK

[7] With new power mode settings do couple of message transfersP0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_line_reset_bfm_pacp_pwr_req_uvm.logdirected_test_l1p5_pacp_corruptionBFM LINE-RESET with PACP_PWR_Req & PACP_REQUEST_TIMER timeout attempt#2(LINE-RESET)Refer LINE - 1190 , 1191 & 1192

Rx Error injection where the PACP_PWR_cnf from DUT is dropped

Cover hibenrate and non-hibernate cases

[1] From BFM initiate the PWR Mode change request

[2] Drop PACP_PWR_cnf from the DUT on BFM Rx side.

[3] From BFM retransmit the same PACP PWR req agin - Retransmission attempt#1

[4] Drop PACP_PWR_cnf from the DUT on BFM Rx side.

[5] From BFM signal the LINE-RESET

[5] From BFM retransmit the same PACP PWR req agin - Retransmission attempt#2

- With LINE-RESET flag SET

[6] Check that DUT Issues the LINE-RESET from the L1.5 and send the PACP_PWR_cnf with status set to PWR_OK

[7] With new power mode settings do couple of message transfersP0NYETL1P5L1P5 INIT SceanariosCOMPLIANCEcompliance_l1p5_bfm_not_start_linkstartup_dut_timeout_uvm.logcompliance_l1p5_bfm_not_start_linkstartup_till_dut_timeoutBFM not starting the LINKSTARTUP till the DUT timeout- Initiate the PA Link Statrtup sequence from DUT

- Wait for DUT to timer timedout

- Again, Initiate the PA Link Startup sequence from BFM and DUT simultaneously

- Check for Link Initialization to complete

- Do some couple of full duplex messagesP0NYETL1P5L1P5 PHY testingCOMPLIANCEcompliance_l1p5_test_mode_initiated_by_bfm_uvm.logNACJTPAT and CRPAT packets corruption from BFM side1. BFM initiates the test mode

2. Error is injected sometimes in the CJTPAT and CRPAT packets sent via PACP_TEST_DATA

3. Check the DUT's PA_PACP_FrameCount and PA_PACP_ErrorCount are compared with the expected valuesP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_deskew_insetion_multi_lane_uvm.logcompliance_l1p5_deskew_insertionDeskew pattern in the middle of Data frameScenario#1: Single lane

- Start off with random HS, LS Mode and single lane

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATA

Scenario#2:Multi Lane > 1 Lane

- Start off with random HS, LS Mode and max lanes supported

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM on random < total number of lanes

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols received are dropped by the PA and dont make to DL

- Till TCx_REPLAY_TIMER in DL no ack is expected from DUT

- After timeout retransmit the DATA frame

- NAC is expected from DUT due to previous data fram residue

- Restart the data frame transmission from BFM

- In the middle of the data frame insert the deskew pattern on all active lanes at same time

- This deskew pattern is expected to be dropped by PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATAP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_deskew_insetion_single_lane_uvm.logcompliance_l1p5_deskew_insertionDeskew pattern in the middle of Data frameScenario#1: Single lane

- Start off with random HS, LS Mode and single lane

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATA

Scenario#2:Multi Lane > 1 Lane

- Start off with random HS, LS Mode and max lanes supported

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM on random < total number of lanes

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols received are dropped by the PA and dont make to DL

- Till TCx_REPLAY_TIMER in DL no ack is expected from DUT

- After timeout retransmit the DATA frame

- NAC is expected from DUT due to previous data fram residue

- Restart the data frame transmission from BFM

- In the middle of the data frame insert the deskew pattern on all active lanes at same time

- This deskew pattern is expected to be dropped by PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATAP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_deskew_pattern_insetion_btwn_data_single_lane_uvm.logcompliance_l1p5_deskew_insertionDeskew pattern in the middle of Data frameScenario#1: Single lane

- Start off with random HS, LS Mode and single lane

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATA

Scenario#2:Multi Lane > 1 Lane

- Start off with random HS, LS Mode and max lanes supported

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM on random < total number of lanes

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols received are dropped by the PA and dont make to DL

- Till TCx_REPLAY_TIMER in DL no ack is expected from DUT

- After timeout retransmit the DATA frame

- NAC is expected from DUT due to previous data fram residue

- Restart the data frame transmission from BFM

- In the middle of the data frame insert the deskew pattern on all active lanes at same time

- This deskew pattern is expected to be dropped by PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATAP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_insertion_of_dskew_pattern_on_multiple_lane_in_btwn_data_dl_frame_uvm.logcompliance_l1p5_lane2lane_skew_gt_2_pa_symbols_dl_frameDeskew pattern in the middle of Data frameScenario#1: Single lane

- Start off with random HS, LS Mode and single lane

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATA

Scenario#2:Multi Lane > 1 Lane

- Start off with random HS, LS Mode and max lanes supported

- From BFM Start the data frame transmission

- Insert a deskew pattern in the middle of the data frame from BFM on random < total number of lanes

- Deskew pattern is dropped by the DUT PA

- After deskew pattern rest of the symbols received are dropped by the PA and dont make to DL

- Till TCx_REPLAY_TIMER in DL no ack is expected from DUT

- After timeout retransmit the DATA frame

- NAC is expected from DUT due to previous data fram residue

- Restart the data frame transmission from BFM

- In the middle of the data frame insert the deskew pattern on all active lanes at same time

- This deskew pattern is expected to be dropped by PA

- After deskew pattern rest of the symbols receive correctly by DUT DL

- The data frame is acked by the DATAP0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_init_abort_phase_1_warm_reset_uvm.logunipro_l1p5_terminate_link_startupDME L1P5 Initialisation Sequence DUT Abort[1] Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

[2] A UniPro Link Startup Sequence is aborted by the following condition

- Assertion of the warm reset to the DUT from application

[3] Initiate the DUT initialization sequence again

[4] DUT should re-initiate the initialization sequence

[5] Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this Phase

Cold reset abort does not make sense. It will work anyway.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_init_abort_phase_0b_warm_reset_uvm.logunipro_l1p5_terminate_link_startupDME L1P5 Initialisation Sequence DUT Abort[1] Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

[2] A UniPro Link Startup Sequence is aborted by the following condition

- Assertion of the warm reset to the DUT from application

[3] Initiate the DUT initialization sequence again

[4] DUT should re-initiate the initialization sequence

[5] Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this Phase

Cold reset abort does not make sense. It will work anyway.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_init_abort_phase_3_warm_reset_uvm.logunipro_l1p5_terminate_link_startupDME L1P5 Initialisation Sequence DUT Abort[1] Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

[2] A UniPro Link Startup Sequence is aborted by the following condition

- Assertion of the warm reset to the DUT from application

[3] Initiate the DUT initialization sequence again

[4] DUT should re-initiate the initialization sequence

[5] Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this Phase

Cold reset abort does not make sense. It will work anyway.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_init_abort_phase_2_warm_reset_uvm.logunipro_l1p5_terminate_link_startupDME L1P5 Initialisation Sequence DUT Abort[1] Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

[2] A UniPro Link Startup Sequence is aborted by the following condition

- Assertion of the warm reset to the DUT from application

[3] Initiate the DUT initialization sequence again

[4] DUT should re-initiate the initialization sequence

[5] Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this Phase

Cold reset abort does not make sense. It will work anyway.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_init_abort_phase_0_warm_reset_uvm.logunipro_l1p5_terminate_link_startupDME L1P5 Initialisation Sequence DUT Abort[1] Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

[2] A UniPro Link Startup Sequence is aborted by the following condition

- Assertion of the warm reset to the DUT from application

[3] Initiate the DUT initialization sequence again

[4] DUT should re-initiate the initialization sequence

[5] Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this Phase

Cold reset abort does not make sense. It will work anyway.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_init_abort_phase_4_warm_reset_uvm.logunipro_l1p5_terminate_link_startupDME L1P5 Initialisation Sequence DUT Abort[1] Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

[2] A UniPro Link Startup Sequence is aborted by the following condition

- Assertion of the warm reset to the DUT from application

[3] Initiate the DUT initialization sequence again

[4] DUT should re-initiate the initialization sequence

[5] Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this Phase

Cold reset abort does not make sense. It will work anyway.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_line_reset_pacp_pwr_req_uvm.logdirected_test_l1p5_pacp_corruptionDUT LINE-RESET with PACP_PWR_Req & PACP_REQUEST_TIMER timeout attempt#2(LINE-RESET)Refer LINE - 1190 , 1191 & 1192

Cover hibenrate and non-hibernate cases

[1] From DUT initiate the PWR Mode change request

[2] Donot send PACP_PWR_cnf from the BFM. Wait for the timeout using Rx Error injection to drop request

[3] From BFM check that DUT has retransmitted the same PACP PWR req agin - Retransmission attempt#1

[4] Block PACP_PWR_cnf from the BFM. Wait for the timeout to occur at the DUT

[5] From BFM check that DUT signals LINE-RESET

[5] From BFM check that DUT has retransmitted the same PACP PWR req agin - Retransmission attempt#2

- With LINE-RESET flag SET

[6] Issue the LINE-RESET from the L1.5 and send the PACP_PWR_cnf with status set to PWR_OK

[7] With new power mode settings do couple of message transfers

After Each LINE-RESET the DME should set the values of the respective ( Tx / RX ) Attributes.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_line_reset_hibernate_req_uvm.logdirected_test_l1p5_pacp_corruptionDUT LINE-RESET with PACP_PWR_Req & PACP_REQUEST_TIMER timeout attempt#2(LINE-RESET)Refer LINE - 1190 , 1191 & 1192

Cover hibenrate and non-hibernate cases

[1] From DUT initiate the PWR Mode change request

[2] Donot send PACP_PWR_cnf from the BFM. Wait for the timeout using Rx Error injection to drop request

[3] From BFM check that DUT has retransmitted the same PACP PWR req agin - Retransmission attempt#1

[4] Block PACP_PWR_cnf from the BFM. Wait for the timeout to occur at the DUT

[5] From BFM check that DUT signals LINE-RESET

[5] From BFM check that DUT has retransmitted the same PACP PWR req agin - Retransmission attempt#2

- With LINE-RESET flag SET

[6] Issue the LINE-RESET from the L1.5 and send the PACP_PWR_cnf with status set to PWR_OK

[7] With new power mode settings do couple of message transfers

After Each LINE-RESET the DME should set the values of the respective ( Tx / RX ) Attributes.P0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_pacp_pwr_req_err_busy_success_response_uvm.logcompliance_l1p5_pacp_pwr_req_busy_err_success_responseDUT Power Mode Change Errors - (PWR_BUSY-PWR_ERROR_CAP-PWR_OK)//PWR_BUSY

[1]Issue a valid PWR Mode change Request to DUT

- Writing the PA_PWRMode completed

[2] Figure out a way to synchronize the last few symbols of PACP PWR Request from BFM reaching

DUT on completion of the writing to the PA_PWRMode from DME interface

[3] DUT shall reject the peer request and send PACP_PWR_cnf with PWR_BUSY status

[4] Make sure local power mode request change completes successfully.

//PWR_ERROR_CAP

[5] Issue a PWR Mode change Request from BFM to DUT,with capabability error injected.

[6] DUT must send PACP_PWR_CNF with status set to PWR_ERROR_CAP

//PWR_OK

[7] Issue a valid PWR Mode change Request from BFM to DUT .

[8] DUT must send PACP_PWR_CNF with status set to SUCCESS.

[9] Make sure local power mode request change completes successfully.P0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_pacp_pwr_req_busy_err_success_response_uvm.logcompliance_l1p5_pacp_pwr_req_busy_err_success_responseDUT Power Mode Change Errors - (PWR_BUSY-PWR_ERROR_CAP-PWR_OK)//PWR_BUSY

[1]Issue a valid PWR Mode change Request to DUT

- Writing the PA_PWRMode completed

[2] Figure out a way to synchronize the last few symbols of PACP PWR Request from BFM reaching

DUT on completion of the writing to the PA_PWRMode from DME interface

[3] DUT shall reject the peer request and send PACP_PWR_cnf with PWR_BUSY status

[4] Make sure local power mode request change completes successfully.

//PWR_ERROR_CAP

[5] Issue a PWR Mode change Request from BFM to DUT,with capabability error injected.

[6] DUT must send PACP_PWR_CNF with status set to PWR_ERROR_CAP

//PWR_OK

[7] Issue a valid PWR Mode change Request from BFM to DUT .

[8] DUT must send PACP_PWR_CNF with status set to SUCCESS.

[9] Make sure local power mode request change completes successfully.P0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_pwr_mode_race_dut_reject_local_req_when_remote_req_is_in_process_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency ResolutionCover hibenrate and non-hibernate cases

Scenario#1: DUT rejecting the local request

[1] Send a valid PACP PWR Request from BFM to DUT

[2] After completing the transmission from BFM - Initiate the Power mode change at DUT

- Writing the PA_PWRMode.

[3] DUT shall reject the local request by providing the PWR_BUSY indication to PA_LM_SET

[4] Verify the BFM receives the Successful PACP_PWR_cnf

[5] Transmit two messages

Scenario#2: DUT rejecting the peer request

[1] Issue a valid PWR Mode change Request to DUT

- Writing the PA_PWRMode completed

[2] Figure out a way to synchronize the last few symbols of PACP PWR Request from BFM reaching

DUT on completion of the writing to the PA_PWRMode from DME interface

[3] DUT shall reject the peer request and send PACP_PWR_cnf with PWR_BUSY status

[4] Make sure local power mode request change completes successfully

[5] Do couple of full duplex messagesP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_pwr_mode_n_hibernate_race_dut_reject_local_req_when_remote_req_is_in_process_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency ResolutionCover hibenrate and non-hibernate cases

Scenario#1: DUT rejecting the local request

[1] Send a valid PACP PWR Request from BFM to DUT

[2] After completing the transmission from BFM - Initiate the Power mode change at DUT

- Writing the PA_PWRMode.

[3] DUT shall reject the local request by providing the PWR_BUSY indication to PA_LM_SET

[4] Verify the BFM receives the Successful PACP_PWR_cnf

[5] Transmit two messages

Scenario#2: DUT rejecting the peer request

[1] Issue a valid PWR Mode change Request to DUT

- Writing the PA_PWRMode completed

[2] Figure out a way to synchronize the last few symbols of PACP PWR Request from BFM reaching

DUT on completion of the writing to the PA_PWRMode from DME interface

[3] DUT shall reject the peer request and send PACP_PWR_cnf with PWR_BUSY status

[4] Make sure local power mode request change completes successfully

[5] Do couple of full duplex messagesP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_hibenate_race_dut_reject_local_req_when_remote_req_is_in_process_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency ResolutionCover hibenrate and non-hibernate cases

Scenario#1: DUT rejecting the local request

[1] Send a valid PACP PWR Request from BFM to DUT

[2] After completing the transmission from BFM - Initiate the Power mode change at DUT

- Writing the PA_PWRMode.

[3] DUT shall reject the local request by providing the PWR_BUSY indication to PA_LM_SET

[4] Verify the BFM receives the Successful PACP_PWR_cnf

[5] Transmit two messages

Scenario#2: DUT rejecting the peer request

[1] Issue a valid PWR Mode change Request to DUT

- Writing the PA_PWRMode completed

[2] Figure out a way to synchronize the last few symbols of PACP PWR Request from BFM reaching

DUT on completion of the writing to the PA_PWRMode from DME interface

[3] DUT shall reject the peer request and send PACP_PWR_cnf with PWR_BUSY status

[4] Make sure local power mode request change completes successfully

[5] Do couple of full duplex messagesP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_local_power_req_bfm_true_and_dut_true_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_local_and_remote_hibernate_req_bfm_false_and_dut_false_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_pwr_mode_race_bfm_req_reject_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_local_hibernate_req_bfm_true_and_dut_false_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_hibenate_race_bfm_req_reject_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_local_power_req_bfm_true_and_dut_false_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_pwr_mode_n_hibernate_race_bfm_req_reject_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_local_hiberante_req_bfm_true_and_dut_true_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_remote_hiberante_req_bfm_true_and_dut_true_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_remote_hiberante_req_bfm_false_and_dut_true_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_remote_power_req_bfm_true_and_dut_true_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 Low Power ScenariosCOMPLIANCEcompliance_l1p5_dut_reject_remote_power_req_bfm_false_and_dut_true_uvm.logtest_l1p5_pacp_concurrency_resolutionDUT Power Mode Change Errors - Concurrency Resolution(DEV_ID)Cover hibenrate and non-hibernate cases

Scenario#1: Local req reject when a remote req is received when local req is being processed

(i)BFM=True=x DUT=False=80

(ii)BFM=False DUT=False

(iii)BFM=True=x, DUT=True=y & x=yP0NYETL1P5L1P5 PHY testingCOMPLIANCEcompliance_l1p5_dut_reject_local_invalid_power_req_uvm.logcompliance_l1p5_dut_reject_local_invalid_power_reqDUT reject Local invalid power requestP0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_ep_reset_from_bfm_uvm.logunipro_l1p5_pacp_ep_resetEndpoint reset from BFM (TRG_EPR)[1] Test gives EPR from the BFM

[2] Test verifies the end point reset is indicated at the DUT side.

[3] This verifies the PACP EPR frame sent and receive correctlyP0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_ep_reset_from_dut_uvm.logunipro_l1p5_pacp_ep_resetEndpoint reset from DUT (TRG_EPR)[1] Test gives EPR from the DUT

[2] Test verifies the end point reset is indicated at the BFM side

[3] This verifies the PACP EPR frame sent and receive correctlyP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_eob_corr_uvm.logdirected_test_l1p5_framing_corruptionErrored frame Transfers - EOB CorruptionInject EOB_CORR for the PACP / DL Frames

Compliance:

Scenario #1 : Data and control bit corruption(INJ_DFRAME_EOB_CORR - MK2_xx DNC is not corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Control bits corruption

[3] DUT L2 Rx will get those additional symbols and sends a NAC frame

[4] BFM checks the NAC frame reception

[5] Retransmit the data frame correctly

Scenario #2 : Data and Control bit correct and Symbol corruption (INJ_DFRAME_EOB_DNC_CORR - MK2_xx DNC is corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Symbol error

[3] DUT L2 Rx will not know about it and PA will drop these symbols

[4] BFM receives the AFC for the data frame

Constrained random will cover both the above scenarios randomly and for PACP frames

TODO:

Really interesting EOB corruption scenarios are when the L1.5 is waiting for EOB which it uses

as handshake.

Like the power mode change request completions. In this case through EOB corruption we can cause

PA_PACPReqEoBTimeout in DUT

Stimulus:P0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_eob_dnc_corr_uvm.logdirected_test_l1p5_framing_corruptionErrored frame Transfers - EOB CorruptionInject EOB_CORR for the PACP / DL Frames

Compliance:

Scenario #1 : Data and control bit corruption(INJ_DFRAME_EOB_CORR - MK2_xx DNC is not corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Control bits corruption

[3] DUT L2 Rx will get those additional symbols and sends a NAC frame

[4] BFM checks the NAC frame reception

[5] Retransmit the data frame correctly

Scenario #2 : Data and Control bit correct and Symbol corruption (INJ_DFRAME_EOB_DNC_CORR - MK2_xx DNC is corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Symbol error

[3] DUT L2 Rx will not know about it and PA will drop these symbols

[4] BFM receives the AFC for the data frame

Constrained random will cover both the above scenarios randomly and for PACP frames

TODO:

Really interesting EOB corruption scenarios are when the L1.5 is waiting for EOB which it uses

as handshake.

Like the power mode change request completions. In this case through EOB corruption we can cause

PA_PACPReqEoBTimeout in DUT

Stimulus:P0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_eob_corr_pacp_uvm.logcompliance_l1p5_sob_nd_eob_corruption_during_pacp_transferErrored frame Transfers - EOB CorruptionInject EOB_CORR for the PACP / DL Frames

Compliance:

Scenario #1 : Data and control bit corruption(INJ_DFRAME_EOB_CORR - MK2_xx DNC is not corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Control bits corruption

[3] DUT L2 Rx will get those additional symbols and sends a NAC frame

[4] BFM checks the NAC frame reception

[5] Retransmit the data frame correctly

Scenario #2 : Data and Control bit correct and Symbol corruption (INJ_DFRAME_EOB_DNC_CORR - MK2_xx DNC is corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Symbol error

[3] DUT L2 Rx will not know about it and PA will drop these symbols

[4] BFM receives the AFC for the data frame

Constrained random will cover both the above scenarios randomly and for PACP frames

TODO:

Really interesting EOB corruption scenarios are when the L1.5 is waiting for EOB which it uses

as handshake.

Like the power mode change request completions. In this case through EOB corruption we can cause

PA_PACPReqEoBTimeout in DUT

Stimulus:P0NYETL1P5L1P5 Error Injection - Framing ErrorsRANDOMrand_l1p5_data_eob_dnc_corr_uvm.logunipro_tb_base_testErrored frame Transfers - EOB CorruptionInject EOB_CORR for the PACP / DL Frames

Compliance:

Scenario #1 : Data and control bit corruption(INJ_DFRAME_EOB_CORR - MK2_xx DNC is not corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Control bits corruption

[3] DUT L2 Rx will get those additional symbols and sends a NAC frame

[4] BFM checks the NAC frame reception

[5] Retransmit the data frame correctly

Scenario #2 : Data and Control bit correct and Symbol corruption (INJ_DFRAME_EOB_DNC_CORR - MK2_xx DNC is corrupted)

[1] Transmit a data frame from the BFM ensuring it creates burst

[2] EOB corrupt the burst leading to Symbol error

[3] DUT L2 Rx will not know about it and PA will drop these symbols

[4] BFM receives the AFC for the data frame

Constrained random will cover both the above scenarios randomly and for PACP frames

TODO:

Really interesting EOB corruption scenarios are when the L1.5 is waiting for EOB which it uses

as handshake.

Like the power mode change request completions. In this case through EOB corruption we can cause

PA_PACPReqEoBTimeout in DUT

Stimulus:P0NYETL1P5L1P5 Error Injection - Framing ErrorsRANDOMrand_l1p5_filler_corr_uvm.logunipro_tb_base_testErrored frame Transfers - FILLER Corruption(UNEXPECTED_PHY_ESC_SYMBOL insertion)Scenario#1 : Corrupted fillers in the middle of DL Data frame

[1] Transmit a DL data frame from the BFM

[2] In the middle of data frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption

[b] corrupted Fillers with Data and Control correct but with Symbol corruption

[3] Invalid filler symbols are received by the DUT DL

[4] BFM is expected to receive the NAC from DUT

[5] BFM will retransmit the Data frame. This time dont inject FILLER error and it should complete

normally

Scenario#2 : Corrupted fillers in the middle of PACP frame

[1] Create power mode change request from BFM

[2] In the middle of PACP frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption(assertion of symb_err from M-PHY RX)

[b] corrupted Fillers with Data and Control correct but with Symbol corruption (UNEXPECTED_PHY_ESC_SYMBOL insertion)

[3] Invalid filler symbols are received by the DUT L1.5 and not passed to DL

- L1.5 will pass the PA_ERROR.ind to DL

[4] BFM is expected to receive the NAC from DUT and Power mode confirmation is not expected to received from DUT

[5] BFM will retransmit the PACP Pwr req frame. This time dont inject FILLER error and it should complete

normallyP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_filler_corr_pacp_uvm.logcompliance_l1p5_sob_nd_eob_corruption_during_pacp_transferErrored frame Transfers - FILLER Corruption(UNEXPECTED_PHY_ESC_SYMBOL insertion)Scenario#1 : Corrupted fillers in the middle of DL Data frame

[1] Transmit a DL data frame from the BFM

[2] In the middle of data frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption

[b] corrupted Fillers with Data and Control correct but with Symbol corruption

[3] Invalid filler symbols are received by the DUT DL

[4] BFM is expected to receive the NAC from DUT

[5] BFM will retransmit the Data frame. This time dont inject FILLER error and it should complete

normally

Scenario#2 : Corrupted fillers in the middle of PACP frame

[1] Create power mode change request from BFM

[2] In the middle of PACP frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption(assertion of symb_err from M-PHY RX)

[b] corrupted Fillers with Data and Control correct but with Symbol corruption (UNEXPECTED_PHY_ESC_SYMBOL insertion)

[3] Invalid filler symbols are received by the DUT L1.5 and not passed to DL

- L1.5 will pass the PA_ERROR.ind to DL

[4] BFM is expected to receive the NAC from DUT and Power mode confirmation is not expected to received from DUT

[5] BFM will retransmit the PACP Pwr req frame. This time dont inject FILLER error and it should complete

normallyP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_filler_corr_uvm.logdirected_test_l1p5_framing_corruptionErrored frame Transfers - FILLER Corruption(UNEXPECTED_PHY_ESC_SYMBOL insertion)Scenario#1 : Corrupted fillers in the middle of DL Data frame

[1] Transmit a DL data frame from the BFM

[2] In the middle of data frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption

[b] corrupted Fillers with Data and Control correct but with Symbol corruption

[3] Invalid filler symbols are received by the DUT DL

[4] BFM is expected to receive the NAC from DUT

[5] BFM will retransmit the Data frame. This time dont inject FILLER error and it should complete

normally

Scenario#2 : Corrupted fillers in the middle of PACP frame

[1] Create power mode change request from BFM

[2] In the middle of PACP frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption(assertion of symb_err from M-PHY RX)

[b] corrupted Fillers with Data and Control correct but with Symbol corruption (UNEXPECTED_PHY_ESC_SYMBOL insertion)

[3] Invalid filler symbols are received by the DUT L1.5 and not passed to DL

- L1.5 will pass the PA_ERROR.ind to DL

[4] BFM is expected to receive the NAC from DUT and Power mode confirmation is not expected to received from DUT

[5] BFM will retransmit the PACP Pwr req frame. This time dont inject FILLER error and it should complete

normallyP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_filler_dnc_corr_uvm.logdirected_test_l1p5_framing_corruptionErrored frame Transfers - FILLER Corruption(UNEXPECTED_PHY_ESC_SYMBOL insertion)Scenario#1 : Corrupted fillers in the middle of DL Data frame

[1] Transmit a DL data frame from the BFM

[2] In the middle of data frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption

[b] corrupted Fillers with Data and Control correct but with Symbol corruption

[3] Invalid filler symbols are received by the DUT DL

[4] BFM is expected to receive the NAC from DUT

[5] BFM will retransmit the Data frame. This time dont inject FILLER error and it should complete

normally

Scenario#2 : Corrupted fillers in the middle of PACP frame

[1] Create power mode change request from BFM

[2] In the middle of PACP frame from BFM insert the

[a] corrupted Fillers with Data and Control bit corruption(assertion of symb_err from M-PHY RX)

[b] corrupted Fillers with Data and Control correct but with Symbol corruption (UNEXPECTED_PHY_ESC_SYMBOL insertion)

[3] Invalid filler symbols are received by the DUT L1.5 and not passed to DL

- L1.5 will pass the PA_ERROR.ind to DL

[4] BFM is expected to receive the NAC from DUT and Power mode confirmation is not expected to received from DUT

[5] BFM will retransmit the PACP Pwr req frame. This time dont inject FILLER error and it should complete

normallyP0NYETL1P5L1P5 Error Injection - Framing ErrorsRANDOMrand_l1p5_sob_dnc_corr_uvm.logunipro_tb_base_testErrored frame Transfers - SOB CorruptionInject SOB_CORR for the PACP / DL Frames.

Compliance:

MK0_xx DNC not corrupted(INJ_DFRAME_SOB_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT L2 Rx will not be able to get to the DL frame

[3] Triggers the TCx_REPLAY_TIMER at the BFM side

[4] Retransmit the data frame correctly

MK0_xx DNC corrupted (INJ_DFRAME_SOB_DNC_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT M-PHY Rx will assert symbol error signal.

[3] DUT L1P5 RX will send PA_ERROR_ind to its L2 and L2 will schedule NAC for it.

[4] BFM After receiving NAC, retransmits the data frame.

Constrained random version will inject the e_rr_ors(INJ_DFRAME_SOB_DNC_CORR) in the SOB that can contain

- Multiple DL frames - DATA, CONTROL

- Containing DL + PACP framesP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_sob_corr_pacp_uvm.logcompliance_l1p5_sob_nd_eob_corruption_during_pacp_transferErrored frame Transfers - SOB CorruptionInject SOB_CORR for the PACP / DL Frames.

Compliance:

MK0_xx DNC not corrupted(INJ_DFRAME_SOB_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT L2 Rx will not be able to get to the DL frame

[3] Triggers the TCx_REPLAY_TIMER at the BFM side

[4] Retransmit the data frame correctly

MK0_xx DNC corrupted (INJ_DFRAME_SOB_DNC_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT M-PHY Rx will assert symbol error signal.

[3] DUT L1P5 RX will send PA_ERROR_ind to its L2 and L2 will schedule NAC for it.

[4] BFM After receiving NAC, retransmits the data frame.

Constrained random version will inject the e_rr_ors(INJ_DFRAME_SOB_DNC_CORR) in the SOB that can contain

- Multiple DL frames - DATA, CONTROL

- Containing DL + PACP framesP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_sob_corr_dnc_uvm.logdirected_test_l1p5_framing_corruptionErrored frame Transfers - SOB CorruptionInject SOB_CORR for the PACP / DL Frames.

Compliance:

MK0_xx DNC not corrupted(INJ_DFRAME_SOB_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT L2 Rx will not be able to get to the DL frame

[3] Triggers the TCx_REPLAY_TIMER at the BFM side

[4] Retransmit the data frame correctly

MK0_xx DNC corrupted (INJ_DFRAME_SOB_DNC_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT M-PHY Rx will assert symbol error signal.

[3] DUT L1P5 RX will send PA_ERROR_ind to its L2 and L2 will schedule NAC for it.

[4] BFM After receiving NAC, retransmits the data frame.

Constrained random version will inject the e_rr_ors(INJ_DFRAME_SOB_DNC_CORR) in the SOB that can contain

- Multiple DL frames - DATA, CONTROL

- Containing DL + PACP framesP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_sob_corr_uvm.logdirected_test_l1p5_framing_corruptionErrored frame Transfers - SOB CorruptionInject SOB_CORR for the PACP / DL Frames.

Compliance:

MK0_xx DNC not corrupted(INJ_DFRAME_SOB_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT L2 Rx will not be able to get to the DL frame

[3] Triggers the TCx_REPLAY_TIMER at the BFM side

[4] Retransmit the data frame correctly

MK0_xx DNC corrupted (INJ_DFRAME_SOB_DNC_CORR)

[1] SOB for DL Data packet corrupted from BFM Tx side

[2] DUT M-PHY Rx will assert symbol error signal.

[3] DUT L1P5 RX will send PA_ERROR_ind to its L2 and L2 will schedule NAC for it.

[4] BFM After receiving NAC, retransmits the data frame.

Constrained random version will inject the e_rr_ors(INJ_DFRAME_SOB_DNC_CORR) in the SOB that can contain

- Multiple DL frames - DATA, CONTROL

- Containing DL + PACP framesP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_sob_corr_during_init_tx_phase_0_uvm.logcompliance_pa_init_phase_err_and_abortErrored frame Transfers - SOB Corruption During LinkStartup sequenceInject SOB_CORR(MK0_xx) for INIT SYMBOLS .

Compliance:

DURING TX_INIT_PHASE_0:

[1] SOB for INIT_SYMBOLS are corrupted from BFM Tx side starting from PHASE0

[2] DUT L1P5 Rx will drop all init symbols headed by Corrupted SOB.

[3] BFM Tx will move to PHASE1(as it has received valid TRG_UPR0 symbols) and starts tranmsitting TRG_UPR1 but DUT will be in PHASE 0 waiting for reception of TRG_UPR0.

[4] LINK_STARTUP_TIMER_TIMEOUT at DUT side.

[5] Test will issue new linkstartup request and successfull linkstartup sequence is done

DURING TX_INIT_PHASE_0B:

[1] SOB for INIT_SYMBOLS are corrupted from BFM Tx side starting from PHASE0B

[2] DUT L1P5 Rx will drop all init symbols headed by Corrupted SOB.

[3] BFM Tx will move to PHASE3(as it is receiving valid TRG_UPR1 symbols) and starts tranmsitting TRG_UPR2 but DUT will be in PHASE 1 waiting for reception of TRG_UPR1.

[4] LINK_STARTUP_TIMER_TIMEOUT at DUT side.

[5] Test will issue new linkstartup request and successfull linkstartup sequence is doneP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_data_sob_corr_during_init_tx_phase_0B_uvm.logcompliance_pa_init_phase_err_and_abortErrored frame Transfers - SOB Corruption During LinkStartup sequenceInject SOB_CORR(MK0_xx) for INIT SYMBOLS .

Compliance:

DURING TX_INIT_PHASE_0:

[1] SOB for INIT_SYMBOLS are corrupted from BFM Tx side starting from PHASE0

[2] DUT L1P5 Rx will drop all init symbols headed by Corrupted SOB.

[3] BFM Tx will move to PHASE1(as it has received valid TRG_UPR0 symbols) and starts tranmsitting TRG_UPR1 but DUT will be in PHASE 0 waiting for reception of TRG_UPR0.

[4] LINK_STARTUP_TIMER_TIMEOUT at DUT side.

[5] Test will issue new linkstartup request and successfull linkstartup sequence is done

DURING TX_INIT_PHASE_0B:

[1] SOB for INIT_SYMBOLS are corrupted from BFM Tx side starting from PHASE0B

[2] DUT L1P5 Rx will drop all init symbols headed by Corrupted SOB.

[3] BFM Tx will move to PHASE3(as it is receiving valid TRG_UPR1 symbols) and starts tranmsitting TRG_UPR2 but DUT will be in PHASE 1 waiting for reception of TRG_UPR1.

[4] LINK_STARTUP_TIMER_TIMEOUT at DUT side.

[5] Test will issue new linkstartup request and successfull linkstartup sequence is doneP0NYETL1P5L1P5 Error Injection - M-PHY related CasesCOMPLIANCEcompliance_l1p5_res_err_inj_uvm.logdirected_test_l1p5_framing_corruptionFrame Transfers with Res_Error Error[1] Send a message from the BFM

[2] From BFM Tx insert a {MARKER3, MAKER4, MARKER5}

[3] DUT L1.5 will pass the PA_ERROR.ind to L1.5 with the PAErrorCode set to UNMAPPED_PHY_ESC_SYMBOL

[4] DUT L2 is expected to generate PA_LANE_ALIGN request and send NAC with RReq bit set to 0

[5] After credit exchange sequence the message will be retrasmitted this time without any errors

TODO: Reserved symbol error can be detected both by L1.5 and M-PHY.

When M-PHY receives any of the K28.0, K28,2, K28.4, K28.7 (Table 4 Control symbols M-PHY spec)

they are considered as Reserved.

RxSymbolErr : From M-PHY it does not distinguish between the 3b4b_Error, 5b6b_Error, and

RD_Error vs res_error on the RMMI control interfaceP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_l1p5_init_abort_phase_3_hibern_uvm.logunipro_l1p5_terminate_link_startupInitialisation Sequence Abort due to DUT power mode updates to HIBERN8 or OFFMODE- Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

- A UniPro Link Startup Sequence is aborted by the following condition

- From test setting DUT power mode to Hibernate_Mode/Off_Mode during a particular State/Phase.

- Wait for random delay

- From test setting DUT power mode to non Hibernate_Mode/Off mode

- DUT should re-initiate the initialization sequence

- Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this PhaseP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_l1p5_init_abort_phase_4_hibern_uvm.logunipro_l1p5_terminate_link_startupInitialisation Sequence Abort due to DUT power mode updates to HIBERN8 or OFFMODE- Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

- A UniPro Link Startup Sequence is aborted by the following condition

- From test setting DUT power mode to Hibernate_Mode/Off_Mode during a particular State/Phase.

- Wait for random delay

- From test setting DUT power mode to non Hibernate_Mode/Off mode

- DUT should re-initiate the initialization sequence

- Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this PhaseP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_l1p5_init_abort_phase_1_hibern_uvm.logunipro_l1p5_terminate_link_startupInitialisation Sequence Abort due to DUT power mode updates to HIBERN8 or OFFMODE- Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

- A UniPro Link Startup Sequence is aborted by the following condition

- From test setting DUT power mode to Hibernate_Mode/Off_Mode during a particular State/Phase.

- Wait for random delay

- From test setting DUT power mode to non Hibernate_Mode/Off mode

- DUT should re-initiate the initialization sequence

- Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this PhaseP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_l1p5_init_abort_phase_0b_hibern_uvm.logunipro_l1p5_terminate_link_startupInitialisation Sequence Abort due to DUT power mode updates to HIBERN8 or OFFMODE- Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

- A UniPro Link Startup Sequence is aborted by the following condition

- From test setting DUT power mode to Hibernate_Mode/Off_Mode during a particular State/Phase.

- Wait for random delay

- From test setting DUT power mode to non Hibernate_Mode/Off mode

- DUT should re-initiate the initialization sequence

- Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this PhaseP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_l1p5_init_abort_phase_2_hibern_uvm.logunipro_l1p5_terminate_link_startupInitialisation Sequence Abort due to DUT power mode updates to HIBERN8 or OFFMODE- Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

- A UniPro Link Startup Sequence is aborted by the following condition

- From test setting DUT power mode to Hibernate_Mode/Off_Mode during a particular State/Phase.

- Wait for random delay

- From test setting DUT power mode to non Hibernate_Mode/Off mode

- DUT should re-initiate the initialization sequence

- Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this PhaseP0NYETL1P5L1P5 e_rr_or Injection - Initialization SequencesCOMPLIANCEcompliance_l1p5_init_abort_phase_0_hibern_uvm.logunipro_l1p5_terminate_link_startupInitialisation Sequence Abort due to DUT power mode updates to HIBERN8 or OFFMODE- Either BFM/DUT starts the Initialising sequence of L1p5 by PA_LM_LINKSTARTUP.req.

- A UniPro Link Startup Sequence is aborted by the following condition

- From test setting DUT power mode to Hibernate_Mode/Off_Mode during a particular State/Phase.

- Wait for random delay

- From test setting DUT power mode to non Hibernate_Mode/Off mode

- DUT should re-initiate the initialization sequence

- Send and receive 2 messages from both BFM and DUT

- In PHASE5 : Report to the DME using PA_LM_LINKSTARTUP.cnf_L that the Link Startup Sequence succeeded. Exit the Link Startup Sequence and enter SlowAuto_Mode. So it is not possible to abort in this PhaseP0NYETL1P5L1P5 INIT SceanariosNONErandom_lock_unlock_l1p5_init_phases_uvm.logunipro_random_lock_unlock_l1p5_init_phasesL1p5 Initialisation Sequence start and Lock and Unlock the BFM INIT phases with the valid random delays- Initiaite the PA Link Startup sequence from the DUT and BFM simultaneously or either end

- Using Lock Unlock feature, Insert random delays between the phases such that sum of delays is < 100ms(-10%) = 90ms

- Check for the Link Initialization to complete

- Transmit 2 messages each from the BFM and DUT. Wait for it to completeP0NYETL1P5L1P5 INIT SceanariosCOMPLIANCEcompliance_l1p5_init_start_dut_and_bfm_same_time_uvm.logunipro_l1p5_link_startup_sequence_start_on_bfm_end_n_dut_endL1p5 Initialisation Sequence start on DUT and BFM simultaneously- Initiaite the PA Link Startup sequence from the DUT and BFM simultaneously

- Wait for the initialization to complete

- ransmit 2 messages each from the BFM and DUT. Wait for it to completeP0NYETL1P5L1P5 INIT SceanariosCOMPLIANCEcompliance_l1p5_link_start_bfm_end_after_por_uvm.logunipro_l1p5_link_startup_sequence_start_on_bfm_end_n_dut_endL1p5 Link Startup Sequence start on BFM end after power on reset- On power up donot program the DUT L1.5 to start the initialization

- Wait for a period less than Link Startup timer timeout value

- Program the DUT to start the L1.5 initialization

- Wait for the initialization to complete

- Transmit 2 messages each from the BFM and DUT. Wait for the transfers to completeP0NYETL1P5L1P5 INIT SceanariosCOMPLIANCEcompliance_l1p5_link_start_dut_end_after_por_uvm.logunipro_l1p5_link_startup_sequence_start_on_bfm_end_n_dut_endL1p5 Link Startup Sequence start on DUT end after power on reset- On power up don't program the BFM L1.5 to start the initialization

- Wait for a period less than Link Startup timer timeout value

- Program the BFM to start the L1.5 initialization

- Wait for the initialization to complete

- Transmit 2 messages each from the BFM and DUT. Wait for it to completeP0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_lane2lane_skew_gt_2_pa_symbols_pacp_frame_uvm.logcompliance_l1p5_lane2lane_skew_gt_2_pa_symbols_pacp_frameLane to Lane skew exceeding more than two PA symbolsScenario#1 : DL Frame

- Start off with random HS, LS Mode and max number of lanes supported

- Transmit a data frame as follows

- Start off with Deskew pattern on the Logical Lane 0 followed by that start transmitting

symbols that belong to Lane 0

- Send the Deskew pattern on the Logical Lane 1 to MAX_LANES after 3 PA symbols

- these 3 symbols on Lane 1 can be random PA symbols other than Deskew pattern

- Send the data frame normally on all the active the lanes along with Lane 0

- On Lane0 the data frames symbols will complete 3 symbols early. Send 3 fillers

- This scenario leads to deskew FIFO overflow in the DUT

- No Ack received from the DUT

- Wait for the TCx_REPLAY_TIMER timeout at BFM

- Retransmit data frame from BFM and should be acked by DUT

Scenario#2 : PACP Frame

- Start off with random HS, LS Mode and max number of lanes supported

- Issue a Power mode change request

- Start off with Deskew pattern on the Logical Lane 0 followed by that start transmitting

symbols that belong to Lane 0

- Send the Deskew pattern on the Logical Lane 1 to MAX_LANES after 3 PA symbols

- these 3 symbols on Lane 1 can be random PA symbols other than Deskew pattern

- Send the pacp frame normally on all the active the lanes along with Lane 0

- On Lane0 the pacp frames symbols will complete 3 symbols early. Send 3 fillers

- This scenario leads to deskew FIFO overflow in the DUT

- No PACP_PWR_cnf will be received from the DUT

- Wait for the PACP_REQUEST_TIMER timeout at BFM

- Retransmit PACP_PWR_req from BFM and should be acked by DUT

- Power mode change expected to take place

- Do couple of full duplex transfers

1363 In case a deskew pattern is lost and the PA Layer RX cannot acquire the Lane synchronization,

the deskew- FIFOs of the synchronized Lanes overflow, which is the intended behavior.

The PA Layer RX shall wait until the peer Device transmits another deskew pattern and

shall lock on to this second pattern.P0NYETL1P5L1P5 Error Injection - Framing ErrorsCOMPLIANCEcompliance_l1p5_lane2lane_skew_gt_2_pa_symbols_dl_frame_uvm.logcompliance_l1p5_lane2lane_skew_gt_2_pa_symbols_dl_frameLane to Lane skew exceeding more than two PA symbolsScenario#1 : DL Frame

- Start off with random HS, LS Mode and max number of lanes supported

- Transmit a data frame as follows

- Start off with Deskew pattern on the Logical Lane 0 followed by that start transmitting

symbols that belong to Lane 0

- Send the Deskew pattern on the Logical Lane 1 to MAX_LANES after 3 PA symbols

- these 3 symbols on Lane 1 can be random PA symbols other than Deskew pattern

- Send the data frame normally on all the active the lanes along with Lane 0

- On Lane0 the data frames symbols will complete 3 symbols early. Send 3 fillers

- This scenario leads to deskew FIFO overflow in the DUT

- No Ack received from the DUT

- Wait for the TCx_REPLAY_TIMER timeout at BFM

- Retransmit data frame from BFM and should be acked by DUT

Scenario#2 : PACP Frame

- Start off with random HS, LS Mode and max number of lanes supported

- Issue a Power mode change request

- Start off with Deskew pattern on the Logical Lane 0 followed by that start transmitting

symbols that belong to Lane 0

- Send the Deskew pattern on the Logical Lane 1 to MAX_LANES after 3 PA symbols

- these 3 symbols on Lane 1 can be random PA symbols other than Deskew pattern

- Send the pacp frame normally on all the active the lanes along with Lane 0

- On Lane0 the pacp frames symbols will complete 3 symbols early. Send 3 fillers

- This scenario leads to deskew FIFO overflow in the DUT

- No PACP_PWR_cnf will be received from the DUT

- Wait for the PACP_REQUEST_TIMER timeout at BFM

- Retransmit PACP_PWR_req from BFM and should be acked by DUT

- Power mode change expected to take place

- Do couple of full duplex transfers

1363 In case a deskew pattern is lost and the PA Layer RX cannot acquire the Lane synchronization,

the deskew- FIFOs of the synchronized Lanes overflow, which is the intended behavior.

The PA Layer RX shall wait until the peer Device transmits another deskew pattern and

shall lock on to this second pattern.P0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_bfm_line_reset_pa_init_DL_uvm.logunipro_bfm_pa_init_line_resetLINE-RESET with PA_INIT.req from BFMs DLRefer LINE - 1190 , 1191 & 1192

Scenario:

[1] Configure the TC0_REPLAY_TIMER in L2 of DUT with a small value through Command line.

[2] Do some 2 message from both BFM and DUT. Block AFCs from BFM

[3] DUT should initiate a PA_INIT.req because of TC0_REPLAY_TIMER timeout.

[5] After the BFM transmits confirmation to the PA_INIT PWR_REQ frame, re-Configure the TC0_REPLAY_TIMER in L2 of DUT with a large (noraml) value and unblock AFC in BFM

[6] Wait for the BFM L1P5 to receive a PA_INIT request and transmit the corresponding PA_INIT PWR_REQ.

[7] Drop the CNF sent by the DUT in response to this PWR_REQ FRAME.

[8] Wait for line-reset from the BFM, and the subsequent retransmission of the PWR_REQ frame.

[7] After the BFM receives the Confirmation frame from the DUT, send 2 messages from both BFM and DUT. Wait for them to completeP0NYETL1P5L1P5 Reset Scenarios (LINE-RESET & Warm Reset)COMPLIANCEcompliance_l1p5_dut_line_reset_pa_init_DL_uvm.logunipro_l1p5_pa_init_line_resetLINE-RESET with PA_INIT.req from DUTs DLRefer LINE - 1190 , 1191 & 1192

Scenario:

[1] Configure the TC0_REPLAY_TIMER in L2 of DUT with a small value through Command line.

[2] Do some 2 message from both BFM and DUT. Block AFCs from BFM

[3] DUT should initiate a PA_INIT.req because of TC0_REPLAY_TIMER timeout.

[4] Block the PWR_CNF frame from the BFM and Check for line-reset from DUT

[5] Re-Configure the TC0_REPLAY_TIMER in L2 of DUT with a large (noraml) value and unblock AFC in BFM

[6] Wait for the L1P5 initialisation to happen.

[7] Do some 2 message from both BFM and DUT. Wait for it to completeP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_get_with_cnf_dropped_once_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* PEER_COMMUNICATION_FAILURE[1] Issue PA_LM_PEER_SET/GET.req(selected randomly) with the Attr_ID set to PA_SleepNoConfigTime from DUT

[2] Block the confirmation that is to be sent by BFM

[3] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#1

[4] Block the confirmation at the BFM

[5] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#2

[6] Continue to Block the confirmation at the BFM

[7] DUT shall abort the transfer and provide indication with PEER_COMMUNICATION_FAILURE //TODO

[8] Do one successful PA_LM_PEER_SET/GET.req(selected randomly) to PA_SleepNoConfigTime from DUTP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_with_cnf_dropped_once_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* PEER_COMMUNICATION_FAILURE[1] Issue PA_LM_PEER_SET/GET.req(selected randomly) with the Attr_ID set to PA_SleepNoConfigTime from DUT

[2] Block the confirmation that is to be sent by BFM

[3] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#1

[4] Block the confirmation at the BFM

[5] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#2

[6] Continue to Block the confirmation at the BFM

[7] DUT shall abort the transfer and provide indication with PEER_COMMUNICATION_FAILURE //TODO

[8] Do one successful PA_LM_PEER_SET/GET.req(selected randomly) to PA_SleepNoConfigTime from DUTP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_e_rr_or_peer_communication_failure_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* PEER_COMMUNICATION_FAILURE[1] Issue PA_LM_PEER_SET/GET.req(selected randomly) with the Attr_ID set to PA_SleepNoConfigTime from DUT

[2] Block the confirmation that is to be sent by BFM

[3] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#1

[4] Block the confirmation at the BFM

[5] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#2

[6] Continue to Block the confirmation at the BFM

[7] DUT shall abort the transfer and provide indication with PEER_COMMUNICATION_FAILURE //TODO

[8] Do one successful PA_LM_PEER_SET/GET.req(selected randomly) to PA_SleepNoConfigTime from DUTP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_get_e_rr_or_peer_communication_failure_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* PEER_COMMUNICATION_FAILURE[1] Issue PA_LM_PEER_SET/GET.req(selected randomly) with the Attr_ID set to PA_SleepNoConfigTime from DUT

[2] Block the confirmation that is to be sent by BFM

[3] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#1

[4] Block the confirmation at the BFM

[5] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#2

[6] Continue to Block the confirmation at the BFM

[7] DUT shall abort the transfer and provide indication with PEER_COMMUNICATION_FAILURE //TODO

[8] Do one successful PA_LM_PEER_SET/GET.req(selected randomly) to PA_SleepNoConfigTime from DUTP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_get_with_cnf_dropped_twice_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* PEER_COMMUNICATION_FAILURE[1] Issue PA_LM_PEER_SET/GET.req(selected randomly) with the Attr_ID set to PA_SleepNoConfigTime from DUT

[2] Block the confirmation that is to be sent by BFM

[3] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#1

[4] Block the confirmation at the BFM

[5] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#2

[6] Continue to Block the confirmation at the BFM

[7] DUT shall abort the transfer and provide indication with PEER_COMMUNICATION_FAILURE //TODO

[8] Do one successful PA_LM_PEER_SET/GET.req(selected randomly) to PA_SleepNoConfigTime from DUTP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_with_cnf_dropped_twice_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* PEER_COMMUNICATION_FAILURE[1] Issue PA_LM_PEER_SET/GET.req(selected randomly) with the Attr_ID set to PA_SleepNoConfigTime from DUT

[2] Block the confirmation that is to be sent by BFM

[3] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#1

[4] Block the confirmation at the BFM

[5] DUT is expected to retransmit the PACP_PEER_SET req - Retransmission attempt#2

[6] Continue to Block the confirmation at the BFM

[7] DUT shall abort the transfer and provide indication with PEER_COMMUNICATION_FAILURE //TODO

[8] Do one successful PA_LM_PEER_SET/GET.req(selected randomly) to PA_SleepNoConfigTime from DUTP0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_get_e_rr_or_bad_index_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_e_rr_or_read_only_mib_attribute_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_e_rr_or_locked_mib_attribute_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_e_rr_or_invalid_mib_attribute_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_get_e_rr_or_busy_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_e_rr_or_busy_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME AccessCOMPLIANCEcompliance_l1p5_lm_peer_set_e_rr_or_invalid_mib_attribute_value_uvm.logdirected_test_l1p5_pacp_get_set_corruptionLM_PEER_SET_* & LM_PEER_GET_* ConfigResultCode other than SUCCESSScenario#1: INVALID_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

[3] Issue PA_LM_PEER_GET.req from BFM to an invalid attribute id (Ex: 0x1559) - < Start || > End

[4] Make sure that DUT sends a PACP_GET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE

Scenario#2: INVALID_MIB_ATTRIBUTE_VALUE

[2] Issue PA_LM_PEER_SET.req from BFM to PA_SleepNoConfigTime with value greater than the allowed limit

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to INVALID_MIB_ATTRIBUTE_VALUE

Scenario#3: READ_ONLY_MIB_ATTRIBUTE

[1] Issue PA_LM_PEER_SET.req from BFM to PA_TxPWRStatus with value set to 4 (RO attribute written)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to READ_ONLY_MIB_ATTRIBUTE

Scenario#3: BAD_INDEX

[1] Start the test with number of active lanes set to 2;

[2] Issue PA_LM_PEER_SET.req from BFM to an M-PHY Lane parameter(RX_HSGEAR) that belongs to a lane that

is inactive, say lane 4 ( By selecting Gen_Selector_Index with value set to 16'h11)

[3] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to BAD_INDEX

Scenario#4: WRITE_ONLY_MIB_ATTRB(Only for PACP_GET_REQ)

[1] Issue PA_LM_PEER_GET.req from BFM to ???? (a Write-only attribute)

[2] Make sure that DUT sends a PACP_SET_CNF with ConfigResultCode set to WRITE_ONLY_MIB_ATTRB

Scenario#5: LOCKED_MIB_ATTRB (Only for PACP_SET_REQ)

[1] Issue PA_LM_PEER_SET.req from BFM to any CPORT attribute in Connected state.

[2] Make sure that DUT sends PACP_SET_CNF with ConfigResultCode set to LOCKED_MIB_ATTRB

Scenario#6: BUSY

GenSelectorIndex attribute sent in PACP_SET_REQ can take following integer values :

Integer 0 to 2*PA_MaxDataLanes - 1, for M-PHY

0 to T_NumCPorts - 1, for CPort

0 to T_NumTestFeatures - 1, for Test Feature

Values indicate the targeted logical M-PHY data Lane or CPort Test Feature when relevant.

In all above scenarios do

- one valid PEER_GET/SET at the end to make sure DUT DME is functional.

- one valid DME_GET/SET at the end to make sure DUT DME is functional.P0NYETL1P5L1P5 DME Ac