Commit d957ae2d by Michael Tokarev Committed by Daniel Lezcano

check if lxc.netdev.link is set for macvlan

Ensure that lxc.netdev.link is specified for macvlan interfaces, since it's required. While at it, simplify logic in instanciate_macvlan(): remove unnecessary-complicating goto statements (we only need to perform a cleanup in one place) Signed-off-by: 's avatarMichael Tokarev <mjt@tls.msk.ru> Signed-off-by: 's avatarDaniel Lezcano <dlezcano@fr.ibm.com>
parent 734915ac
......@@ -893,10 +893,15 @@ out_delete:
lxc_device_delete(veth1);
goto out;
}
static int instanciate_macvlan(struct lxc_netdev *netdev)
{
char peer[IFNAMSIZ];
int ret = -1;
if (!netdev->link) {
ERROR("no link specified for macvlan netdev");
return -1;
}
snprintf(peer, sizeof(peer), "mcXXXXXX");
......@@ -910,24 +915,19 @@ static int instanciate_macvlan(struct lxc_netdev *netdev)
if (lxc_macvlan_create(netdev->link, peer)) {
ERROR("failed to create macvlan interface '%s' on '%s'",
peer, netdev->link);
goto out;
return -1;
}
netdev->ifindex = if_nametoindex(peer);
if (!netdev->ifindex) {
ERROR("failed to retrieve the index for %s", peer);
goto out_delete;
lxc_device_delete(peer);
return -1;
}
DEBUG("instanciated macvlan '%s', index is '%d'", peer, netdev->ifindex);
ret = 0;
out:
return ret;
out_delete:
lxc_device_delete(peer);
goto out;
return 0;
}
static int instanciate_phys(struct lxc_netdev *netdev)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment