[CRIU] [PATCH 4/5] inet: remember ipv6 connections' ifindex for restore

Tycho Andersen tycho.andersen at canonical.com
Tue Nov 24 08:40:43 PST 2015


On Tue, Nov 24, 2015 at 07:37:38PM +0300, Andrey Wagin wrote:
> 2015-11-24 18:39 GMT+03:00 Tycho Andersen <tycho.andersen at canonical.com>:
> > On Tue, Nov 24, 2015 at 02:08:16PM +0300, Andrew Vagin wrote:
> >> On Mon, Nov 23, 2015 at 01:55:27PM -0700, Tycho Andersen wrote:
> >> > For some ipv6 scope types (link local, amongo others), we need to tell the
> >> > kernel the ifindex of the interface whose address we want to bind to as
> >> > well as the address itself.
> >> >
> >>
> >> Can we use SO_BINDTODEVICE to get this information?
> >
> > Oh, probably. I didn't know about this flag. That would make things
> > much simpler. I'll check and see.
> >
> >> diff --git a/test/zdtm/live/static/bridge.c b/test/zdtm/live/static/bridge.c
> >> index 06bff50..5bb9c40 100644
> >> --- a/test/zdtm/live/static/bridge.c
> >> +++ b/test/zdtm/live/static/bridge.c
> >> @@ -77,6 +77,13 @@ int main(int argc, char **argv)
> >>                 goto out;
> >>         }
> >>
> >> +       {
> >> +               char name[1024];
> >> +               socklen_t len = 1024;
> >> +               getsockopt(sk, SOL_SOCKET, SO_BINDTODEVICE, &name, &len);
> >> +               pr_err("%s\n", name);
> >> +       }
> >> +
> >>         /* Here, we grep for inet because some of the IPV6 DAD stuff can be
> >>          * racy, and all we really care about is that the bridge got restored
> >>          * with the right MAC, since we know DAD will succeed eventually.
> >>
> >> [root at fc22-vm criu]# cat test/zdtm/live/static/bridge.out
> >> 10:58:52.252:     4: ERR: bridge.c:84: zdtmbr0
> >> 10:58:52.261:     4: PASS
> >
> > Not sure what this means?
> 
> I use your test to check that SO_BINDTODEVICE does what we need. Looks
> like we get the right answer by using this option.

Yep, just making the change now. Looks like there is some problem
because we need to convert ifname to ifindex, and on dump we are in
criu's namespace so we can't do that easily. I think I will just send
the string over and convert it on the restore side, unless you know of
a better way.

Tycho

> >
> > Tycho
> > _______________________________________________
> > CRIU mailing list
> > CRIU at openvz.org
> > https://lists.openvz.org/mailman/listinfo/criu


More information about the CRIU mailing list