platform: add nm_platform_link_set_netns() function

[thaller@redhat.com: cherry-picked original patch and modified
  slightly]
This commit is contained in:
Stjepan Gros
2016-03-08 13:02:58 +01:00
committed by Thomas Haller
parent 30fe52c766
commit 9995699116
3 changed files with 58 additions and 0 deletions

View File

@@ -4051,6 +4051,31 @@ link_refresh (NMPlatform *platform, int ifindex)
return !!cache_lookup_link (platform, ifindex);
}
static gboolean
link_set_netns (NMPlatform *platform,
int ifindex,
int netns_fd)
{
nm_auto_nlmsg struct nl_msg *nlmsg = NULL;
_LOGD ("link: move link %d to network namespace with fd %d", ifindex, netns_fd);
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
0,
ifindex,
NULL,
0,
0);
if (!nlmsg)
return FALSE;
NLA_PUT (nlmsg, IFLA_NET_NS_FD, 4, &netns_fd);
return do_change_link (platform, ifindex, nlmsg) == NM_PLATFORM_ERROR_SUCCESS;
nla_put_failure:
g_return_val_if_reached (FALSE);
}
static NMPlatformError
link_change_flags (NMPlatform *platform,
int ifindex,
@@ -6164,6 +6189,8 @@ nm_linux_platform_class_init (NMLinuxPlatformClass *klass)
platform_class->link_refresh = link_refresh;
platform_class->link_set_netns = link_set_netns;
platform_class->link_set_up = link_set_up;
platform_class->link_set_down = link_set_down;
platform_class->link_set_arp = link_set_arp;