Arlleex 281 March 9 Posted March 9 · Report post 2 часа назад, dxp сказал: Тогда после енумерции пусть ARP таблицу обновляет, и всё. Короче: Вы предлагаете заполнить статически ARP-таблицу после энумерации, так? А Вы уверены, что линух (хотя бы он, т.к. винда - по остаточному принципу у меня) даже в этом случае не начнет слать бродкаст время от времени, пусть и с сильно заторможенной периодичностью? Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 65 March 9 Posted March 9 · Report post 1 hour ago, mantech said: Сделайте свой сегмент эзернета ТОЛЬКО для промавтоматики и все станет норм, проверено неоднократно. Ага, они тут 10 лет до этого вызревали, пока очередная сотня камер не затормозила сильно сеть, а потом вирус не добил её. Я прекрасно понимаю что и как делать, но проблема в том, что вышестоящее руководство не понимает, почему 200 камер нормально передают картинку, а десяток ПЛК на линиях плохо работают. Все эти разделения требуют денег на кабель, на его прокладку, требуют покупки сетевого оборудования, а это не 100 рублей стОит. Увы и ах, но такое раздолбайство встречается намного чаще, чем хотелось бы. Я раньше удивлялся, а сейчас привык, ибо часто вижу. 1 hour ago, Arlleex said: А Ваш пример с CAN-ом абсолютно неудачный, т.к. подключите вирусный девайс и шлите CAN ID == 0 Так ведь CAN в ПЛК, в которые ничего не воткнёшь, и стоят они в шкафах, а компы- вот они, на столах у персонала, суй в них кто-чё хочет, например, флэшку с заразой. Quote Share this post Link to post Share on other sites More sharing options...
dxp 112 March 9 Posted March 9 · Report post 5 минут назад, Arlleex сказал: А Вы уверены, что линух (хотя бы он, т.к. винда - по остаточному принципу у меня) даже в этом случает не начнет слать бродкаст время от времени, пусть и с сильно заторможенной периодичностью? Не должен. Статические записи имеют приоритет. И стеку нет необходимости спрашивать то, что он и так знает. Вы можете это легко проверить -- внесите статическую запись в ARP таблицу и посмотрите шарком, будет слать или нет. По умолчанию оно постоянно переспрашивает ARP запросами, если пауза превышает какое-то время (весьма короткое -- в районе минуты). Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 281 March 9 Posted March 9 · Report post 4 минуты назад, tonyk_av сказал: Так ведь CAN в ПЛК, в которые ничего не воткнёшь, и стоят они в шкафах, а компы- вот они, на столах у персонала, суй в них кто-чё хочет, например, флэшку с заразой. То то же. У меня тоже сеть закрытая, отдельная, никуда во вне не подключенная, изолированная. 1 минуту назад, dxp сказал: Не должен. Статические записи имеют приоритет. И стеку нет необходимости спрашивать то, что он и так знает. Вы можете это легко проверить -- внесите статическую запись в ARP таблицу и посмотрите шарком, будет слать или нет. По умолчанию оно постоянно переспрашивает ARP запросами, если пауза превышает какое-то время (весьма короткое -- в районе минуты). Понял. Ну, попробую коллегам своим намекнуть, потестируем. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 65 March 9 Posted March 9 · Report post 1 hour ago, Arlleex said: эзернет вполне себе достаточен для вполне надежной сети Надёжен для чего? Данные передаёт надёжно, но задержку не гарантирует. Для вас вон, даже задержка на обработку служебных пакетов оказывается критичной, а вы всю концепцию проекта на нём построили, что странно. Quote Share this post Link to post Share on other sites More sharing options...
jcxz 307 March 9 Posted March 9 · Report post 15 минут назад, Arlleex сказал: Практика показала, что LwIP не успевает. А писать свое в данном случае будет весьма накладно. Конечно своё. Прям в ISR. Не обязяательно ISR от Ethernet-RX. Можно в менее приоритетном, чтобы сразу для группы ARP-кадров. Для минимизации затрат тактов CPU. Quote Share this post Link to post Share on other sites More sharing options...
mantech 99 March 9 Posted March 9 · Report post 13 минут назад, tonyk_av сказал: Я прекрасно понимаю что и как делать, но проблема в том, что вышестоящее руководство не понимает Вот поэтому и надо писать все эти моменты в техдокументации, чтоб если потом какие претензии, сразу ткнуть туда носом это " вышестоящее руководство"... Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 281 March 9 Posted March 9 · Report post 2 часа назад, tonyk_av сказал: Надёжен для чего? Данные передаёт надёжно, но задержку не гарантирует. Задержка - по нашим тестам эта задержка передачи коммутатора, она ничтожно мала для наших требований. 2 часа назад, jcxz сказал: Конечно своё. Прям в ISR. Не обязяательно ISR от Ethernet-RX. Можно в менее приоритетном, чтобы сразу для группы ARP-кадров. Для минимизации затрат тактов CPU. Да было бы просто здорово, если в той же STM-ке был фильтр по заголовку ARP, который не пропускал кадр на уровень выше, если IP-шник в целевом поле не совпадал. 2 часа назад, tonyk_av сказал: Для вас вон, даже задержка на обработку служебных пакетов оказывается критичной, а вы всю концепцию проекта на нём построили, что странно. Не задержка на обработку для нас критична, а потенциальные "бродкаст-штормы" из следующих друг за другом ARP-ов. Это разные вещи. Quote Share this post Link to post Share on other sites More sharing options...
mantech 99 March 9 Posted March 9 · Report post 28 минут назад, Arlleex сказал: Практика показала, что LwIP не успевает. Значит выкинуть эту требовательную к дин. памяти и пр. вещам каку, пока сам не сделал так года 4 назад, все мучался с этим делом... 6 минут назад, Arlleex сказал: а потенциальные "бродкаст-штормы" из следующих друг за другом ARP-ов. А на приеме кадра программно фильтровать бродкаст не вариант, еще до всех стеков? Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 281 March 9 Posted March 9 · Report post 1 минуту назад, mantech сказал: Значит выкинуть эту требовательную к дин. памяти и пр. вещам каку, пока сам не сделал так года 4 назад, все мучался с этим делом... Не, я дожму ее, а если потом надо будет еще что-то добавить сложнее UDP, тогда подумаю. А сейчас необходимость "не настоялась". Quote Share this post Link to post Share on other sites More sharing options...
mantech 99 March 9 Posted March 9 · Report post 35 минут назад, Arlleex сказал: Вагоны могут прицепляться/отцепляться, разворачиваться, перестыковываться и т.д. У вагона есть ведь серийный номер, он уникальный? Самое простое - заложить его в мак-адрес, и мак выдумывать не надо и он идеально идентифицирует вагон... Quote Share this post Link to post Share on other sites More sharing options...
jcxz 307 March 9 Posted March 9 · Report post 9 минут назад, mantech сказал: А на приеме кадра программно фильтровать бродкаст не вариант, еще до всех стеков? Я именно это и предложил выше. Направить фильтром MAC широковещательные кадры в отдельную очередь. Которую обрабатывать при накоплении там не менее N кадров (или по таймауту) прям внутри ISR. Все необработанные широковещательные (не ARP-кадры) - пускать на вышележащие уровни. Не знаю - можно ли в STM сделать две очереди принимаемых кадров (для двух масок фильтров)? Если можно - должно работать. В крайнем случае - одна большая приёмная очередь кадров. Которую также периодически пробегать в низкоприоритетном ISR. И только после - не обработанные этим ISR входящие кадры - отправлять уровню выше (LwIP). Quote Share this post Link to post Share on other sites More sharing options...
mantech 99 March 9 Posted March 9 (edited) · Report post 4 минуты назад, jcxz сказал: В крайнем случае - одна большая приёмная очередь кадров. ТС писал, что у него памяти мало... Хотя при этом же использовать lwip - такое себе... Я б при этом uip выбрал, и памяти почти не жрет и тормозов почти нет... Edited March 9 by mantech Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 281 March 9 Posted March 9 · Report post 25 минут назад, mantech сказал: У вагона есть ведь серийный номер, он уникальный? Самое простое - заложить его в мак-адрес, и мак выдумывать не надо и он идеально идентифицирует вагон... Все сильно сложнее, чем может показаться, поэтому не вижу смысла тут особо эту тему мусолить, просто если было бы "слишком просто", мы бы так и сделали)) Блоки ничего о серийных номерах вагонов не знают, более того, при всяких обслуживаниях/ремонтах и т.д. могут кочевать вплоть до другого поезда. 34 минуты назад, mantech сказал: А на приеме кадра программно фильтровать бродкаст не вариант, еще до всех стеков? Да можно, наверное. Но пока что не хотелось сильно точить напильник. 23 минуты назад, mantech сказал: Я б при этом uip выбрал, и памяти почти не жрет и тормозов почти нет... Так он же древний как мамонт)) А мы только ноу-хау одобряем😅 28 минут назад, jcxz сказал: Я именно это и предложил выше. Направить фильтром MAC широковещательные кадры в отдельную очередь. ... В крайнем случае - одна большая приёмная очередь кадров. Которую также периодически пробегать в низкоприоритетном ISR. Да тоже как вариант. Возможно, так и нужно будет сделать. Просто сначала я хотел попробовать покопаться с другой стороны - со стороны хоста. Quote Share this post Link to post Share on other sites More sharing options...
mantech 99 March 10 Posted March 10 · Report post 14 часов назад, Arlleex сказал: Так он же древний как мамонт)) Так TCP-IP еще древнее))))))) 14 часов назад, Arlleex сказал: А мы только ноу-хау одобряем Ноу-хау хороши тогда, когда приносят пользу, ускоряют процесс и пр, а иначе это хау-ноу)))))))) Quote Share this post Link to post Share on other sites More sharing options...