Что такое дополнительные смысловые коды SCSI?

Я разрабатываю целевое программное обеспечение SCSI (и я новичок в SCSI), и мне нужно вернуть правильные данные sense, чтобы сообщить инициатору, что его запрос не прошел, потому что данные были защищены от записи . Я смотрю на кусок таблицы с T10.org, описывающий эти коды:

ASC/   .  .  .  .  .
ASCQ   DTLPWROMAEBKVF  Description
27/00  DT  WRO   BK    WRITE PROTECTED
27/01  DT  WRO   BK    HARDWARE WRITE PROTECTED
27/02  DT  WRO   BK    LOGICAL UNIT SOFTWARE WRITE PROTECTED
27/03   T   R          ASSOCIATED WRITE PROTECT
27/04   T   R          PERSISTENT WRITE PROTECT
27/05   T   R          PERMANENT WRITE PROTECT
27/06       R       F  CONDITIONAL WRITE PROTECT
27/07  D         B     SPACE ALLOCATION FAILED WRITE PROTECT

Что означают эти различные коды ASCQ? Я нигде не мог найти никаких объяснений. Три или четыре слова вроде «ПОСТОЯННАЯ ЗАЩИТА ОТ ЗАПИСИ» - это максимум, что я могу найти. Я хотел бы знать что-то вроде «если у вас есть ситуация, подобная этой, тогда вам нужно использовать ASCQ = that».


person HEKTO    schedule 23.04.2014    source источник


Ответы (3)


В этой области нет правильного и неправильного, есть несколько основных рекомендаций, которые вы можете почерпнуть, посмотрев, какие коды ASC / ASCQ возвращаются с разными ключами смысла для обычных дисков. Hitachi лучше всех документирует это в открытой документации.

Единственное, что действительно важно получить правильно, - это Sense Key, ASC / ASCQ - это хорошо, но его единственное значение - для вас. Когда клиент звонит вам и говорит: «Я сделал это и получил этот код ошибки, что это значит?» Вы должны суметь ему помочь. Это единственное реальное значение этих кодов.

person Baruch Even    schedule 16.05.2014
comment
У Баруха есть лучший ответ. Одна из областей, в которой ASC / ASCQ может быть задействована программно, - это определение таких вещей, как извлечение носителя или его неформатирование, и возможное воздействие на него. Но даже в хорошие дни разные поставщики не могут договориться о том, когда их вернуть, и вы просто получите ключ определения НЕ ГОТОВ или СРЕДНЯЯ ОШИБКА. В основном, использование ASC / ASCQ приукрашивается во всех спецификациях. Вы можете открывать их по одному. :) - person Mike Andrews; 22.04.2015

Список этих кодов находится здесь, на веб-сайте T10.org под страницей под заголовком: SCSI ASC / Задания ASCQ.

На этой странице также описывается их цель под заголовком: Дополнительные данные SCSI.

SCSI Additional Sense Data принимает форму двух байтов с кодировкой значений в смысловых данных, обычно возвращаемых командой REQUEST SENSE. Байт дополнительного смыслового кода (ASC) указывает информацию об исключительной ситуации ошибки, сообщенной в поле смыслового ключа. Квалификатор дополнительного смыслового кода (ASCQ) указывает подробную информацию, относящуюся к дополнительному смысловому коду. См. Раздел с описанием команды REQUEST SENSE в проекте стандарта SCSI Primary Commands - 4 (SPC-4) (или более поздней версии) для получения дополнительной информации о данных считывания.

Описания присвоенных значений ASC и ASCQ и их кодированных значений организованы в таблицы, которые отсортированы численно на основе значений ASC / ASCQ или в алфавитном порядке на основе текста, описывающего ошибку или исключение, указанное парой ASC / ASCQ. Если вы не знакомы с этими таблицы.

Кроме того, я бы посмотрел на тему страницы Википедии под названием: Key Code Qualifier, в которой сказать об этих кодах.

Квалификатор кода клавиши - это код ошибки, возвращаемый устройством SCSI. Когда целевое устройство SCSI возвращает условие проверки в ответ на команду, инициатор обычно затем выдает команду проверки запроса SCSI. Этот процесс является частью протокола SCSI, называемого условием условной принадлежности. Цель ответит на команду Request Sense набором сенсорных данных SCSI, который включает три поля, дающих увеличивающийся уровень детализации ошибки:

  • K - сенсорный ключ - 4 бита (байт 2 фиксированного формата данных)
  • C - дополнительный код считывания (ASC) - 8 бит (байт 12 фиксированного формата данных)
  • Q - квалификатор дополнительного смыслового кода (ASCQ) - 8 бит (байт 13 фиксированного формата данных)

Инициатор может предпринять действия, основываясь только на поле K, которое указывает, является ли ошибка незначительной или серьезной. Однако все три поля обычно логически объединяются в 20-битное поле, называемое квалификатором ключевого кода или KCQ. В спецификации целевого устройства будет определен список возможных значений KCQ. На практике существует множество значений KCQ, которые являются общими для разных типов устройств SCSI и разных производителей устройств SCSI. Общие значения перечислены ниже, вам также следует обратиться к документации по вашему оборудованию.

person slm    schedule 23.04.2014
comment
К сожалению, эти страницы содержат только три или четыре слова на ASC / ASCQ, но мне нужно было более подробное объяснение (на самом деле я скопировал часть страницы с T10.org на свой вопрос). - person HEKTO; 24.04.2014
comment
@AlekseyYakovlev - смотрите обновление и дайте мне знать, поможет ли редактирование. - person slm; 24.04.2014

Проще говоря, коды ASCQ обычно присутствуют в кадрах ответа от целевых устройств SCSI. Код ASCQ описывает дополнительные данные считывания или обычно известен как причины определенного состояния, возникшего в устройстве.

person Manoj S Seeker    schedule 26.03.2015