ilynxy 0 24 сентября, 2013 Опубликовано 24 сентября, 2013 · Жалоба Добрый день. Возникла проблема с реализацией приёмника 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 0 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Добрый день. Возникла проблема с реализацией приёмника 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 0 1 ноября, 2015 Опубликовано 1 ноября, 2015 · Жалоба Что делаете, если не секрет?Назовём это "сниффер траффика FC". С режимом N_port так и не разобрался, было принято волевое решение о подключении "в разрыв"/"в разветвитель" (то бишь просто пассивный слушатель на линии), что значительно упростило жизнь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться