Прошу помощи в разборе двух интефейсов - gmii и xgmii.
Стоит следущая задача: есть сервер и клиент, которые общаются по tcp/ip. Между ними нужно вставить fpga, которая будет анализировать данные, которые поступают от клиента, и если данные плохие, то обрывает соединение.
FPGA подключается с помощью двух портов SFP - один к клиенту, другой к серверу. Между собой SFP подключаются либо по gmii, либо по xgmii. В это место и подключается наш анализатор.
Изучая стандарты на gmii и xgmii (ieee 802.3) так и не понял в каком случае выставляется сигнал ошибки и как следствие, не могу понять как на него должен реагировать анализатор - либо просто пропустить ошибочные байты, либо пропустить весь фрейм. Как будут реагировать на такой фрейм клиент и сервер - будут делать перезапрос (tcp/ip)?
Вопрос касательно только gmii: из стандарта как я понял есть два типа ошибок - Propagating an error within a frame и Propagating an error within carrier extension.
Для первого случая вроде бы это ошибка в данных, но там есть предложение "When TX_ER is asserted for one or more TX_CLK periods while TX_EN is also asserted, the PHY shall emit one or more code-groups that are not part of the valid data or delimiter set somewhere in the frame being transmitted.", которая наводит на мысль, что это вовсе не ошибка, а просто байты, которые не относятся к данным. Так что же это?
Для второго случая вобще не понятно, что это за "carrier extension" и что за ошибка там может быть... Есть подозрение, что это какая то информация о свойствах соединения. Тогда в этом случае нету ли того же самого в xgmii?