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

Решение для 2-портового Ethernet 1Gb

Всем добрый день, хорошего настроения.

Мне поставлена задача - сделать связку PRP на скорости 1 Гбит. Т.е. микропроцессор с MAC или чем-то еще (например, USB или SPI), потом - что-то, что дает разветвление на 2 порта, и на конце - два порта Ethernet 1000BASE-T или SGMII/SerDes.

Рассматриваю такие варианты.

1. Ставлю процессор или контроллер с 2мя MAC (подскажите, кто знает, есть ли таковые вообще?!), в нем строю сетевые фильтры, рядом ставлю уже сам процессор, данные передаю ему по SPI или USB2.0.

2. Ищу свитч с возможностью разрезать передачу данных между двумя внешними портами. Далее - RGMII и центральный процессор...  но таких свитчей не встречал.

3. Рассмотрю Ваше предложение.

Спасибо за Ваше внимание.

(Если кто не знает. PRP - это два порта Ethernet с одним MAC-адресом, сделанные для использования в двух независимых сетках (полное горячее сетевое резервирование).)

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

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


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

В 20.08.2022 в 19:21, dmitrykhom сказал:

1. Ставлю процессор или контроллер с 2мя MAC (подскажите, кто знает, есть ли таковые вообще?!)

Есть, беглый поиск показывает кучу, хоть AM335x от TI, хоть 1888ВС048 от НТЦ Модуль.

В 20.08.2022 в 19:21, dmitrykhom сказал:

2. Ищу свитч с возможностью разрезать передачу данных между двумя внешними портами. Далее - RGMII и центральный процессор...  но таких свитчей не встречал.

Любой управляемый коммутатор с VLAN, например первый попавшийся KSZ9563 от Microchip умеет Port VLAN и до кучи tail tag, если нужно.

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


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

для настоящей реализации PRP вы должны иметь два отдельных физических порта у своего процессора, и реализовывать один MAC на обоих портах программно.

свич внутрь пихать и делать вид что "это у нас такой вот PRP" - клоунада

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


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

В 21.08.2022 в 22:34, sorok-odin сказал:

Есть, беглый поиск показывает кучу, хоть AM335x от TI, хоть 1888ВС048 от НТЦ Модуль.

Спасибо! К тому же, линейка AM335x неплохо доступна. Пожалуй, самое оптимальное.

А 1888ВС048 - это вообще для меня открытие. Конечно, догадываюсь, что это Тайвань, но всё равно.

Из того, что я нашел - это линейка TMS320 (но цены за 10000 р.!) и XMOS XE232-512 (но только под заказ).

В 21.08.2022 в 22:34, sorok-odin сказал:

Любой управляемый коммутатор с VLAN, например первый попавшийся KSZ9563 от Microchip умеет Port VLAN и до кучи tail tag, если нужно.

Я так понимаю, что такой свитч не решит мне проблемы, т.к. не разделит мне сетки. VLAN - это не то, т.к. PRP это как бы часть МАС-уровня.

В 22.08.2022 в 10:58, krux сказал:

для настоящей реализации PRP вы должны иметь два отдельных физических порта у своего процессора, и реализовывать один MAC на обоих портах программно.

Так у меня сейчас и сделано, только на 100 МБит/с. 

В 22.08.2022 в 10:58, krux сказал:

свич внутрь пихать и делать вид что "это у нас такой вот PRP" - клоунада

Ну почему же?! Идея организации PRP на свитче верная, т.к. это устройство разветвления MAC, что соответствует понятию RedBox в PRP. Другое дело, что сейчас ни один свитч такого делать не умеет.

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


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

5 часов назад, dmitrykhom сказал:

Я так понимаю, что такой свитч не решит мне проблемы, т.к. не разделит мне сетки. VLAN - это не то, т.к. PRP это как бы часть МАС-уровня.

Если я правильно понял задачу, требуется в коммутаторе запретить хождение пакетов напрямую между внешними портами 1<->2, но разрешить между 1<->проц и 2<->проц. Если так, "Port VLAN" (а не просто VLAN) делает именно это.

