Перейти к содержанию
    

10BASE-T ethernet, на комп работает а через свитч - нет

Всем доброго дня. Взял корку etherneta отсюда https://opencores.org/projects/cheap_ethernet. Переделал ее на PHY MII. В качестве чипа PHY - KSZ8041NLI. PHY принудительно включен на 10мбит. И линк фактически тоже на 10 мбит. Но когда девайс к компу напрямую подключен - работает, а когда включаешь между компом и девайсом свитч - не работает, даже арп не ловит. При этом мое устройство отвечает на арп также (смотрел сигналтапом), а на компе при этом вообще не вижу что от свитча что-то приходит. Как будто он (свитч) рубит пакет, но непонятно почему.  Есть у кого идеи, в чем может быть разница?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант, обжим кабеля должен быть разный. Про это вы ничего не написали

upd. Прошу прощение, не дочитал, что у вас всего 10мбит

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Lmx2315 сказал:

А на компе как смотрели?

 

Через wireshark. До компа через свитч не доходит даже какой-нибудь битый пакет. Почему свитч может рубить пакеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, alexPec сказал:

 Почему свитч может рубить пакеты?

Может ttl=1?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

46 минут назад, HardEgor сказал:

Может ttl=1?

Так ведь в ARP нет никаких TTL. Это же в IP ? У меня даже ARP ответный рубится.  Девайс его отпраляет (как и в случае с прямым соединением, не через свитч), но от свича уже ничего нет. А напрямую - все ок - и ARP и ICMP идет, и UDP.

 

UPD: А в KSZ8041 при передаче пакета преамбулу надо отправлять (0х55) или сразу 0хD5 и далее пакет? Сейчас 7 байт 0х55 преамбула, 0хd5, а затем пакет. Может тут в чем-то проблема?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для 10BASE-T преамбула вроде обязательно нужна (в отличие от 1000BASE-T и даже 100BASE-T, в которых её тоже часто шлют, но там она не нужна, я пробовал на 1000BASE-T и с ней, и без неё, всё работало). По ней PHY синхронизацию ловит при поступающем пакете, т.к. когда данные не передаются, то ничего между PHY и не ходит (вроде так, но это не точно), в отличие от более скоростных стандартов, в которых физики постоянно осуществляют обмен, независимо от поступления данных с верхних уровней.

 

А свич-то исправный? FCS может не в порядке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 минут назад, alexPec сказал:

В физике KSZ8041 линк-пульсы тоже идут, я их осциллом вижу.

Ну, если линк поднимается, то значит с линией порядок. Ну и если напрямую, говорите, работает, то точно дело не в этом.

35 минут назад, alexPec сказал:

Сейчас преамбулу шлю, 7байт 0х55 (это 5,6мкс), затем d5, затем пакет. Вот и думаю может преамбула маленькая? Или большая? Как на это  свитчи реагируют?

Вроде стандартная преамбула. В 10BASE-T для кодирования, насколько помню, используется Manchester II, вот ему как раз и нужны эти 0х55 - середина каждого бита (фронт) - клок. 7 байт по стандарту, должно хватать. Опять же - без свича ведь работает. Свич в плане физики ничем от эндпоинта не отличается.

35 минут назад, alexPec сказал:

А что такое FCS?

Frame Checksum. Контрольная сумма изернет кадра, CRC32. Но тоже вряд ли в ней дело, если напрямую работает. Остаётся подозревать, что может качество сигнала не очень, одна физика (сетёвки компа) тянет, а другая (свич) не тянет. 

 

Ну, и кстати, тут же простые небыстрые сигналы, можно осциллографом посмотреть, что приходит на свич, и что уходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

1 час назад, alexPec сказал:

Так ведь и напрямую с компом соединение работает и с аппаратным стеком

1) Даже с выключенным wireshark? Эта программа переводит сетевую карту компьютера в неразборчивый (promiscuous) режим и принимает все пакеты, даже если если их надо было бы отбросить по каким-то причинам (например, накосячили с MAC-адресами). А свитч молча отбрасывает.

2) Следует двигаться поэтапно. Раз приемник судя по сигналтапу скорее всего рабочий, отладьте только передатчик. Сделайте в ПЛИС тупой генератор широковещательных пакетов и посмотрите, будут ли видны ваши посылки на компе в вайршарке при подключении напрямую и через свитч. Пакеты не очень большие и не очень маленькие, 100-200 байт. Только после этого двигаться дальше.

3) Дополнение нулями (padding) в ARP ответе добавляете? Скорее всего это делает сам MAC, но лучше проверить. Без него пакет имеет длину 42 байта - меньше минимально допустимых 60 - веская причина свитчу отбросить пакет.

4) Перед началом тестов желательно выполнять очистку ARP-таблицы компа (в консоли "arp -d *"), чтобы случайно в памяти не осталось значений от прошлых попыток с другой прошивкой. Запись и сама устаревает через несколько минут, это так, на всякий случай.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 все равно должен показывать все что идет от свитча. А тут вообще пусто...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

switch-то как зовут? он точно в 10Мбит ещё умеет?

а то некоторые гигабитные phy уже разучились 10, только 100/1000

а из новых 2.5Г/5Г так вроде вообще большинство уже и не умеет.

и там ещё с автоматической сменой RX/TX и полярности могут быть грабли на 10, я бы ещё это проверил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...