dmitrykhom 0 20 августа, 2022 Опубликовано 20 августа, 2022 (изменено) · Жалоба Всем добрый день, хорошего настроения. Мне поставлена задача - сделать связку PRP на скорости 1 Гбит. Т.е. микропроцессор с MAC или чем-то еще (например, USB или SPI), потом - что-то, что дает разветвление на 2 порта, и на конце - два порта Ethernet 1000BASE-T или SGMII/SerDes. Рассматриваю такие варианты. 1. Ставлю процессор или контроллер с 2мя MAC (подскажите, кто знает, есть ли таковые вообще?!), в нем строю сетевые фильтры, рядом ставлю уже сам процессор, данные передаю ему по SPI или USB2.0. 2. Ищу свитч с возможностью разрезать передачу данных между двумя внешними портами. Далее - RGMII и центральный процессор... но таких свитчей не встречал. 3. Рассмотрю Ваше предложение. Спасибо за Ваше внимание. (Если кто не знает. PRP - это два порта Ethernet с одним MAC-адресом, сделанные для использования в двух независимых сетках (полное горячее сетевое резервирование).) Изменено 20 августа, 2022 пользователем dmitrykhom Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sorok-odin 5 21 августа, 2022 Опубликовано 21 августа, 2022 · Жалоба В 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, если нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба для настоящей реализации PRP вы должны иметь два отдельных физических порта у своего процессора, и реализовывать один MAC на обоих портах программно. свич внутрь пихать и делать вид что "это у нас такой вот PRP" - клоунада Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitrykhom 0 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба В 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. Другое дело, что сейчас ни один свитч такого делать не умеет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 75 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба https://github.com/q3k/chubby75 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sorok-odin 5 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба 5 часов назад, dmitrykhom сказал: Я так понимаю, что такой свитч не решит мне проблемы, т.к. не разделит мне сетки. VLAN - это не то, т.к. PRP это как бы часть МАС-уровня. Если я правильно понял задачу, требуется в коммутаторе запретить хождение пакетов напрямую между внешними портами 1<->2, но разрешить между 1<->проц и 2<->проц. Если так, "Port VLAN" (а не просто VLAN) делает именно это. Настраиваете порт 1, что всем пакетам из него запрещена коммутация в порт 2. Настраиваете порт 2, что всем пакетам из него запрещена коммутация в порт 1. И вуаля, все пакеты попадают только в проц. VLAN-теги к пакетам не добавляются. Чтобы понять, из какого внешнего порта в процессор пришел пакет (или в какой порт из процессора пакет надо отправить) - есть tail tag. Решение костыльное, для поддержки tail tag скорее всего придется допиливать ethernet стек. Два отдельных порта у процессора конечно правильнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitrykhom 0 25 августа, 2022 Опубликовано 25 августа, 2022 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sorok-odin 5 25 августа, 2022 Опубликовано 25 августа, 2022 · Жалоба 4 часа назад, dmitrykhom сказал: Если в сети PRP все станции будут на обоих своих портах иметь одинаковый MAC-адрес, то в KSZ9563 эти МАС-адреса же будут мигрировать из таблицы в таблицу, или нет?! Я с RPR не знаком, все абоненты в сети имеют одинаковый source MAC? Ничего себе) Если destination MAC широковещательный (нулевой бит первого байта равен "1"), то пакет из внешнего порта обязательно скоммутируется в порт на процессор, на то он и широковещательный. Если source и destination уникастовые и одинаковые, то скорее всего тоже дойдет, но тут как-то не уверен, это уже нечто странное творится. Если пакеты доходят куда следует, то и пусть себе адреса мигрируют по таблице, вы же сами жестко управляете коммутацией через tail tag. Если очень надо, то процессом обучения в коммутаторе тоже можно поуправлять Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitrykhom 0 26 августа, 2022 Опубликовано 26 августа, 2022 (изменено) · Жалоба В 25.08.2022 в 20:11, sorok-odin сказал: Я с RPR не знаком, все абоненты в сети имеют одинаковый source MAC? Ничего себе) Нет, конечно, это ж бред полный. Одно устройство - один мас. Просто 2 сетки представляют собой зеркало, и мас-адрес устройства N будет одинаковым в обеих сетках. И если мое устройство будет свитчем KSZ, то свитч этого может не понять - мас-адрес устройства N начнет мигрировать у KSZ туда-сюда, между портами. И так будет со всеми мас-адресами всех устройств в двух сетях. Эта нагрузка может гипотетически перегрузить свитч, что может аукнуться в ненужный момент. А сетка должна быть надёжной. Изменено 26 августа, 2022 пользователем dmitrykhom Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 26 августа, 2022 Опубликовано 26 августа, 2022 · Жалоба On 8/26/2022 at 11:58 PM, dmitrykhom said: Нет, конечно, это ж бред полный. Одно устройство - один мас. вы точно знакомы с горячим резервированием по схеме 1+N ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitrykhom 0 29 августа, 2022 Опубликовано 29 августа, 2022 · Жалоба В 27.08.2022 в 01:11, krux сказал: вы точно знакомы с горячим резервированием по схеме 1+N ? А в чем вопрос? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться