Перейти к содержанию
    

Fibre Channel N_Port state machine (приёмник)

Добрый день. Возникла проблема с реализацией приёмника FC фреймов Class 3.

 

Соорудил приёмопередатчик FibreChannel 1Gb на Cyclone IV GX + какой-то узкоглазый оптический конвертер (Optronic).

 

Задача -- принимать кадры Class 3.

 

Реализовал машину из FC-FS-2, раздел 7 FC_Port state machine: битовая синхронизация успешно, link protocol поднимается до AC (active state).

Затем внешнее устройство посылает некий фрейм Class 3 (SOFi3-EOFt), на что я отвечаю R_RDY (если я правильно понял раздел 17.5 buffer-to-buffer control), в остальных случая Idle.

И вот тут случается непонятная мне вещь: через некоторое время (предполагаю, что на отправителе происходит E_D_TOV) линия переходит в Link Reset и переинициализируется. Затем всё повторяется.

 

Собственно вопросы:

1. Что минимально необходимо для реализации приёмной ноды FC для фреймов Class 3?

2. Нужно ли обрабатывать BB_SCr и BB_SCs?

3. Когда "правильно" отправлять R_RDY? После приёма SOF, в течении фрейма, после приёма EOF? В документации никакой конкретики нет, а точнее я сделал вывод что всё равно когда.

17.5.2 Buffer-to-buffer management rules

e) Recognition of SOFc1, SOFx2, or SOFx3 shall be responded to by a transmission of an R_RDY when the

buffer becomes available, regardless of whether the frame is valid, invalid, or discarded.

17.6 Alternate buffer-to-buffer Credit management

c) The receiving FC_Port shall transmit at least one R_RDY, representing the number of additional receive

buffers available, before, during, or after the reception of frames;

 

Всё ещё усугубляется тем, что железки-сендера на столе для отладки у меня нет (а если и будет, то залезть в неё и посмотреть почему происходит reset link не могу). Есть какой-то HBA в PCI-порту, который в принципе делает всё что надо, но, насколько я понимаю, для поднятия линка ему требуется нечто большее чем просто отвечать R_RDY на его фреймы Class 3.

 

Буду рад любому указанию на возможные грабли и/или толковую документацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день. Возникла проблема с реализацией приёмника FC фреймов Class 3.

 

Соорудил приёмопередатчик FibreChannel 1Gb на Cyclone IV GX + какой-то узкоглазый оптический конвертер (Optronic).

 

Задача -- принимать кадры Class 3.

Собственно вопросы:

1. Что минимально необходимо для реализации приёмной ноды FC для фреймов Class 3?

2. Нужно ли обрабатывать BB_SCr и BB_SCs?

3. Когда "правильно" отправлять R_RDY? После приёма SOF, в течении фрейма, после приёма EOF? В документации никакой конкретики нет, а точнее я сделал вывод что всё равно когда.

 

Для нормального приема кадров достаточно перевести линк в AC, и возвращать R_RDY в ответ на его кадры.

BB_SCr и BB_SCs необязательны, если конечно девайс, с которым вы работаете, вам их не шлет.

R_RDY правильно отправлять после того, как вы освободили в приемном буфере место для приема одного кадра максимального размера. Очевидно, что это не раньше приема EOF. Это сигнал о том, что вы готовы принять очередной кадр.

Link_Reset происходит в случае, если порт не имеет кредитов в течение E_D_TOV, то есть он вам послал столько кадров, сколько у него кредитов, а вы ему их не вернули.

 

Что делаете, если не секрет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что делаете, если не секрет?
Назовём это "сниффер траффика FC". С режимом N_port так и не разобрался, было принято волевое решение о подключении "в разрыв"/"в разветвитель" (то бишь просто пассивный слушатель на линии), что значительно упростило жизнь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...