From db5603e615f502e2fc96040e7f6b83a13fcb0f98 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Sat, 27 Sep 2014 09:03:56 +0200 Subject: platform: Add support for IPv6 tokenized identifiers --- src/platform/nm-platform.c | 25 +++++++++++++++++++++++++ src/platform/nm-platform.h | 4 ++++ 2 files changed, 29 insertions(+) diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index a2fd8f39a4..0540af8046 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -747,6 +747,31 @@ nm_platform_link_uses_arp (int ifindex) return klass->link_uses_arp (platform, ifindex); } +/** + * nm_platform_link_get_ipv6_token: + * @ifindex: Interface index + * @iid: Tokenized interface identifier + * + * Returns IPv6 tokenized interface identifier. If the platform or OS doesn't + * support IPv6 tokenized interface identifiers, or the token is not set + * this call will fail and return %FALSE. + * + * Returns: %TRUE a tokenized identifier was available + */ +gboolean +nm_platform_link_get_ipv6_token (int ifindex, NMUtilsIPv6IfaceId *iid) +{ + reset_error (); + + g_return_val_if_fail (ifindex >= 0, FALSE); + g_return_val_if_fail (iid, FALSE); + + if (klass->link_get_ipv6_token) + return klass->link_get_ipv6_token (platform, ifindex, iid); + return FALSE; +} + + /** * nm_platform_link_get_user_ip6vll_enabled: * @ifindex: Interface index diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index b202de32a1..52362e4398 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -362,6 +362,8 @@ typedef struct { gboolean (*link_is_connected) (NMPlatform *, int ifindex); gboolean (*link_uses_arp) (NMPlatform *, int ifindex); + gboolean (*link_get_ipv6_token) (NMPlatform *, int ifindex, NMUtilsIPv6IfaceId *iid); + gboolean (*link_get_user_ipv6ll_enabled) (NMPlatform *, int ifindex); gboolean (*link_set_user_ipv6ll_enabled) (NMPlatform *, int ifindex, gboolean enabled); @@ -509,6 +511,8 @@ gboolean nm_platform_link_is_up (int ifindex); gboolean nm_platform_link_is_connected (int ifindex); gboolean nm_platform_link_uses_arp (int ifindex); +gboolean nm_platform_link_get_ipv6_token (int ifindex, NMUtilsIPv6IfaceId *iid); + gboolean nm_platform_link_get_user_ipv6ll_enabled (int ifindex); gboolean nm_platform_link_set_user_ipv6ll_enabled (int ifindex, gboolean enabled); -- cgit v1.2.1