Настраиваете порт 1, что всем пакетам из него запрещена коммутация в порт 2. Настраиваете порт 2, что всем пакетам из него запрещена коммутация в порт 1. И вуаля, все пакеты попадают только в проц. VLAN-теги к пакетам не добавляются. Чтобы понять, из какого внешнего порта  в процессор пришел пакет (или в какой порт из процессора пакет надо отправить) - есть tail tag.

Решение костыльное, для поддержки tail tag скорее всего придется допиливать ethernet стек. Два отдельных порта у процессора конечно правильнее. 

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


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

20 часов назад, sorok-odin сказал:

Если я правильно понял задачу, требуется в коммутаторе запретить хождение пакетов напрямую между внешними портами 1<->2, но разрешить между 1<->проц и 2<->проц. Если так, "Port VLAN" (а не просто VLAN) делает именно это.

Настраиваете порт 1, что всем пакетам из него запрещена коммутация в порт 2. Настраиваете порт 2, что всем пакетам из него запрещена коммутация в порт 1. И вуаля, все пакеты попадают только в проц. VLAN-теги к пакетам не добавляются. Чтобы понять, из какого внешнего порта  в процессор пришел пакет (или в какой порт из процессора пакет надо отправить) - есть tail tag.

ЗдОрово! Просмотрел даташит - мне с tail tagging и VLAN enable все понятно.

А как же миграция МАС-адреса? Если в сети PRP все станции будут на обоих своих портах иметь одинаковый MAC-адрес, то в KSZ9563 эти МАС-адреса же будут мигрировать из таблицы в таблицу, или нет?! Я ничего в даташите по этому не нашел. Мне нужно, чтобы MAC-адрес не мигрировал из одной таблицы порта в другую, а именно чтобы эти таблицы были независимы.

Я правильно понимаю, что в регистре 0x0311 бит 7 "Unicast Learning Disable" я должен включить?

20 часов назад, sorok-odin сказал:

Решение костыльное, для поддержки tail tag скорее всего придется допиливать ethernet стек. Два отдельных порта у процессора конечно правильнее. 

Очень даже хорошее решение, разве что придется получать два пакета последовательно. Я стэк ethernet допилю за милую душу. Просто я в принципе не верил в такое решение, т.к. не знал ничего про tail tagging.

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


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

4 часа назад, dmitrykhom сказал:

Если в сети PRP все станции будут на обоих своих портах иметь одинаковый MAC-адрес, то в KSZ9563 эти МАС-адреса же будут мигрировать из таблицы в таблицу, или нет?!

Я с RPR не знаком, все абоненты в сети имеют одинаковый source MAC? Ничего себе) Если destination MAC широковещательный (нулевой бит первого байта равен "1"), то пакет из внешнего порта обязательно скоммутируется в порт на процессор, на то он и широковещательный. Если source и destination уникастовые и одинаковые, то скорее всего тоже дойдет, но тут как-то не уверен, это уже нечто странное творится.

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

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


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

В 25.08.2022 в 20:11, sorok-odin сказал:

Я с RPR не знаком, все абоненты в сети имеют одинаковый source MAC? Ничего себе) 

Нет, конечно, это ж бред полный. Одно устройство - один мас. Просто 2 сетки представляют собой зеркало, и мас-адрес устройства N будет одинаковым в обеих сетках. И если мое устройство будет свитчем KSZ, то свитч этого может не понять - мас-адрес устройства N начнет мигрировать у KSZ туда-сюда, между портами. И так будет со всеми мас-адресами всех устройств в двух сетях. Эта нагрузка может гипотетически перегрузить свитч, что может аукнуться в ненужный момент. А сетка должна быть надёжной.

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

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


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

On 8/26/2022 at 11:58 PM, dmitrykhom said:

Нет, конечно, это ж бред полный. Одно устройство - один мас.

вы точно знакомы с горячим резервированием по схеме 1+N ?

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


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

В 27.08.2022 в 01:11, krux сказал:

вы точно знакомы с горячим резервированием по схеме 1+N ?

А в чем вопрос?

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


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

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

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

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

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

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

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

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

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

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