platform: add @family argument to new-link function
This will be used to create bridge vlans, which require an AF_BRIDGE message family.
This commit is contained in:
@@ -3842,15 +3842,17 @@ nla_put_failure:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct nl_msg *
|
static struct nl_msg *
|
||||||
_nl_msg_new_link (int nlmsg_type,
|
_nl_msg_new_link_full (int nlmsg_type,
|
||||||
int nlmsg_flags,
|
int nlmsg_flags,
|
||||||
int ifindex,
|
int ifindex,
|
||||||
const char *ifname,
|
const char *ifname,
|
||||||
unsigned flags_mask,
|
guint8 family,
|
||||||
unsigned flags_set)
|
unsigned flags_mask,
|
||||||
|
unsigned flags_set)
|
||||||
{
|
{
|
||||||
nm_auto_nlmsg struct nl_msg *msg = NULL;
|
nm_auto_nlmsg struct nl_msg *msg = NULL;
|
||||||
const struct ifinfomsg ifi = {
|
const struct ifinfomsg ifi = {
|
||||||
|
.ifi_family = family,
|
||||||
.ifi_change = flags_mask,
|
.ifi_change = flags_mask,
|
||||||
.ifi_flags = flags_set,
|
.ifi_flags = flags_set,
|
||||||
.ifi_index = ifindex,
|
.ifi_index = ifindex,
|
||||||
@@ -3872,6 +3874,15 @@ nla_put_failure:
|
|||||||
g_return_val_if_reached (NULL);
|
g_return_val_if_reached (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct nl_msg *
|
||||||
|
_nl_msg_new_link (int nlmsg_type,
|
||||||
|
int nlmsg_flags,
|
||||||
|
int ifindex,
|
||||||
|
const char *ifname)
|
||||||
|
{
|
||||||
|
return _nl_msg_new_link_full (nlmsg_type, nlmsg_flags, ifindex, ifname, AF_UNSPEC, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Copied and modified from libnl3's build_addr_msg(). */
|
/* Copied and modified from libnl3's build_addr_msg(). */
|
||||||
static struct nl_msg *
|
static struct nl_msg *
|
||||||
_nl_msg_new_address (int nlmsg_type,
|
_nl_msg_new_address (int nlmsg_type,
|
||||||
@@ -5574,9 +5585,7 @@ do_request_link_no_delayed_actions (NMPlatform *platform, int ifindex, const cha
|
|||||||
nlmsg = _nl_msg_new_link (RTM_GETLINK,
|
nlmsg = _nl_msg_new_link (RTM_GETLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (nlmsg) {
|
if (nlmsg) {
|
||||||
nle = _nl_send_nlmsg (platform, nlmsg, NULL, NULL, DELAYED_ACTION_RESPONSE_TYPE_VOID, NULL);
|
nle = _nl_send_nlmsg (platform, nlmsg, NULL, NULL, DELAYED_ACTION_RESPONSE_TYPE_VOID, NULL);
|
||||||
if (nle < 0) {
|
if (nle < 0) {
|
||||||
@@ -6274,9 +6283,7 @@ link_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return -NME_UNSPEC;
|
return -NME_UNSPEC;
|
||||||
|
|
||||||
@@ -6305,9 +6312,7 @@ link_delete (NMPlatform *platform, int ifindex)
|
|||||||
nlmsg = _nl_msg_new_link (RTM_DELLINK,
|
nlmsg = _nl_msg_new_link (RTM_DELLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
|
|
||||||
nmp_object_stackinit_id_link (&obj_id, ifindex);
|
nmp_object_stackinit_id_link (&obj_id, ifindex);
|
||||||
return do_delete_object (platform, &obj_id, nlmsg);
|
return do_delete_object (platform, &obj_id, nlmsg);
|
||||||
@@ -6330,9 +6335,7 @@ link_set_netns (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -6359,12 +6362,13 @@ link_change_flags (NMPlatform *platform,
|
|||||||
nm_platform_link_flags2str (flags_set, s_flags, sizeof (s_flags)),
|
nm_platform_link_flags2str (flags_set, s_flags, sizeof (s_flags)),
|
||||||
nm_platform_link_flags2str (flags_mask, NULL, 0));
|
nm_platform_link_flags2str (flags_mask, NULL, 0));
|
||||||
|
|
||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link_full (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL,
|
||||||
flags_mask,
|
AF_UNSPEC,
|
||||||
flags_set);
|
flags_mask,
|
||||||
|
flags_set);
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return -NME_UNSPEC;
|
return -NME_UNSPEC;
|
||||||
return do_change_link (platform, CHANGE_LINK_TYPE_UNSPEC, ifindex, nlmsg, NULL);
|
return do_change_link (platform, CHANGE_LINK_TYPE_UNSPEC, ifindex, nlmsg, NULL);
|
||||||
@@ -6428,9 +6432,7 @@ link_set_user_ipv6ll_enabled (NMPlatform *platform, int ifindex, gboolean enable
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if ( !nlmsg
|
if ( !nlmsg
|
||||||
|| !_nl_msg_new_link_set_afspec (nlmsg, mode, NULL))
|
|| !_nl_msg_new_link_set_afspec (nlmsg, mode, NULL))
|
||||||
g_return_val_if_reached (-NME_BUG);
|
g_return_val_if_reached (-NME_BUG);
|
||||||
@@ -6447,7 +6449,7 @@ link_set_token (NMPlatform *platform, int ifindex, NMUtilsIPv6IfaceId iid)
|
|||||||
_LOGD ("link: change %d: token: set IPv6 address generation token to %s",
|
_LOGD ("link: change %d: token: set IPv6 address generation token to %s",
|
||||||
ifindex, nm_utils_inet6_interface_identifier_to_token (iid, sbuf));
|
ifindex, nm_utils_inet6_interface_identifier_to_token (iid, sbuf));
|
||||||
|
|
||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK, 0, ifindex, NULL, 0, 0);
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK, 0, ifindex, NULL);
|
||||||
if (!nlmsg || !_nl_msg_new_link_set_afspec (nlmsg, -1, &iid))
|
if (!nlmsg || !_nl_msg_new_link_set_afspec (nlmsg, -1, &iid))
|
||||||
g_return_val_if_reached (FALSE);
|
g_return_val_if_reached (FALSE);
|
||||||
|
|
||||||
@@ -6528,9 +6530,7 @@ link_set_address (NMPlatform *platform, int ifindex, gconstpointer address, size
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
g_return_val_if_reached (-NME_BUG);
|
g_return_val_if_reached (-NME_BUG);
|
||||||
|
|
||||||
@@ -6549,9 +6549,7 @@ link_set_name (NMPlatform *platform, int ifindex, const char *name)
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
g_return_val_if_reached (-NME_BUG);
|
g_return_val_if_reached (-NME_BUG);
|
||||||
|
|
||||||
@@ -6584,9 +6582,7 @@ link_set_mtu (NMPlatform *platform, int ifindex, guint32 mtu)
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -6702,9 +6698,7 @@ link_set_sriov_vfs (NMPlatform *platform, int ifindex, const NMPlatformVF *const
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
g_return_val_if_reached (-NME_BUG);
|
g_return_val_if_reached (-NME_BUG);
|
||||||
|
|
||||||
@@ -6832,9 +6826,7 @@ vlan_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -6868,9 +6860,7 @@ link_gre_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -6920,9 +6910,7 @@ link_ip6tnl_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -6976,9 +6964,7 @@ link_ip6gre_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7035,9 +7021,7 @@ link_ipip_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7079,9 +7063,7 @@ link_macsec_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7136,9 +7118,7 @@ link_macvlan_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7178,9 +7158,7 @@ link_sit_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7280,9 +7258,7 @@ link_vxlan_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7346,9 +7322,7 @@ link_6lowpan_add (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
NLM_F_CREATE | NLM_F_EXCL,
|
NLM_F_CREATE | NLM_F_EXCL,
|
||||||
0,
|
0,
|
||||||
name,
|
name);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -7496,9 +7470,7 @@ link_vlan_change (NMPlatform *platform,
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if ( !nlmsg
|
if ( !nlmsg
|
||||||
|| !_nl_msg_new_link_set_linkinfo_vlan (nlmsg,
|
|| !_nl_msg_new_link_set_linkinfo_vlan (nlmsg,
|
||||||
-1,
|
-1,
|
||||||
@@ -7522,9 +7494,7 @@ link_enslave (NMPlatform *platform, int master, int slave)
|
|||||||
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
nlmsg = _nl_msg_new_link (RTM_NEWLINK,
|
||||||
0,
|
0,
|
||||||
ifindex,
|
ifindex,
|
||||||
NULL,
|
NULL);
|
||||||
0,
|
|
||||||
0);
|
|
||||||
if (!nlmsg)
|
if (!nlmsg)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user