]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
network: retrieve the host's veth device ifindex
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 31 Aug 2017 20:58:30 +0000 (22:58 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 31 Aug 2017 21:09:37 +0000 (23:09 +0200)
- Retrieve the host's veth device ifindex in the host's network namespace.
- Add a note why we retrieve the container's veth device ifindex in the host's
  network namespace.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/network.c

index 6c867c65488106c1fdaecfbe44c95a1e6b32f92d..f10dd3f3e1ea89ae1937d1f583988c114cf3c71f 100644 (file)
@@ -140,6 +140,18 @@ static int instantiate_veth(struct lxc_handler *handler, struct lxc_netdev *netd
                goto out_delete;
        }
 
+       /* Retrieve ifindex of the host's veth device. */
+       netdev->priv.veth_attr.ifindex = if_nametoindex(veth1);
+       if (!netdev->priv.veth_attr.ifindex) {
+               ERROR("Failed to retrieve ifindex for \"%s\"", veth1);
+               goto out_delete;
+       }
+
+       /* Note that we're retrieving the container's ifindex in the host's
+        * network namespace because we need it to move the device from the
+        * host's network namespace to the container's network namespace later
+        * on.
+        */
        netdev->ifindex = if_nametoindex(veth2);
        if (!netdev->ifindex) {
                ERROR("Failed to retrieve ifindex for \"%s\"", veth2);