Add new APIs for IPv6 and DNS configuration
[platform/core/api/connection.git] / include / connection_profile.h
index 48460a9..77b37ac 100755 (executable)
@@ -176,6 +176,16 @@ typedef enum {
        CONNECTION_PROXY_TYPE_MANUAL  = 2, /**< Manual configuration */
 } connection_proxy_type_e;
 
+/**
+ * @brief Enumeration for DNS configuration type.
+ * @since_tizen 4.0
+ */
+typedef enum
+{
+       CONNECTION_DNS_CONFIG_TYPE_NONE = 0,     /**< Not defined */
+       CONNECTION_DNS_CONFIG_TYPE_STATIC = 1,   /**< Manual DNS configuration */
+       CONNECTION_DNS_CONFIG_TYPE_DYNAMIC = 2,  /**< Config DNS using DHCP client*/
+} connection_dns_config_type_e;
 
 /**
  * @brief Enumeration for network connection type.
@@ -626,6 +636,83 @@ int connection_profile_set_state_changed_cb(connection_profile_h profile, connec
 */
 int connection_profile_unset_state_changed_cb(connection_profile_h profile);
 
+/**
+ * @brief Gets the IPv6 network state.
+ * @since_tizen 4.0
+ * @param[in] profile The profile handle
+ * @param[out] state  The profile state
+ * @return 0 on success, otherwise negative error value.
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ */
+int connection_profile_get_ipv6_state(connection_profile_h profile, connection_profile_state_e *state);
+
+/**
+ * @brief Sets the DNS config type.
+ * @since_tizen 4.0
+ * @param[in] profile         The profile handle
+ * @param[in] address_family  The address family
+ * @param[in] type            The DNS config type
+ * @return 0 on success, otherwise negative error value.
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ */
+int connection_profile_set_dns_config_type(connection_profile_h profile,
+               connection_address_family_e address_family, connection_dns_config_type_e type);
+
+/**
+ * @brief Gets the DNS config type.
+ * @since_tizen 4.0
+ * @param[in] profile         The profile handle
+ * @param[in] address_family  The address family
+ * @param[out] type           The DNS config type
+ * @return 0 on success, otherwise negative error value.
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ */
+int connection_profile_get_dns_config_type(connection_profile_h profile,
+               connection_address_family_e address_family, connection_dns_config_type_e *type);
+
+/**
+ * @brief Gets the network prefix length.
+ * @since_tizen 4.0
+ * @param[in] profile         The profile handle
+ * @param[in] address_family  The address family
+ * @param[out] prefix_len     The network prefix length.
+ *                            In case of IPv4, it means netmask length
+ *                            (also called a prefix, e.g. 8, 16, 24, 32)
+ * @return 0 on success, otherwise negative error value.
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ */
+int connection_profile_get_prefix_length(connection_profile_h profile,
+               connection_address_family_e address_family, int *prefix_len);
+
+/**
+ * @brief Sets the network prefix length.
+ * @since_tizen 4.0
+ * @param[in] profile         The profile handle
+ * @param[in] address_family  The address family
+ * @param[in] prefix_len      The network prefix length.
+ *                            In case of IPv4, it means netmask length
+ *                            (also called a prefix, e.g. 8, 16, 24, 32)
+ * @return 0 on success, otherwise negative error value.
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @see connection_update_profile()
+ */
+int connection_profile_set_prefix_length(connection_profile_h profile,
+               connection_address_family_e address_family, int prefix_len);
 
 /**
 * @}
@@ -897,7 +984,7 @@ int connection_profile_get_cellular_roam_pdn_type(connection_profile_h profile,
 
 
 /**
- * @brief Checks wheter the connection is in roaming state.
+ * @brief Checks whether the connection is in roaming state.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @param[in] profile The profile handle
  * @param[out] is_roaming @c true if the cellular is roaming,