<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>37173</bug_id>
          
          <creation_ts>2019-08-31 12:13:41 +0300</creation_ts>
          <short_desc>добавить имя ether в список опознаваемых как TYPE eth</short_desc>
          <delta_ts>2020-10-31 10:29:10 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>etcnet</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Y. Afonin">asy</reporter>
          <assigned_to name="Mikhail Efremov">sem</assigned_to>
          <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>rider</cc>
    
    <cc>sem</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>184027</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-08-31 12:13:41 +0300</bug_when>
    <thetext>В рамках работы над https://bugzilla.altlinux.org/32167
Как-то вот так например:

--- functions.bak       2018-12-03 16:30:57.000000000 +0400
+++ functions   2019-08-31 13:01:39.750502691 +0400
@@ -128,6 +128,9 @@
 {
        local NAME=${1:?missing 1st arg to $FUNCNAME}
        local CAND=${NAME%%[0-9]*}
+       if [ $CAND = &quot;ether&quot; ]; then
+               CAND=eth
+       fi
        supported_type $CAND &amp;&amp; echo $CAND
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184028</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-08-31 12:21:19 +0300</bug_when>
    <thetext>кавычки забыл: [ &quot;$CAND&quot; = &quot;ether&quot; ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184034</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-08-31 18:12:17 +0300</bug_when>
    <thetext>Или, может, правильнее несколько симлинков просто добавить:

create-ether -&gt; create-eth
destroy-ether -&gt; destroy-eth
setup-ether -&gt; setup-eth
shutdown-ether -&gt; shutdown-eth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188453</commentid>
    <comment_count>3</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-03-10 17:04:33 +0300</bug_when>
    <thetext>Похоже вариант с тремя строчками в functions проще. Нет возражений по поводу такой доработки?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191611</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-07-27 19:31:57 +0300</bug_when>
    <thetext>(In reply to Sergey Y. Afonin from comment #3)

&gt; Похоже вариант с тремя строчками в functions проще. Нет возражений по поводу
&gt; такой доработки?

https://lists.altlinux.org/pipermail/devel/2020-April/210614.html

Как там с обновлением?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191615</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2020-07-28 08:03:28 +0300</bug_when>
    <thetext>Не совсем понятно - зачем. 
TYPE же всегда можно указать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191616</commentid>
    <comment_count>6</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-07-28 08:26:41 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #5)

&gt; Не совсем понятно - зачем. 
&gt; TYPE же всегда можно указать.

Для удобства. TYPE вообще же для всего можно написать, но есть автоопределение. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193642</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2020-10-30 15:23:41 +0300</bug_when>
    <thetext>Мне не очевидно почему имя ether должно быть обработано особым образом. Как я вижу оно не является умолчанием даже в udev-rule-generator сейчас. Имена интерфейсов могут быть произвольные, мы же не будем добавлять все варианты имен, которые кто-то у себя может использовать?
Скорее уж логичнее добавлять поддержку для стандартной схемы именования, которая используется в udev сейчас (вида enp0s1). Но я и этого не хочу делать, текущая функция проста и понятна, а усложнение ее будет выглядеть уже как набор костылей, достаточно посмотреть на предложенный патч.
Я думаю, что стоит вообще перестать полагаться на это автоопределение типа и всегда указывать тип явно в конфиге.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193643</commentid>
    <comment_count>8</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2020-10-30 15:28:57 +0300</bug_when>
    <thetext>Лучше тогда уж логику переписать на sysfs или udev.

Там уже есть определение типа интерфейса. 

/sys/class/net/&lt;name&gt;/type = 1 это eth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193645</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2020-10-30 15:40:44 +0300</bug_when>
    <thetext>да, тоже вариант. Хотя надо посмотреть, возможно для других типов интерфейсов тип определяется до того, как интерфейсы создаются.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193647</commentid>
    <comment_count>10</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2020-10-30 16:01:39 +0300</bug_when>
    <thetext>(Ответ для Mikhail Efremov на комментарий #9)
&gt; да, тоже вариант. Хотя надо посмотреть, возможно для других типов
&gt; интерфейсов тип определяется до того, как интерфейсы создаются.

Да, это определение происходит в самом начале, при чтении конфигов. Собственно, функция называется name2type() и делает именно то, что заявлено в названии. Добавлять в нее заглядывание в sysfs точно не надо. Можно сделать еще одну функцию для этого, но мне кажется это тоже лишнее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193648</commentid>
    <comment_count>11</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-10-30 16:04:21 +0300</bug_when>
    <thetext>(In reply to Mikhail Efremov from comment #7)

&gt; Мне не очевидно почему имя ether должно быть обработано особым образом. Как
&gt; я вижу оно не является умолчанием даже в udev-rule-generator сейчас.

Только потому, что пока от этого ломается Альтератор и etcnet интерфейсы не поднимает без type. А так всё готово. Ручка в /etc/sysconfig, можно переключить даже без обновления пакета.

&gt; Имена интерфейсов могут быть произвольные, мы же не будем добавлять все варианты

Да, но какое-то должно же быть по умолчанию, и это не eth, так как eth сломали в udev. Я бы с удовольствием ничего не менял, если бы у кого-то ручки шаловливые до udev не дотянулись.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193649</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-10-30 16:08:17 +0300</bug_when>
    <thetext>(In reply to Mikhail Efremov from comment #7)

&gt; Я думаю, что стоит вообще перестать полагаться на это автоопределение типа и
&gt; всегда указывать тип явно в конфиге.

Хотя, в общем-то, тоже вариант, но будет ли удобно и не будет ли каких-то проблем с забывчивостью. Пока-то параметр необязательный.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193650</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2020-10-30 16:18:47 +0300</bug_when>
    <thetext>(Ответ для Sergey Y. Afonin на комментарий #11)
&gt; Только потому, что пока от этого ломается Альтератор и etcnet интерфейсы не
&gt; поднимает без type.

Alterator-net-eth всегда прописывал TYPE явно.

&gt; Да, но какое-то должно же быть по умолчанию, и это не eth, так как eth
&gt; сломали в udev. Я бы с удовольствием ничего не менял, если бы у кого-то
&gt; ручки шаловливые до udev не дотянулись.

Это умолчание тогда уж имена вида enp0s1, как я писал выше.

&gt; Хотя, в общем-то, тоже вариант, но будет ли удобно и не будет ли каких-то
&gt; проблем с забывчивостью. Пока-то параметр необязательный.

TYPE всегда обязательный, просто etcnet может попытаться угадать его по имени. Разумеется, всегда надежнее указать явно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193653</commentid>
    <comment_count>14</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-10-30 17:59:08 +0300</bug_when>
    <thetext>(In reply to Mikhail Efremov from comment #13)

&gt; Это умолчание тогда уж имена вида enp0s1, как я писал выше.

За такие имена вообще руки надо отрывать. Однообразия нет, постоянности нет. Чего добились - не ясно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193654</commentid>
    <comment_count>15</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-10-30 18:03:43 +0300</bug_when>
    <thetext>(In reply to Mikhail Efremov from comment #13)

&gt; &gt; Только потому, что пока от этого ломается Альтератор и etcnet интерфейсы не
&gt; &gt; поднимает без type.
&gt; 
&gt; Alterator-net-eth всегда прописывал TYPE явно.

Хотя про Alterator, возможно, я поторопился. Было такое сообщение:
https://lists.altlinux.org/pipermail/devel/2019-August/208342.html
Я решил, что что-то сломалось, но может быть я был не прав. Уточню.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193656</commentid>
    <comment_count>16</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2020-10-30 19:01:45 +0300</bug_when>
    <thetext>(Ответ для Mikhail Efremov на комментарий #10)
&gt; (Ответ для Mikhail Efremov на комментарий #9)
&gt; &gt; да, тоже вариант. Хотя надо посмотреть, возможно для других типов
&gt; &gt; интерфейсов тип определяется до того, как интерфейсы создаются.
&gt; 
&gt; Да, это определение происходит в самом начале, при чтении конфигов.
&gt; Собственно, функция называется name2type() и делает именно то, что заявлено
&gt; в названии. Добавлять в нее заглядывание в sysfs точно не надо. Можно
&gt; сделать еще одну функцию для этого, но мне кажется это тоже лишнее.

Я честно говоря не понял о чём речь. Если интерфейса на момент входа в эту функцию нет, то его уже после этого никто не создаст (в случае с eth). А если есть, то тип интерфейса можно взять из sysfs, вместо автоугадава по имени.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193664</commentid>
    <comment_count>17</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2020-10-30 22:03:12 +0300</bug_when>
    <thetext>Тип определяет какие функции etcnet будет использовать дальше. В случае виртуальных интерфейсов (вроде bridge) как раз тип и определяет, что их нужно создавать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193665</commentid>
    <comment_count>18</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2020-10-31 10:29:10 +0300</bug_when>
    <thetext>Это понятно. но в случае, если запрашиваемый интерфейс уже есть, а тип явно не определён. то разумно было бы уточнить этот тип через sysfs, а не полагаться в логике определения на имя интерфейса.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>