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

50 минут назад, fguy сказал:

Для уникаста арп то же не обязателен - вы заранее узнаете мас назначения и пишите его в ядро.

И как вы себе этот ужас представляете? Перешивать железку всякий раз, когда ее надо подключить к другому компу?

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


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

Ввести с клавиатуры, ввести через сериал консоль, передать конфиг флешкой и т.д.

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


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

3 hours ago, Aleksey25 said:

У Аlex Forencich хорошая библиотека для Гигабитных сетей, в моем распоряжении PHY только на 100MBit. Но рассмотреть Аlex Forencich как пример стоит, согласен.

На уровне стека выше PHY все одно что 1G что 100M.   

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


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

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

И как вы себе этот ужас представляете? Перешивать железку всякий раз, когда ее надо подключить к другому компу?

А IP другого компа вы как собираетесь ему давать - вот тем же путем и МАС. Если девайс на цинке, то передать параметры канала выдачи с плис можно через проц или зашивать конфиг с настройками в загрузочную флэшку. Если это обычная плис без встроенного проца, то ядро для упаковки пакетов подключаю к микроблэйзу для конфигурации, а так же для отправки пакетов с проца, а канал приема пакетов с ядра эзернет через фифоху в микроблэйз и свой микростэк (лвипу нужно будет 256 кбайт озу - а свой и в 64 кб помещается) с арп, пинг и удипи для управления девайсом. Если проц совсем не нужен, то все адреса можно положить в брам и его инициализировать дампом при сборке бит-файла (так же как интегрируется код микроблэйза), а ядром вычитывать из него адреса.

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


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

1 hour ago, fguy said:

А IP другого компа вы как собираетесь ему давать - вот тем же путем и МАС

Конфигурация параметров сети для HW стека (кроме стандартных DHCP, ARP)  может быть выполнена разными способами как с использованием сторонних каналов, так и чисто по сети,  например магическим пакетом с удалённого PC на жёстко заданный адрес. И для этого совсем необязательно имеет MB в железке.

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


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

1 минуту назад, RobFPGA сказал:

Кофигурация параметрвов сети для HW стека (кроме стандартных DHCP, ARP)  может быть выполнена разными способами как с использованием стронних каналов, так и чисто по сети,  например магическим пакетом с удаленного PC на жестко заданный адресс.

То же вариант. Как то нужно было по быстрому конфигурить на плис адрес передачи - дык сделали это через пинг - ядро отправляло пакеты на адрес источника в пришедшем пакете пинга.

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


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

6 hours ago, Arlleex said:

ICMP не обязательно.

До тех пор, пока железка не будет интегрироваться в чужую сетку с 100500 разных устройств и несколькими слоями маршрутизаторов.

В случае чего, как связь с железкой проверять будете?

У меня вот один раз очень интересный случай был.

Железка это камера со встроенным маршрутизатором на ПЛИС.

Связь с железкой по своему протоколу есть.

Пинги на железку и комп подключенный к общей сети через железку проходят, а интернета на компе нет.

Что в результате оказалось - битый кабель.

На коротких пакетах всё ОК, на длинных пакетах данные бились так, что выставлялся RX_ERR на выходе PHY.

Выяснил экспериментально меняя длину ICMP запроса.

Поменял кабель и всё заработало.

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


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

9 минут назад, BSACPLD сказал:

До тех пор, пока железка не будет интегрироваться в чужую сетку с 100500 разных устройств и несколькими слоями маршрутизаторов.

В случае чего, как связь с железкой проверять будете?

Я потому и написал про простейшую связь в виде точка-точка, а-ля комп-железка.

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


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

3 часа назад, BSACPLD сказал:

До тех пор, пока железка не будет интегрироваться в чужую сетку с 100500 разных устройств и несколькими слоями маршрутизаторов.

Проход пакетов от одного девайса до другого по такой сетке обеспечивает админ, а не навороченность (в плане поддержки кучи протоколов) ядра в плис. Мне реализации обычного udp c возможностью выставить нужные МАС, IP адрес и порт всегда хватало что бы пакеты дошли хоть по радиомостам, хоть по много-км территории предприятия с хз какой структурой сети.

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


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

4 hours ago, fguy said:

Проход пакетов от одного девайса до другого по такой сетке обеспечивает админ, а не навороченность (в плане поддержки кучи протоколов) ядра в плис. Мне реализации обычного udp c возможностью выставить нужные МАС, IP адрес и порт всегда хватало что бы пакеты дошли хоть по радиомостам, хоть по много-км территории предприятия с хз какой структурой сети.

И все админы, с которыми мне приходилось сталкиваться, использовали именно ping для проверки работы сети 🙂

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


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

10 часов назад, BSACPLD сказал:

все админы, с которыми мне приходилось сталкиваться, использовали именно ping для проверки работы сети

Открою тайну - прохождение ICMP даже по 1500 байт не гарантирует прохождения жирного потока, прохождения данных по IP и тем более TCP, "чудес" бывает много и разных.

И даже если у вас "все работает" это не значит что вся сеть работает ШТАТНО и сети это не вредит. Для своего эксперимента в "своей" изолированной сети(или VLAN) можно творить любую дичь, для чужих сетей лучше придерживаться стандартов.

 

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


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

2 hours ago, Ivanii said:

И даже если у вас "все работает" это не значит что вся сеть работает ШТАТНО и сети это не вредит. Для своего эксперимента в "своей" изолированной сети(или VLAN) можно творить любую дичь, для чужих сетей лучше придерживаться стандартов.

Так я как раз и писал выше про необходимость поддержки минимального набора протоколов, чтобы железка могла работать практически в любой сети и никому не мешать.

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


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

6 минут назад, BSACPLD сказал:

Так я как раз и писал выше про необходимость поддержки минимального набора протоколов, чтобы железка могла работать практически в любой сети и никому не мешать.

Интерфейс управления естественно должен поддерживать arp и ping для работы хотя бы с udp, а интерфейсу выдачи данных по тому же мультикаст/уникаст проку с этого нуль.

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


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

Вот неплохая реализация базового IP/UDP стека (большинство модулей проверено - работают) - https://github.com/alexforencich/verilog-ethernet

Это чуть более полноценная реализация на SystemVerilog (тоже нормально работает, проблемы только с ICMP-модулем - глючит на объёмах больше 800 байт) - https://github.com/hypernyan/eth_vlg

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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