summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMartin Xu <martin.xu@intel.com>2010-07-28 17:28:42 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-07-29 02:12:54 +0200
commitea2c14980b153c28990f8aa15da4192d04e42173 (patch)
treef89a893467f7ed5715b78e987450ff98f89b0dce /include
parent3929693a476aea7761477213b6497df09f86359d (diff)
downloadconnman-ea2c14980b153c28990f8aa15da4192d04e42173.tar.gz
connman-ea2c14980b153c28990f8aa15da4192d04e42173.tar.bz2
connman-ea2c14980b153c28990f8aa15da4192d04e42173.zip
Initial IPv6 support
Only manual/fixed setting supported for now.
Diffstat (limited to 'include')
-rw-r--r--include/element.h8
-rw-r--r--include/inet.h12
-rw-r--r--include/ipconfig.h7
-rw-r--r--include/property.h5
4 files changed, 30 insertions, 2 deletions
diff --git a/include/element.h b/include/element.h
index eab567e8..4161d7e8 100644
--- a/include/element.h
+++ b/include/element.h
@@ -109,6 +109,14 @@ struct connman_element {
gchar *timeserver;
gchar *pac;
} ipv4;
+
+ struct {
+ enum connman_ipconfig_method method;
+ gchar *address;
+ int prefix_len;
+ gchar *gateway;
+ gchar *network;
+ } ipv6;
};
struct connman_element *connman_element_create(const char *name);
diff --git a/include/inet.h b/include/inet.h
index 389a584c..ce0a0b25 100644
--- a/include/inet.h
+++ b/include/inet.h
@@ -51,6 +51,18 @@ int connman_inet_clear_gateway_address(int index, const char *gateway);
int connman_inet_set_gateway_interface(int index);
int connman_inet_clear_gateway_interface(int index);
connman_bool_t connman_inet_compare_subnet(int index, const char *host);
+int connman_inet_set_ipv6_address(int index,
+ struct connman_ipaddress *ipaddress);
+int connman_inet_clear_ipv6_address(int index,
+ const char *address, int prefix_len);
+int connman_inet_add_ipv6_host_route(int index, const char *host,
+ const char *gateway);
+int connman_inet_del_ipv6_host_route(int index, const char *host);
+int connman_inet_set_ipv6_gateway_address(int index, const char *gateway);
+int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway);
+
+void connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
+ const char *address, const char *netmask, const char *gateway);
#ifdef __cplusplus
}
diff --git a/include/ipconfig.h b/include/ipconfig.h
index 0b70252d..5f67dcc4 100644
--- a/include/ipconfig.h
+++ b/include/ipconfig.h
@@ -86,10 +86,13 @@ const char *connman_ipconfig_get_ifname(struct connman_ipconfig *ipconfig);
void connman_ipconfig_set_ops(struct connman_ipconfig *ipconfig,
const struct connman_ipconfig_ops *ops);
-
+int connman_ipaddress_set_ipv6(struct connman_ipaddress *ipaddress,
+ const char *address, const char *gateway,
+ unsigned char prefix_length);
+struct connman_ipconfig *connman_ipconfig_get_ipv6config(
+ struct connman_ipconfig *ipconfig);
int connman_ipconfig_set_method(struct connman_ipconfig *ipconfig,
enum connman_ipconfig_method method);
-
void connman_ipconfig_bind(struct connman_ipconfig *ipconfig,
struct connman_ipaddress *ipaddress);
diff --git a/include/property.h b/include/property.h
index c7f2a7b1..d00c61bd 100644
--- a/include/property.h
+++ b/include/property.h
@@ -48,6 +48,11 @@ enum connman_property_id {
CONNMAN_PROPERTY_ID_IPV4_NAMESERVER,
CONNMAN_PROPERTY_ID_IPV4_TIMESERVER,
CONNMAN_PROPERTY_ID_IPV4_PAC,
+
+ CONNMAN_PROPERTY_ID_IPV6_METHOD,
+ CONNMAN_PROPERTY_ID_IPV6_ADDRESS,
+ CONNMAN_PROPERTY_ID_IPV6_PREFIXLEN,
+ CONNMAN_PROPERTY_ID_IPV6_GATEWAY,
};
enum connman_property_type {