Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Fibre Channel N_Port state machine (приёмник)
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
ilynxy
Добрый день. Возникла проблема с реализацией приёмника 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.

Буду рад любому указанию на возможные грабли и/или толковую документацию.
starley
Цитата(ilynxy @ Sep 24 2013, 12:50) *
Добрый день. Возникла проблема с реализацией приёмника 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, то есть он вам послал столько кадров, сколько у него кредитов, а вы ему их не вернули.

Что делаете, если не секрет?
ilynxy
Цитата(starley @ Mar 25 2015, 08:09) *
Что делаете, если не секрет?
Назовём это "сниффер траффика FC". С режимом N_port так и не разобрался, было принято волевое решение о подключении "в разрыв"/"в разветвитель" (то бишь просто пассивный слушатель на линии), что значительно упростило жизнь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.