alexPec 3 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба Всем доброго дня. Взял корку etherneta отсюда https://opencores.org/projects/cheap_ethernet. Переделал ее на PHY MII. В качестве чипа PHY - KSZ8041NLI. PHY принудительно включен на 10мбит. И линк фактически тоже на 10 мбит. Но когда девайс к компу напрямую подключен - работает, а когда включаешь между компом и девайсом свитч - не работает, даже арп не ловит. При этом мое устройство отвечает на арп также (смотрел сигналтапом), а на компе при этом вообще не вижу что от свитча что-то приходит. Как будто он (свитч) рубит пакет, но непонятно почему. Есть у кого идеи, в чем может быть разница? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба А на компе как смотрели? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 24 октября, 2021 Опубликовано 24 октября, 2021 (изменено) · Жалоба Как вариант, обжим кабеля должен быть разный. Про это вы ничего не написали upd. Прошу прощение, не дочитал, что у вас всего 10мбит Изменено 24 октября, 2021 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 2 часа назад, Lmx2315 сказал: А на компе как смотрели? Через wireshark. До компа через свитч не доходит даже какой-нибудь битый пакет. Почему свитч может рубить пакеты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 63 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 5 минут назад, alexPec сказал: Почему свитч может рубить пакеты? Может ttl=1? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 46 минут назад, HardEgor сказал: Может ttl=1? Так ведь в ARP нет никаких TTL. Это же в IP ? У меня даже ARP ответный рубится. Девайс его отпраляет (как и в случае с прямым соединением, не через свитч), но от свича уже ничего нет. А напрямую - все ок - и ARP и ICMP идет, и UDP. UPD: А в KSZ8041 при передаче пакета преамбулу надо отправлять (0х55) или сразу 0хD5 и далее пакет? Сейчас 7 байт 0х55 преамбула, 0хd5, а затем пакет. Может тут в чем-то проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба Для 10BASE-T преамбула вроде обязательно нужна (в отличие от 1000BASE-T и даже 100BASE-T, в которых её тоже часто шлют, но там она не нужна, я пробовал на 1000BASE-T и с ней, и без неё, всё работало). По ней PHY синхронизацию ловит при поступающем пакете, т.к. когда данные не передаются, то ничего между PHY и не ходит (вроде так, но это не точно), в отличие от более скоростных стандартов, в которых физики постоянно осуществляют обмен, независимо от поступления данных с верхних уровней. А свич-то исправный? FCS может не в порядке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 19 минут назад, dxp сказал: Для 10BASE-T преамбула вроде обязательно нужна (в отличие от 1000BASE-T и даже 100BASE-T, в которых её тоже часто шлют, но там она не нужна, я пробовал на 1000BASE-T и с ней, и без неё, всё работало). По ней PHY синхронизацию ловит при поступающем пакете, т.к. когда данные не передаются, то ничего между PHY и не ходит (вроде так, но это не точно), в отличие от более скоростных стандартов, в которых физики постоянно осуществляют обмен, независимо от поступления данных с верхних уровней. А свич-то исправный? FCS может не в порядке? Нет, ну линк-то как то детектит же. Там в оригинале были link puls периодические. В физике KSZ8041 линк-пульсы тоже идут, я их осциллом вижу. Сейчас преамбулу шлю, 7байт 0х55 (это 5,6мкс), затем d5, затем пакет. Вот и думаю может преамбула маленькая? Или большая? Как на это свитчи реагируют? Свитч точно рабочий. Тот же девайс включаю с другой прошивкой (там МАС- аппаратный, от ниоса, а стек arp, ip, icmp, udp - все программно) - все работает, на той же плате, на той же физике, на той же скорости 10мбит. Так ведь и напрямую с компом соединение работает и с аппаратным стеком. Вот и не пойму в чем разница. Ради эксперимента подключил к другому компу - тоже пинг идет. И только через свитч глухо. Auto negotiation физика на себя берет, там тоже все вроде нормально. А что такое FCS? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 35 минут назад, alexPec сказал: В физике KSZ8041 линк-пульсы тоже идут, я их осциллом вижу. Ну, если линк поднимается, то значит с линией порядок. Ну и если напрямую, говорите, работает, то точно дело не в этом. 35 минут назад, alexPec сказал: Сейчас преамбулу шлю, 7байт 0х55 (это 5,6мкс), затем d5, затем пакет. Вот и думаю может преамбула маленькая? Или большая? Как на это свитчи реагируют? Вроде стандартная преамбула. В 10BASE-T для кодирования, насколько помню, используется Manchester II, вот ему как раз и нужны эти 0х55 - середина каждого бита (фронт) - клок. 7 байт по стандарту, должно хватать. Опять же - без свича ведь работает. Свич в плане физики ничем от эндпоинта не отличается. 35 минут назад, alexPec сказал: А что такое FCS? Frame Checksum. Контрольная сумма изернет кадра, CRC32. Но тоже вряд ли в ней дело, если напрямую работает. Остаётся подозревать, что может качество сигнала не очень, одна физика (сетёвки компа) тянет, а другая (свич) не тянет. Ну, и кстати, тут же простые небыстрые сигналы, можно осциллографом посмотреть, что приходит на свич, и что уходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sorok-odin 5 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 1 час назад, alexPec сказал: Так ведь и напрямую с компом соединение работает и с аппаратным стеком 1) Даже с выключенным wireshark? Эта программа переводит сетевую карту компьютера в неразборчивый (promiscuous) режим и принимает все пакеты, даже если если их надо было бы отбросить по каким-то причинам (например, накосячили с MAC-адресами). А свитч молча отбрасывает. 2) Следует двигаться поэтапно. Раз приемник судя по сигналтапу скорее всего рабочий, отладьте только передатчик. Сделайте в ПЛИС тупой генератор широковещательных пакетов и посмотрите, будут ли видны ваши посылки на компе в вайршарке при подключении напрямую и через свитч. Пакеты не очень большие и не очень маленькие, 100-200 байт. Только после этого двигаться дальше. 3) Дополнение нулями (padding) в ARP ответе добавляете? Скорее всего это делает сам MAC, но лучше проверить. Без него пакет имеет длину 42 байта - меньше минимально допустимых 60 - веская причина свитчу отбросить пакет. 4) Перед началом тестов желательно выполнять очистку ARP-таблицы компа (в консоли "arp -d *"), чтобы случайно в памяти не осталось значений от прошлых попыток с другой прошивкой. Запись и сама устаревает через несколько минут, это так, на всякий случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба 1 час назад, dxp сказал: Frame Checksum. Контрольная сумма изернет кадра, CRC32. Но тоже вряд ли в ней дело, если напрямую работает. Остаётся подозревать, что может качество сигнала не очень, одна физика (сетёвки компа) тянет, а другая (свич) не тянет. В wireshark говорит, что все CS верные. Физика на девайсе отличная, она с чем только не работала. Собственно как и свитч - я его тоже куда только не включал. Цитата 1) Даже с выключенным wireshark? Эта программа переводит сетевую карту компьютера в неразборчивый (promiscuous) режим и принимает все пакеты, даже если если их надо было бы отбросить по каким-то причинам (например, накосячили с MAC-адресами). А свитч молча отбрасывает. 2) Следует двигаться поэтапно. Раз приемник судя по сигналтапу скорее всего рабочий, отладьте только передатчик. Сделайте в ПЛИС тупой генератор широковещательных пакетов и посмотрите, будут ли видны ваши посылки на компе в вайршарке при подключении напрямую и через свитч. Пакеты не очень большие и не очень маленькие, 100-200 байт. Только после этого двигаться дальше. 3) Дополнение нулями (padding) в ARP ответе добавляете? Скорее всего это делает сам MAC, но лучше проверить. Без него пакет имеет длину 42 байта - меньше минимально допустимых 60 - веская причина свитчу отбросить пакет. 4) Перед началом тестов желательно выполнять очистку ARP-таблицы компа (в консоли "arp -d *"), чтобы случайно в памяти не осталось значений от прошлых попыток с другой прошивкой. Запись и сама устаревает через несколько минут, это так, на всякий случай. 1. Да, от wireshark работоспособность не зависит. 3. Да, padding использует комп, а девайс все это зеркалит обратно. Это видно при соединении напрямую. 4. Ну wireshark все равно должен показывать все что идет от свитча. А тут вообще пусто... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба switch-то как зовут? он точно в 10Мбит ещё умеет? а то некоторые гигабитные phy уже разучились 10, только 100/1000 а из новых 2.5Г/5Г так вроде вообще большинство уже и не умеет. и там ещё с автоматической сменой RX/TX и полярности могут быть грабли на 10, я бы ещё это проверил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться