6.7. Digest Errors
6.7. 다이제스트 오류
The discussion of the legal choices in handling digest errors below excludes session recovery as an explicit option, but either party detecting a digest error may choose to escalate the error to session recovery.
아래의 다이제스트 오류 처리에 대한 법적 선택에 대한 논의에서는 세션 복구를 명시적인 옵션으로 제외하지만 다이제스트 오류를 감지한 당사자 중 어느 쪽이든 오류를 세션 복구로 확대하도록 선택할 수 있습니다.
When a target or an initiator receives any iSCSI PDU, with a header digest error, it MUST either discard the header and all data up to the beginning of a later PDU or close the connection.
타겟 또는 이니시에이터가 헤더 다이제스트 오류와 함께 iSCSI PDU를 수신하면 헤더와 이후 PDU 시작 부분까지의 모든 데이터를 삭제하거나 연결을 닫아야 합니다.
Because the digest error indicates that the length field of the header may have been corrupted, the location of the beginning of a later PDU needs to be reliably ascertained by other means such as the operation of a sync and steering layer.
다이제스트 오류는 헤더의 길이 필드가 손상되었을 수 있음을 나타내기 때문에 이후 PDU의 시작 위치는 동기화 및 조정 계층의 작동과 같은 다른 수단을 통해 확실하게 확인되어야 합니다.
When a target receives any iSCSI PDU with a payload digest error, it MUST answer with a Reject PDU with a reason code of Data-Digest-Error and discard the PDU.
타겟이 페이로드 다이제스트 오류가 있는 iSCSI PDU를 수신하면 이유 코드가 Data-Digest-Error인 PDU 거부로 응답하고 PDU를 폐기해야 합니다.
- If the discarded PDU is a solicited or unsolicited iSCSI data PDU (for immediate data in a command PDU, non-data PDU rule below applies), the target MUST do one of the following:
- 폐기된 PDU가 요청되거나 요청되지 않은 iSCSI 데이터 PDU인 경우 (명령 PDU의 즉각적인 데이터에 대해 아래 비 데이터 PDU 규칙이 적용됨) 타겟은 다음 중 하나를 수행해야 합니다:
a) Request retransmission with a recovery R2T.
a) 복구 R2T를 사용하여 재전송을 요청합니다.
b) Terminate the task with a response PDU with a CHECK.
b) CHECK를 사용하여 응답 PDU로 작업을 종료합니다.
CONDITION Status and an iSCSI Condition of "protocol service CRC error" (Section 10.4.7.2 Sense Data).
CONDITION 상태 및 "프로토콜 서비스 CRC 오류"의 iSCSI 조건 (섹션 10.4.7.2 감지 데이터).
If the target chooses to implement this option, it MUST wait to receive all the data (signaled by a Data PDU with the final bit set for all outstanding R2Ts) before sending the response PDU.
타겟이 이 옵션을 구현하기로 선택한 경우 응답 PDU를 보내기 전에 모든 데이터 (모든 미해결 R2T에 대해 설정된 최종 비트가 있는 데이터 PDU에 의해 신호됨)를 수신할 때까지 기다려야 합니다.
A task management command (such as an abort task) from the initiator during this wait may also conclude the task.
이 대기 중에 이니시에이터의 작업 관리 명령 (예: 작업 중단)으로 인해 작업이 종료될 수도 있습니다.
- No further action is necessary for targets if the discarded PDU is a non-data PDU.
- 폐기된 PDU가 비데이터 PDU인 경우 타겟에 대한 추가 조치가 필요하지 않습니다.
In case of immediate data being present on a discarded command, the immediate data is implicitly recovered when the task is retried (see section 6.2.1), followed by the entire data transfer for the task.
폐기된 명령에 즉시 데이터가 있는 경우 작업이 재시도될 때 즉시 데이터가 암시적으로 복구되고 (섹션 6.2.1 참조) 작업에 대한 전체 데이터 전송이 이어집니다.
When an initiator receives any iSCSI PDU with a payload digest error, it MUST discard the PDU.
이니시에이터가 페이로드 다이제스트 오류가 있는 iSCSI PDU를 수신하면 해당 PDU를 폐기해야 합니다.
- If the discarded PDU is an iSCSI data PDU, the initiator MUST do one of the following:
- 폐기된 PDU가 iSCSI 데이터 PDU인 경우 이니시에이터는 다음 중 하나를 수행해야 합니다.
a) Request the desired data PDU through SNACK.
a) SNACK을 통해 원하는 데이터 PDU를 요청합니다.
In response to the SNACK, the target MUST either resend the data PDU or reject the SNACK with a Reject PDU with a reason code of "SNACK reject" in which case:
SNACK에 대한 응답으로, 타겟은 데이터 PDU를 재전송하거나 이유 코드가 "SNACK Reject"인 Reject PDU와 함께 SNACK을 거부해야 합니다.
i) If the status has not already been sent for the command, the target MUST terminate the command with a CHECK CONDITION Status and an iSCSI Condition of "SNACK rejected" (Section 10.4.7.2 Sense Data).
i) 명령에 대한 상태가 아직 전송되지 않은 경우 타겟은 CHECK CONDITION 상태 및 "SNACK 거부됨" (섹션 10.4.7.2 감지 데이터)의 iSCSI 조건으로 명령을 종료해야 합니다.
ii) If the status was already sent, no further action is necessary for the target.
ii) 상태가 이미 전송된 경우 타겟에 대한 추가 조치가 필요하지 않습니다.
The initiator in this case MUST wait for the status to be received and then discard it, so as to internally signal the completion with CHECK CONDITION Status and an iSCSI Condition of "protocol service CRC error" (Section 10.4.7.2 Sense Data).
이 경우 이니시에이터는 상태가 수신될 때까지 기다린 다음 이를 폐기해야 합니다. 그래야 내부적으로 CHECK CONDITION 상태 및 "프로토콜 서비스 CRC 오류"의 iSCSI 조건 (섹션 10.4.7.2 감지 데이터)으로 완료를 알릴 수 있습니다.
b) Abort the task and terminate the command with an error.
b) 작업을 중단하고 오류와 함께 명령을 종료합니다.
- If the discarded PDU is a response PDU, the initiator MUST do one of the following:
- 폐기된 PDU가 응답 PDU인 경우 이니시에이터는 다음 중 하나를 수행해야 합니다:
a) Request PDU retransmission with a status SNACK.
a) SNACK 상태로 PDU 재전송을 요청합니다.
b) Logout the connection for recovery and continue the tasks on a different connection instance as described in Section 6.2 Retry and Reassign in Recovery.
b) 복구를 위해 연결을 로그아웃하고 섹션 6.2 복구에서 재시도 및 재할당에 설명된 대로 다른 연결 인스턴스에서 작업을 계속합니다.
c) Logout to close the connection (abort all the commands associated with the connection).
c) 로그아웃하여 연결을 닫습니다 (연결과 관련된 모든 명령을 중단합니다).
- No further action is necessary for initiators if the discarded PDU is an unsolicited PDU (e.g., Async, Reject).
- 폐기된 PDU가 원치 않는 PDU인 경우 이니시에이터에 대한 추가 조치가 필요하지 않습니다 (예: 비동기, 거부).
Task timeouts as in the initiator waiting for a command completion, or process timeouts, as in the target waiting for a Logout, will ensure that the correct operational behavior will result in these cases despite the discarded PDU.
명령 완료를 기다리는 이니시에이터에서와 같은 작업 타임아웃 또는 로그아웃을 기다리는 타겟에서와 같은 프로세스 타임아웃은 폐기된 PDU에도 불구하고 이러한 경우에 올바른 작동 동작이 발생하도록 보장합니다.