Summary: | добавить имя ether в список опознаваемых как TYPE eth | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> |
Component: | etcnet | Assignee: | Mikhail Efremov <sem> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P3 | CC: | ldv, mike, rider, sem, shaba, vseleznv |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Sergey Y. Afonin
2019-08-31 12:13:41 MSK
кавычки забыл: [ "$CAND" = "ether" ] Или, может, правильнее несколько симлинков просто добавить: create-ether -> create-eth destroy-ether -> destroy-eth setup-ether -> setup-eth shutdown-ether -> shutdown-eth Похоже вариант с тремя строчками в functions проще. Нет возражений по поводу такой доработки? (In reply to Sergey Y. Afonin from comment #3) > Похоже вариант с тремя строчками в functions проще. Нет возражений по поводу > такой доработки? https://lists.altlinux.org/pipermail/devel/2020-April/210614.html Как там с обновлением? Не совсем понятно - зачем. TYPE же всегда можно указать. (In reply to Anton Farygin from comment #5) > Не совсем понятно - зачем. > TYPE же всегда можно указать. Для удобства. TYPE вообще же для всего можно написать, но есть автоопределение. :-) Мне не очевидно почему имя ether должно быть обработано особым образом. Как я вижу оно не является умолчанием даже в udev-rule-generator сейчас. Имена интерфейсов могут быть произвольные, мы же не будем добавлять все варианты имен, которые кто-то у себя может использовать? Скорее уж логичнее добавлять поддержку для стандартной схемы именования, которая используется в udev сейчас (вида enp0s1). Но я и этого не хочу делать, текущая функция проста и понятна, а усложнение ее будет выглядеть уже как набор костылей, достаточно посмотреть на предложенный патч. Я думаю, что стоит вообще перестать полагаться на это автоопределение типа и всегда указывать тип явно в конфиге. Лучше тогда уж логику переписать на sysfs или udev. Там уже есть определение типа интерфейса. /sys/class/net/<name>/type = 1 это eth да, тоже вариант. Хотя надо посмотреть, возможно для других типов интерфейсов тип определяется до того, как интерфейсы создаются. (Ответ для Mikhail Efremov на комментарий #9) > да, тоже вариант. Хотя надо посмотреть, возможно для других типов > интерфейсов тип определяется до того, как интерфейсы создаются. Да, это определение происходит в самом начале, при чтении конфигов. Собственно, функция называется name2type() и делает именно то, что заявлено в названии. Добавлять в нее заглядывание в sysfs точно не надо. Можно сделать еще одну функцию для этого, но мне кажется это тоже лишнее. (In reply to Mikhail Efremov from comment #7) > Мне не очевидно почему имя ether должно быть обработано особым образом. Как > я вижу оно не является умолчанием даже в udev-rule-generator сейчас. Только потому, что пока от этого ломается Альтератор и etcnet интерфейсы не поднимает без type. А так всё готово. Ручка в /etc/sysconfig, можно переключить даже без обновления пакета. > Имена интерфейсов могут быть произвольные, мы же не будем добавлять все варианты Да, но какое-то должно же быть по умолчанию, и это не eth, так как eth сломали в udev. Я бы с удовольствием ничего не менял, если бы у кого-то ручки шаловливые до udev не дотянулись. (In reply to Mikhail Efremov from comment #7) > Я думаю, что стоит вообще перестать полагаться на это автоопределение типа и > всегда указывать тип явно в конфиге. Хотя, в общем-то, тоже вариант, но будет ли удобно и не будет ли каких-то проблем с забывчивостью. Пока-то параметр необязательный. (Ответ для Sergey Y. Afonin на комментарий #11) > Только потому, что пока от этого ломается Альтератор и etcnet интерфейсы не > поднимает без type. Alterator-net-eth всегда прописывал TYPE явно. > Да, но какое-то должно же быть по умолчанию, и это не eth, так как eth > сломали в udev. Я бы с удовольствием ничего не менял, если бы у кого-то > ручки шаловливые до udev не дотянулись. Это умолчание тогда уж имена вида enp0s1, как я писал выше. > Хотя, в общем-то, тоже вариант, но будет ли удобно и не будет ли каких-то > проблем с забывчивостью. Пока-то параметр необязательный. TYPE всегда обязательный, просто etcnet может попытаться угадать его по имени. Разумеется, всегда надежнее указать явно. (In reply to Mikhail Efremov from comment #13) > Это умолчание тогда уж имена вида enp0s1, как я писал выше. За такие имена вообще руки надо отрывать. Однообразия нет, постоянности нет. Чего добились - не ясно. (In reply to Mikhail Efremov from comment #13) > > Только потому, что пока от этого ломается Альтератор и etcnet интерфейсы не > > поднимает без type. > > Alterator-net-eth всегда прописывал TYPE явно. Хотя про Alterator, возможно, я поторопился. Было такое сообщение: https://lists.altlinux.org/pipermail/devel/2019-August/208342.html Я решил, что что-то сломалось, но может быть я был не прав. Уточню. (Ответ для Mikhail Efremov на комментарий #10) > (Ответ для Mikhail Efremov на комментарий #9) > > да, тоже вариант. Хотя надо посмотреть, возможно для других типов > > интерфейсов тип определяется до того, как интерфейсы создаются. > > Да, это определение происходит в самом начале, при чтении конфигов. > Собственно, функция называется name2type() и делает именно то, что заявлено > в названии. Добавлять в нее заглядывание в sysfs точно не надо. Можно > сделать еще одну функцию для этого, но мне кажется это тоже лишнее. Я честно говоря не понял о чём речь. Если интерфейса на момент входа в эту функцию нет, то его уже после этого никто не создаст (в случае с eth). А если есть, то тип интерфейса можно взять из sysfs, вместо автоугадава по имени. Тип определяет какие функции etcnet будет использовать дальше. В случае виртуальных интерфейсов (вроде bridge) как раз тип и определяет, что их нужно создавать. Это понятно. но в случае, если запрашиваемый интерфейс уже есть, а тип явно не определён. то разумно было бы уточнить этот тип через sysfs, а не полагаться в логике определения на имя интерфейса. |