about summary refs log tree commit diff
path: root/src/nm-types.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-types.h')
-rw-r--r--src/nm-types.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/nm-types.h b/src/nm-types.h
index 997723e6..1fbf043e 100644
--- a/src/nm-types.h
+++ b/src/nm-types.h
@@ -54,13 +54,20 @@ typedef struct _NMLldpListener       NMLldpListener;
 
 typedef enum {
 	/* In priority order; higher number == higher priority */
-	NM_IP_CONFIG_SOURCE_UNKNOWN,
 
-	/* platform internal flag used to mark routes with RTM_F_CLONED. */
-	_NM_IP_CONFIG_SOURCE_RTM_F_CLONED,
+	NM_IP_CONFIG_SOURCE_UNKNOWN                 = 0,
 
-	/* routes from platform with protocol RTPROT_KERNEL. */
-	NM_IP_CONFIG_SOURCE_RTPROT_KERNEL,
+	/* for routes, the source is mapped to the uint8 field rtm_protocol.
+	 * Reserve the range [1,0x100] for native RTPROT values. */
+
+	NM_IP_CONFIG_SOURCE_RTPROT_UNSPEC           = 1 + 0,
+	NM_IP_CONFIG_SOURCE_RTPROT_REDIRECT         = 1 + 1,
+	NM_IP_CONFIG_SOURCE_RTPROT_KERNEL           = 1 + 2,
+	NM_IP_CONFIG_SOURCE_RTPROT_BOOT             = 1 + 3,
+	NM_IP_CONFIG_SOURCE_RTPROT_STATIC           = 1 + 4,
+	NM_IP_CONFIG_SOURCE_RTPROT_RA               = 1 + 9,
+	NM_IP_CONFIG_SOURCE_RTPROT_DHCP             = 1 + 16,
+	_NM_IP_CONFIG_SOURCE_RTPROT_LAST            = 1 + 0xFF,
 
 	NM_IP_CONFIG_SOURCE_KERNEL,
 	NM_IP_CONFIG_SOURCE_SHARED,
@@ -73,6 +80,12 @@ typedef enum {
 	NM_IP_CONFIG_SOURCE_USER,
 } NMIPConfigSource;
 
+inline static gboolean
+NM_IS_IP_CONFIG_SOURCE_RTPROT (NMIPConfigSource source)
+{
+	return source > NM_IP_CONFIG_SOURCE_UNKNOWN && source <= _NM_IP_CONFIG_SOURCE_RTPROT_LAST;
+}
+
 /* platform */
 typedef struct _NMPlatform           NMPlatform;
 typedef struct _NMPlatformIP4Address NMPlatformIP4Address;
@@ -102,7 +115,7 @@ typedef enum {
 	NM_LINK_TYPE_INFINIBAND,
 	NM_LINK_TYPE_OLPC_MESH,
 	NM_LINK_TYPE_WIFI,
-	NM_LINK_TYPE_WWAN_ETHERNET,   /* WWAN pseudo-ethernet */
+	NM_LINK_TYPE_WWAN_NET,   /* WWAN kernel netdevice */
 	NM_LINK_TYPE_WIMAX,
 
 	/* Software types */