<p dir="ltr"></p>
<p dir="ltr">Best regards, Tikhomirov Pavel<br>
Software Developer, Virtuozzo.</p>
<p dir="ltr">----&#1055;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; Pavel Tikhomirov &#1085;&#1072;&#1087;&#1080;&#1089;&#1072;&#1083; ----</p>
<p dir="ltr">&gt; Best regards, Tikhomirov Pavel<br>
&gt; Software Developer, Virtuozzo.<br>
&gt; <br>
&gt; ----&#1055;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; Pavel Emelyanov &#1085;&#1072;&#1087;&#1080;&#1089;&#1072;&#1083; ----<br>
&gt; <br>
&gt; &gt; On 04/04/2016 06:38 PM, Pavel Tikhomirov wrote:<br>
&gt; &gt; &gt; On 04/04/2016 06:29 PM, Pavel Tikhomirov wrote:<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; On 04/04/2016 06:03 PM, Pavel Emelyanov wrote:<br>
&gt; &gt; &gt;&gt;&gt; On 04/04/2016 05:46 PM, Pavel Tikhomirov wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt; On 04/04/2016 05:40 PM, Pavel Emelyanov wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; On 04/04/2016 04:58 PM, Pavel Tikhomirov wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; On 04/04/2016 04:38 PM, Pavel Emelyanov wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; On 04/04/2016 01:30 PM, Pavel Tikhomirov wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 04/04/2016 01:16 PM, Pavel Emelyanov wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; @@ -163,9 +163,11 @@ static int net_conf_op(char *tgt, int<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; *conf, int n, int op, char *proto,<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; continue;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /*<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; * If dev conf value is the same as default skip<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; restoring it<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; +&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; * If dev conf value is the same as default skip<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; restoring it,<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; +&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; * mtu may be changed by disable_ipv6 so we can not skip<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; +&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; * it's restore<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; */<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; No, this means that we should restore mtu after disable_ipv6.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; And we still can check<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; for it to match default value.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Imagine situation:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1)restore disable_ipv6 for default<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2)restore mtu for default<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 3)create eth0<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 4)restore disable_ipv6 for eth0<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 5)restore mtu for eth0<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; After step 3 both default and eth0 mtu are set to default value. But<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; after step 4 eth0's one can possibly change. So do you mean we<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; need to<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; first restore both default/disable_ipv6 and eth0/disable_ipv6 and<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; only<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; after that restore default/mtu ?<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; No. By step 5 will eth0's mtu match the default mtu?<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; By step 5 we will have eth0/mtu(in image) equal to default/mtu(in<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; image)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; equal to default/mtu(sysctl) but not equal to eth0/mtu(sysctl).<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; How can this happen? Anything in the image should match the same in<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; sysctl-s<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; on the dump side, so if <a href="http://eth0.mtu">eth0.mtu</a> == <a href="http://default.mtu">default.mtu</a> in image, then the<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; same is<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; true for sysctls on dump side. Why should it differ on restore?<br>
&gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; From comment to 06/14 patch:<br>
&gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; &gt;In<br>
&gt; &gt; &gt;&gt;&gt;&gt; addrconf_sysctl_disable-&gt;addrconf_disable_ipv6-&gt;dev_disable_change:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; &gt;On addrconf_notify + NETDEV_UP if idev-&gt;cnf.mtu6 differs from<br>
&gt; &gt; &gt;&gt;&gt;&gt; dev-&gt;mtu,<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; &gt;sysctl mtu6 is overwritten.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; &gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; &gt;So changing disable_ipv6 sysctl for some device may change mtu sysctl<br>
&gt; &gt; &gt;&gt;&gt;&gt;&#160;&#160; &gt;for it...<br>
&gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt; <a href="http://eth0.mtu">eth0.mtu</a> sysctl changed on step 4.<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; Argh... Let's come with examples. Would you show the combination of<br>
&gt; &gt; &gt;&gt;&gt; eth0/default<br>
&gt; &gt; &gt;&gt;&gt; mtu/disable_ipv6 -s _in_ _images_ that would be restored wrongly if we<br>
&gt; &gt; &gt;&gt;&gt; don't<br>
&gt; &gt; &gt;&gt;&gt; make the check you suggest?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; In images:<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <a href="http://eth0.mtu">eth0.mtu</a> = 1500<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; def_<a href="http://conf6.mtu">conf6.mtu</a>=1280 def_conf.disable_ipv6=1<br>
&gt; &gt; &gt; <a href="http://eth0.conf6.mtu">eth0.conf6.mtu</a>=1280 eth0.conf6.disable_ipv6=0<br>
&gt; &gt; <br>
&gt; &gt; OK. So you mean that when we create eth0, it will inherit mtu from default<br>
&gt; &gt; and will have it be 1280, but when we'll set eth0.disable_ipv6 to 0 the<br>
&gt; &gt; <a href="http://eth0.mtu">eth0.mtu</a> will change to 1500. Right?<br>
&gt; <br>
&gt; Yes. But now I see that even after creation it will be 1500 already.</p>
<p dir="ltr">But still patch fixes both problems.</p>
<p dir="ltr">&gt; <br>
&gt; &gt; <br>
&gt; &gt; -- Pavel</p>