diff options
author | Martin Xu <martin.xu@intel.com> | 2010-07-28 17:28:42 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-07-29 02:12:54 +0200 |
commit | ea2c14980b153c28990f8aa15da4192d04e42173 (patch) | |
tree | f89a893467f7ed5715b78e987450ff98f89b0dce /include | |
parent | 3929693a476aea7761477213b6497df09f86359d (diff) | |
download | connman-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.h | 8 | ||||
-rw-r--r-- | include/inet.h | 12 | ||||
-rw-r--r-- | include/ipconfig.h | 7 | ||||
-rw-r--r-- | include/property.h | 5 |
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 { |