DAC, AEC или оптика — какие ваши доказательства, господин трансивер?
Привет, Хабр! Меня зовут Андрей, я старший инженер по разработке ПО в YADRO. В прошлом квартале для коммутаторов KORNFELD мы разрабатывали функциональность Auto-Negotiation (автосогласование скорости, режима и других параметров передачи данных) и FEC (коррекцию битовых ошибок) из стандарта IEEE 802.3. Нам нужно было в реальном времени при горячей замене трансиверов определить их тип и тип среды передачи данных. Задача как будто простая: почему бы не заглянуть в EEPROM? Но есть нюансы.
С трансиверами от YADRO все просто: на них наш логотип и серийник, они совместимые, проходят многомесячную валидацию, поэтому в их EEPROM все четко. Вот только в реальной жизни клиент не всегда использует такие устройства — и что будет указано в их EEPROM, зависит от добросовестности и фантазии производителя.
Через нас прошло множество вариантов трансиверов, и мы научились быстро добывать из них нужную нам информацию (те еще сыщики!). В статье покажу способ, как определить тип трансивера и тип среды передачи данных при помощи одной теории и как получить воспроизводимый результат на Python. Материал будет полезен инженерам и программистам, которым нужно принимать решения на основе неполных и противоречивых входных данных. Приступим!
Читать далее