platform: add flags parameter to NMPlatformLink
This commit is contained in:
@@ -941,9 +941,10 @@ init_link (NMPlatform *platform, NMPlatformLink *info, struct rtnl_link *rtnllin
|
|||||||
info->name[0] = '\0';
|
info->name[0] = '\0';
|
||||||
info->type = link_extract_type (platform, rtnllink);
|
info->type = link_extract_type (platform, rtnllink);
|
||||||
info->kind = g_intern_string (rtnl_link_get_type (rtnllink));
|
info->kind = g_intern_string (rtnl_link_get_type (rtnllink));
|
||||||
info->up = !!(rtnl_link_get_flags (rtnllink) & IFF_UP);
|
info->flags = rtnl_link_get_flags (rtnllink);
|
||||||
info->connected = !!(rtnl_link_get_flags (rtnllink) & IFF_LOWER_UP);
|
info->up = NM_FLAGS_HAS (info->flags, IFF_UP);
|
||||||
info->arp = !(rtnl_link_get_flags (rtnllink) & IFF_NOARP);
|
info->connected = NM_FLAGS_HAS (info->flags, IFF_LOWER_UP);
|
||||||
|
info->arp = !NM_FLAGS_HAS (info->flags, IFF_NOARP);
|
||||||
info->master = rtnl_link_get_master (rtnllink);
|
info->master = rtnl_link_get_master (rtnllink);
|
||||||
info->parent = rtnl_link_get_link (rtnllink);
|
info->parent = rtnl_link_get_link (rtnllink);
|
||||||
info->mtu = rtnl_link_get_mtu (rtnllink);
|
info->mtu = rtnl_link_get_mtu (rtnllink);
|
||||||
|
@@ -2440,6 +2440,7 @@ nm_platform_link_to_string (const NMPlatformLink *link)
|
|||||||
{
|
{
|
||||||
char master[20];
|
char master[20];
|
||||||
char parent[20];
|
char parent[20];
|
||||||
|
char str_flags[64];
|
||||||
char *driver, *udi;
|
char *driver, *udi;
|
||||||
GString *str;
|
GString *str;
|
||||||
|
|
||||||
@@ -2456,6 +2457,11 @@ nm_platform_link_to_string (const NMPlatformLink *link)
|
|||||||
if (link->connected)
|
if (link->connected)
|
||||||
g_string_append (str, ",LOWER_UP");
|
g_string_append (str, ",LOWER_UP");
|
||||||
|
|
||||||
|
if (link->flags) {
|
||||||
|
rtnl_link_flags2str (link->flags, str_flags, sizeof (str_flags));
|
||||||
|
g_string_append_printf (str, ";%s", str_flags);
|
||||||
|
}
|
||||||
|
|
||||||
if (link->master)
|
if (link->master)
|
||||||
g_snprintf (master, sizeof (master), " master %d", link->master);
|
g_snprintf (master, sizeof (master), " master %d", link->master);
|
||||||
else
|
else
|
||||||
@@ -2763,6 +2769,7 @@ nm_platform_link_cmp (const NMPlatformLink *a, const NMPlatformLink *b)
|
|||||||
_CMP_FIELD (a, b, master);
|
_CMP_FIELD (a, b, master);
|
||||||
_CMP_FIELD (a, b, parent);
|
_CMP_FIELD (a, b, parent);
|
||||||
_CMP_FIELD (a, b, up);
|
_CMP_FIELD (a, b, up);
|
||||||
|
_CMP_FIELD (a, b, flags);
|
||||||
_CMP_FIELD (a, b, connected);
|
_CMP_FIELD (a, b, connected);
|
||||||
_CMP_FIELD (a, b, arp);
|
_CMP_FIELD (a, b, arp);
|
||||||
_CMP_FIELD (a, b, mtu);
|
_CMP_FIELD (a, b, mtu);
|
||||||
|
@@ -100,9 +100,21 @@ struct _NMPlatformLink {
|
|||||||
gboolean initialized;
|
gboolean initialized;
|
||||||
int master;
|
int master;
|
||||||
int parent;
|
int parent;
|
||||||
|
|
||||||
|
/* IFF_* flags as u32. Note that ifi_flags in 'struct ifinfomsg' is declared as 'unsigned',
|
||||||
|
* but libnl stores the flag internally as u32. */
|
||||||
|
guint32 flags;
|
||||||
|
|
||||||
|
/* FIXME: @up is redundant to (@flags & IFF_UP) */
|
||||||
gboolean up;
|
gboolean up;
|
||||||
|
|
||||||
|
/* @connected is mostly identical to (@flags & IFF_UP). Except for bridge/bond masters,
|
||||||
|
* where we coerce the link as disconnect if it has no slaves. */
|
||||||
gboolean connected;
|
gboolean connected;
|
||||||
|
|
||||||
|
/* FIXME: @arp is redundant to !(@flags & IFF_NOARP) */
|
||||||
gboolean arp;
|
gboolean arp;
|
||||||
|
|
||||||
guint mtu;
|
guint mtu;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user