b3 и wireshark
в позапрошлой заметке я упоминал о проблемах использования связки нашего Беркут-E1 и супер-декодера почти всех существующих протоколов Wireshark на новых версиях ms windows.
в двух словах, раньше оно как работало? по USB-интерфейсу Беркут-E1 передавал бинарные данные из ИКМ-потока в компьютер, затем специальная программа «Bercut-E1 Data Receiver» выделяла HDLC-пакеты и перенаправляла их или в файл, или в так называемый Microsoft Loopback adapter, из которого их читала и декодировала программа Ethereal. да, в то время, когда мы воплотили в жизнь идею простого, компактного и относительно недорогого анализатора протоколов, Wireshark назывался Ethereal.
для того, чтобы Wireshark Ethereal правильно идентифицировал протоколы сигнализации, мы слегка изменили библиотеку WinPcap и сам Ethereal, благо обе программы распространяются и в исходном коде. в общем, в течение нескольких лет всё работало и не вызывало проблем у пользователей.
но прогресс на месте не стоит и настал момент, что когда-то работающий механизм перестал функционировать. небольшие отличия версий Windows, WinPcap, Wireshark напомнили нам о себе.
пользователи стали, мягко говоря, жаловаться. а мы, в свою очередь, стали искать способ исправить ситуацию с минимумом затрат. первый пришедший на ум вариант был «наложить patch» на последние версии Wireshark и WinPcap, но оказалось, что за столько лет эти программы сильно изменились и их модификация потребует значительных усилий. а мы, как правильные разработчики, довольно-таки ленивы, чтобы так напрягаться для решения простых задач.
и сегодня вечером мы нашли простое решение проблемы.
итак, что выяснилось? всё не так сложно и самое главное, теперь не требуется никаких изменений в коде, и пересборка пакетов тоже не нужна.
можно использовать готовые инструменты, которые есть в комплекте замечательной программы Wireshark. это — язык Lua, на котором нужно составить короткий скрипт, после чего декодирование пакетов будет выполняться так, как нам нужно.
сам скрипт вместе с инструкциями мы выложим на сайт завтра.
за идею нужно поблагодарить Ивана Шевчука, нашего подающего большие надежды разработчика, а за реализацию — Пашу Курочкина.
ps. кстати, и тут снова пригодился интересный тезис из ТРИЗ об идеальном приборе, которого нет, а функция выполняется!