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