[CRIU] [PATCH CRIU 08/14] restore/net/ipv6: net device and def/all configuration
Pavel Emelyanov
xemul at virtuozzo.com
Mon Apr 4 08:51:55 PDT 2016
On 04/04/2016 06:38 PM, Pavel Tikhomirov wrote:
> On 04/04/2016 06:29 PM, Pavel Tikhomirov wrote:
>>
>>
>> On 04/04/2016 06:03 PM, Pavel Emelyanov wrote:
>>> On 04/04/2016 05:46 PM, Pavel Tikhomirov wrote:
>>>>
>>>>
>>>> On 04/04/2016 05:40 PM, Pavel Emelyanov wrote:
>>>>> On 04/04/2016 04:58 PM, Pavel Tikhomirov wrote:
>>>>>>
>>>>>>
>>>>>> On 04/04/2016 04:38 PM, Pavel Emelyanov wrote:
>>>>>>> On 04/04/2016 01:30 PM, Pavel Tikhomirov wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On 04/04/2016 01:16 PM, Pavel Emelyanov wrote:
>>>>>>>>>
>>>>>>>>>> @@ -163,9 +163,11 @@ static int net_conf_op(char *tgt, int
>>>>>>>>>> *conf, int n, int op, char *proto,
>>>>>>>>>> continue;
>>>>>>>>>> }
>>>>>>>>>> /*
>>>>>>>>>> - * If dev conf value is the same as default skip
>>>>>>>>>> restoring it
>>>>>>>>>> + * If dev conf value is the same as default skip
>>>>>>>>>> restoring it,
>>>>>>>>>> + * mtu may be changed by disable_ipv6 so we can not skip
>>>>>>>>>> + * it's restore
>>>>>>>>>> */
>>>>>>>>>
>>>>>>>>> No, this means that we should restore mtu after disable_ipv6.
>>>>>>>>> And we still can check
>>>>>>>>> for it to match default value.
>>>>>>>>
>>>>>>>> Imagine situation:
>>>>>>>> 1)restore disable_ipv6 for default
>>>>>>>> 2)restore mtu for default
>>>>>>>> 3)create eth0
>>>>>>>> 4)restore disable_ipv6 for eth0
>>>>>>>> 5)restore mtu for eth0
>>>>>>>>
>>>>>>>> After step 3 both default and eth0 mtu are set to default value. But
>>>>>>>> after step 4 eth0's one can possibly change. So do you mean we
>>>>>>>> need to
>>>>>>>> first restore both default/disable_ipv6 and eth0/disable_ipv6 and
>>>>>>>> only
>>>>>>>> after that restore default/mtu ?
>>>>>>>
>>>>>>> No. By step 5 will eth0's mtu match the default mtu?
>>>>>>
>>>>>> By step 5 we will have eth0/mtu(in image) equal to default/mtu(in
>>>>>> image)
>>>>>> equal to default/mtu(sysctl) but not equal to eth0/mtu(sysctl).
>>>>>
>>>>> How can this happen? Anything in the image should match the same in
>>>>> sysctl-s
>>>>> on the dump side, so if eth0.mtu == default.mtu in image, then the
>>>>> same is
>>>>> true for sysctls on dump side. Why should it differ on restore?
>>>>
>>>> From comment to 06/14 patch:
>>>>
>>>> >In
>>>> addrconf_sysctl_disable->addrconf_disable_ipv6->dev_disable_change:
>>>> >On addrconf_notify + NETDEV_UP if idev->cnf.mtu6 differs from
>>>> dev->mtu,
>>>> >sysctl mtu6 is overwritten.
>>>> >
>>>> >So changing disable_ipv6 sysctl for some device may change mtu sysctl
>>>> >for it...
>>>>
>>>> eth0.mtu sysctl changed on step 4.
>>>
>>> Argh... Let's come with examples. Would you show the combination of
>>> eth0/default
>>> mtu/disable_ipv6 -s _in_ _images_ that would be restored wrongly if we
>>> don't
>>> make the check you suggest?
>>
>
> In images:
>
> eth0.mtu = 1500
>
> def_conf6.mtu=1280 def_conf.disable_ipv6=1
> eth0.conf6.mtu=1280 eth0.conf6.disable_ipv6=0
OK. So you mean that when we create eth0, it will inherit mtu from default
and will have it be 1280, but when we'll set eth0.disable_ipv6 to 0 the
eth0.mtu will change to 1500. Right?
-- Pavel
More information about the CRIU
mailing list