Add API headers for TV rootstrap 27/263227/1 accepted/tizen/unified/20210831.143852 submit/tizen/20210830.034303
authorSeonah Moon <seonah1.moon@samsung.com>
Mon, 30 Aug 2021 01:54:44 +0000 (10:54 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Mon, 30 Aug 2021 01:56:40 +0000 (10:56 +0900)
Change-Id: I93c2abe2be1935ae04a81846f5ccac648246025c

CMakeLists.txt
include/tv/connection_profile.h [new file with mode: 0755]
include/tv/net_connection.h [new file with mode: 0755]
packaging/capi-network-connection.spec

index 331953c..05cbe34 100755 (executable)
@@ -57,6 +57,13 @@ INSTALL(
         PATTERN "${INC_DIR}/*.h"
         )
 
+# For TV rootstrap
+INSTALL(
+        DIRECTORY ${INC_DIR}/tv/ DESTINATION include/tv/network
+        FILES_MATCHING
+        PATTERN "${INC_DIR}/tv/*.h"
+        )
+
 SET(PC_NAME ${fw_name})
 SET(PC_REQUIRED ${pc_dependents})
 SET(PC_LDFLAGS -l${fw_name})
diff --git a/include/tv/connection_profile.h b/include/tv/connection_profile.h
new file mode 100755 (executable)
index 0000000..5f71429
--- /dev/null
@@ -0,0 +1,1332 @@
+/*
+ * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_CONNECTION_PROFILE_H__
+#define __TIZEN_NETWORK_CONNECTION_PROFILE_H__
+
+
+#include <tizen.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @file connection_profile.h
+ */
+
+
+/**
+* @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE
+* @{
+*/
+
+
+/**
+ * @brief Enumeration for security type of Wi-Fi.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_WIFI_SECURITY_TYPE_NONE = 0,         /**< Security disabled */
+       CONNECTION_WIFI_SECURITY_TYPE_WEP = 1,          /**< WEP */
+       CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK = 2,      /**< WPA-PSK */
+       CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK = 3,     /**< WPA2-PSK */
+       CONNECTION_WIFI_SECURITY_TYPE_EAP = 4,          /**< EAP */
+       CONNECTION_WIFI_SECURITY_TYPE_SAE = 5,          /**< WPA3 */
+} connection_wifi_security_type_e;
+
+
+/**
+ * @brief Enumeration for encryption modes.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_WIFI_ENCRYPTION_TYPE_NONE = 0,           /**< Encryption disabled */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_WEP = 1,            /**< WEP */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP = 2,           /**< TKIP */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_AES = 3,            /**< AES */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED = 4, /**< TKIP and AES are both supported */
+} connection_wifi_encryption_type_e;
+
+
+/**
+* @}
+*/
+
+
+/**
+* @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE
+* @{
+*/
+
+
+/**
+ * @brief Enumeration for cellular service type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN = 0,          /**< Unknown */
+       CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET = 1,         /**< Internet */
+       CONNECTION_CELLULAR_SERVICE_TYPE_MMS = 2,              /**< MMS */
+       CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET = 3, /**< Prepaid Internet */
+       CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS = 4,      /**< Prepaid MMS */
+       CONNECTION_CELLULAR_SERVICE_TYPE_TETHERING = 5,        /**< Tethering */
+       CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION = 6,      /**< Specific application */
+} connection_cellular_service_type_e;
+
+
+/**
+ * @brief Enumeration for cellular pdn type.
+ * @since_tizen 3.0
+ * @remarks Use #CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPV6 instead of
+ *          CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPv6.
+ */
+typedef enum {
+       CONNECTION_CELLULAR_PDN_TYPE_UNKNOWN = 0,    /**< Unknown */
+       CONNECTION_CELLULAR_PDN_TYPE_IPV4 = 1,       /**< IPv4 */
+       CONNECTION_CELLULAR_PDN_TYPE_IPV6 = 2,       /**< IPv6 */
+       CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPv6 = 3,  /**< IPv4 and IPv6 (Deprecated since 4.0) */
+       CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPV6 = 4,  /**< IPv4 and IPv6 (Since 4.0) */
+} connection_cellular_pdn_type_e;
+
+
+/**
+ * @brief Enumeration for cellular authentication type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_CELLULAR_AUTH_TYPE_NONE = 0,     /**< No authentication */
+       CONNECTION_CELLULAR_AUTH_TYPE_PAP  = 1,     /**< PAP authentication */
+       CONNECTION_CELLULAR_AUTH_TYPE_CHAP = 2,     /**< CHAP authentication */
+} connection_cellular_auth_type_e;
+
+
+/**
+* @}
+*/
+
+
+/**
+* @addtogroup CAPI_NETWORK_CONNECTION_PROFILE_MODULE
+* @{
+*/
+
+
+/**
+ * @brief The profile handle.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef void* connection_profile_h;
+
+
+/**
+ * @brief Enumeration for profile state type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_PROFILE_STATE_DISCONNECTED = 0,   /**< Disconnected state */
+       CONNECTION_PROFILE_STATE_ASSOCIATION = 1,    /**< Association state */
+       CONNECTION_PROFILE_STATE_CONFIGURATION = 2,  /**< Configuration state */
+       CONNECTION_PROFILE_STATE_CONNECTED = 3,      /**< Connected state */
+} connection_profile_state_e;
+
+
+/**
+ * @brief Enumeration for address family.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_ADDRESS_FAMILY_IPV4 = 0,    /**< IPV4 Address type */
+       CONNECTION_ADDRESS_FAMILY_IPV6 = 1,    /**< IPV6 Address type */
+} connection_address_family_e;
+
+
+/**
+ * @brief Enumeration for IP configuration type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       /**
+        * Not defined
+        */
+       CONNECTION_IP_CONFIG_TYPE_NONE = 0,
+
+       /**
+        * Manual IP configuration
+        */
+       CONNECTION_IP_CONFIG_TYPE_STATIC  = 1,
+
+       /**
+        * Config IP using DHCP client (IPv4 Only)
+        */
+       CONNECTION_IP_CONFIG_TYPE_DYNAMIC = 2,
+
+       /**
+        * Config IP from Auto IP pool (169.254/16). Later with DHCP client, if available
+        */
+       CONNECTION_IP_CONFIG_TYPE_AUTO = 3,
+
+       /**
+        * Indicates an IP address that can not be modified (IPv4 Only)
+        */
+       CONNECTION_IP_CONFIG_TYPE_FIXED = 4,
+
+} connection_ip_config_type_e;
+
+
+/**
+ * @brief Enumeration for proxy method type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       /**
+        * Direct connection
+        */
+       CONNECTION_PROXY_TYPE_DIRECT = 0,
+
+       /**
+        * Auto configuration (use PAC file). If URL property is not set,
+        * DHCP/WPAD auto-discover will be tried
+        */
+       CONNECTION_PROXY_TYPE_AUTO = 1,
+
+       /**
+        * Manual configuration
+        */
+       CONNECTION_PROXY_TYPE_MANUAL  = 2,
+
+} 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.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       CONNECTION_PROFILE_TYPE_CELLULAR = 0,    /**< Cellular type */
+       CONNECTION_PROFILE_TYPE_WIFI = 1,        /**< Wi-Fi type */
+       CONNECTION_PROFILE_TYPE_ETHERNET = 2,    /**< Ethernet type */
+       CONNECTION_PROFILE_TYPE_BT = 3,          /**< Bluetooth type */
+} connection_profile_type_e;
+
+/**
+ * @brief Creates a profile handle.
+ * @details The profile name, which you get from connection_profile_get_name()
+ *          will include the keyword you set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @remarks You must release @a profile using connection_profile_destroy().
+ * @param[in] type               The type of profile \n
+ *            #CONNECTION_PROFILE_TYPE_CELLULAR and #CONNECTION_PROFILE_TYPE_WIFI are supported
+ * @param[in] keyword            The keyword included in profile name
+ * @param[out] profile           The handle of the profile
+ * @return @c 0 on success,
+ *         otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_destroy()
+ * @see connection_profile_get_name()
+*/
+int connection_profile_create(connection_profile_type_e type,
+               const char *keyword, connection_profile_h *profile);
+
+
+/**
+ * @brief Destroys a profile handle.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[out] profile           The handle to the profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @see connection_profile_create()
+*/
+int connection_profile_destroy(connection_profile_h profile);
+
+
+/**
+ * @brief Clones a profile handle.
+ * @since_tizen 2.3
+ * @remarks You must release @a cloned_profile using connection_profile_destroy().
+ * @param[out] cloned_profile    The handle of the cloned profile
+ * @param[in] origin_profile     The handle of the origin profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @see connection_profile_destroy()
+*/
+int connection_profile_clone(connection_profile_h *cloned_profile,
+               connection_profile_h origin_profile);
+
+
+/**
+ * @brief Gets the profile ID.
+ * @details The separate profiles can have the same name.
+ *          So, you must use this function instead of connection_profile_get_name()
+ *          if you want to get the unique identification.
+ *          In case you create a profile, this value will be determined when you add the profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a profile_id using free().
+ * @param[in] profile            The profile handle
+ * @param[out] profile_id        The ID of the profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @see connection_profile_get_name()
+ * @see connection_add_profile()
+*/
+int connection_profile_get_id(connection_profile_h profile, char **profile_id);
+
+
+/**
+ * @brief Gets the profile name.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a profile_name using free().
+ * @param[in] profile           The profile handle
+ * @param[out] profile_name     The name of the profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @see connection_profile_get_id()
+*/
+int connection_profile_get_name(connection_profile_h profile, char **profile_name);
+
+
+/**
+ * @brief Gets the network type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[out] type             The type of the profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+*/
+int connection_profile_get_type(connection_profile_h profile, connection_profile_type_e *type);
+
+
+/**
+ * @brief Gets the name of the network interface, e.g. eth0 and pdp0.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a interface_name using free().
+ * @param[in] profile           The profile handle
+ * @param[out] interface_name   The name of the network interface
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+*/
+int connection_profile_get_network_interface_name(connection_profile_h profile,
+               char **interface_name);
+
+
+/**
+ * @brief Refreshes the profile information.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @remarks You should call this function in order to get the current information
+ *          because the profile information can be changed.
+ * @param[in] profile           The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+*/
+int connection_profile_refresh(connection_profile_h profile);
+
+
+/**
+ * @brief Gets the network state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[out] state            The state of the profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+*/
+int connection_profile_get_state(connection_profile_h profile,
+               connection_profile_state_e *state);
+
+/**
+ * @brief Gets the IP config type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] type             The type of the IP config
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+*/
+int connection_profile_get_ip_config_type(connection_profile_h profile,
+               connection_address_family_e address_family, connection_ip_config_type_e *type);
+
+
+/**
+ * @brief Gets the IP address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a ip_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] ip_address       The IP address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_ip_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **ip_address);
+
+
+/**
+ * @brief Gets the Subnet Mask.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a subnet_mask using free().
+ *          This function is supported only for IPv4 address family.
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] subnet_mask      The subnet mask
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_subnet_mask(connection_profile_h profile,
+               connection_address_family_e address_family, char **subnet_mask);
+
+
+/**
+ * @brief Gets the Gateway address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a gateway_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] gateway_address  The gateway address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_gateway_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **gateway_address);
+
+/**
+ * @brief Gets the DHCP Server address.
+ * @since_tizen 4.0
+ * @remarks You must release @a dhcp_server using free().
+ *          This function is supported only for IPv4 address family.
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] dhcp_server      The DHCP Server address
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_dhcp_server_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **dhcp_server);
+
+/**
+ * @brief Gets the DHCP lease duration.
+ * @since_tizen 4.0
+ * @param[in] profile                   The profile handle
+ * @param[in] address_family            The address family
+ * @param[out] dhcp_lease_duration      The DHCP lease duration in seconds
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED                  Not supported
+*/
+int connection_profile_get_dhcp_lease_duration(connection_profile_h profile,
+               connection_address_family_e address_family, int *dhcp_lease_duration);
+
+/**
+ * @brief Gets the DNS address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks The allowance of the DNS address is @c 2. You must release @a dns_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] order             The order of DNS address \n
+ *            It starts from 1, which means first DNS address
+ * @param[in] address_family    The address family
+ * @param[out] dns_address      The DNS address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_dns_address(connection_profile_h profile,
+               int order, connection_address_family_e address_family, char **dns_address);
+
+
+/**
+ * @brief Gets the Proxy type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[out] type             The type of the proxy
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+*/
+int connection_profile_get_proxy_type(connection_profile_h profile,
+               connection_proxy_type_e *type);
+
+
+/**
+ * @brief Gets the Proxy address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a proxy_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] proxy_address    The proxy address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_proxy_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **proxy_address);
+
+
+/**
+ * @brief Sets the IP config type.
+ * @details If you set IP config type to #CONNECTION_IP_CONFIG_TYPE_STATIC,
+ *          then IP address, Gateway and Subnet mask will be set to the initial value "0.0.0.0".
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] type              The type of the IP config
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+*/
+int connection_profile_set_ip_config_type(connection_profile_h profile,
+               connection_address_family_e address_family, connection_ip_config_type_e type);
+
+
+/**
+ * @brief Sets the IP address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a ip_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] ip_address        The IP address \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @see connection_update_profile()
+*/
+int connection_profile_set_ip_address(connection_profile_h profile,
+               connection_address_family_e address_family, const char *ip_address);
+
+
+/**
+ * @brief Sets the Subnet Mask.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a subnet_mask using free().
+ *          This function is supported only for IPv4 address family.
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] subnet_mask       The subnet mask \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @see connection_update_profile()
+*/
+int connection_profile_set_subnet_mask(connection_profile_h profile,
+               connection_address_family_e address_family, const char *subnet_mask);
+
+
+/**
+ * @brief Sets the Gateway address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a gateway_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] gateway_address   The gateway address \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @see connection_update_profile()
+*/
+int connection_profile_set_gateway_address(connection_profile_h profile,
+               connection_address_family_e address_family, const char *gateway_address);
+
+
+/**
+ * @brief Sets the DNS address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks The allowance of the DNS address is @c 2.
+ * @remarks You must release @a dns_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] order             The order of the DNS address \n
+ *            It starts from @c 1, which means first DNS address
+ * @param[in] address_family    The address family
+ * @param[in] dns_address       The DNS address \n
+ *            If you set this value to NULL then the existing value will be deleted
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @see connection_update_profile()
+*/
+int connection_profile_set_dns_address(connection_profile_h profile,
+               int order, connection_address_family_e address_family, const char *dns_address);
+
+
+/**
+ * @brief Sets the Proxy type.
+ * @details If you set the Proxy type to #CONNECTION_PROXY_TYPE_AUTO or
+ *          #CONNECTION_PROXY_TYPE_MANUAL, then Proxy will be restored.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[in] type              The type of the proxy
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @see connection_update_profile()
+*/
+int connection_profile_set_proxy_type(connection_profile_h profile,
+               connection_proxy_type_e type);
+
+
+/**
+ * @brief Sets the Proxy address.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a proxy_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] proxy_address     The proxy address \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @see connection_update_profile()
+*/
+int connection_profile_set_proxy_address(connection_profile_h profile,
+               connection_address_family_e address_family, const char *proxy_address);
+
+
+/**
+ * @brief Called when the state of the profile is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] state             The state
+ * @param[in] user_data         The user data passed from the callback registration function
+ * @see connection_profile_set_state_changed_cb()
+ * @see connection_profile_unset_state_changed_cb()
+*/
+typedef void(*connection_profile_state_changed_cb)(connection_profile_state_e state,
+               void *user_data);
+
+
+/**
+ * @brief Sets the callback that is called when the state of profile is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @post connection_opened_cb() is invoked when the state of profile is changed.
+ * @see connection_profile_state_changed_cb()
+ * @see connection_profile_unset_state_changed_cb()
+*/
+int connection_profile_set_state_changed_cb(connection_profile_h profile,
+               connection_profile_state_changed_cb callback, void *user_data);
+
+
+/**
+ * @brief Unsets the callback that is called when the state of profile is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile           The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @see connection_profile_state_changed_cb()
+ * @see connection_profile_set_state_changed_cb()
+*/
+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_NOT_INITIALIZED       Not initialized
+ * @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_NOT_INITIALIZED    Not initialized
+ * @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_NOT_INITIALIZED    Not initialized
+ * @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 \n
+ *                            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_NOT_INITIALIZED    Not initialized
+ * @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_NOT_INITIALIZED    Not initialized
+ * @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);
+
+/**
+* @}
+*/
+
+
+/**
+* @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE
+* @{
+*/
+
+
+/**
+ * @brief Gets the ESSID (Extended Service Set Identifier).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a essid using free().
+ * @param[in] profile         The profile handle
+ * @param[out] essid          The ESSID
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_wifi_essid(connection_profile_h profile, char **essid);
+
+
+/**
+ * @brief Gets the BSSID (Basic Service Set Identifier).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a bssid using free().
+ * @param[in] profile         The profile handle
+ * @param[out] bssid          The BSSID
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_wifi_bssid(connection_profile_h profile, char **bssid);
+
+
+/**
+ * @brief Gets the RSSI.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] rssi           The RSSI
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_wifi_rssi(connection_profile_h profile, int *rssi);
+
+
+/**
+ * @brief Gets the frequency (MHz).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] frequency      The frequency
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_wifi_frequency(connection_profile_h profile, int *frequency);
+
+
+/**
+ * @brief Gets the max speed (Mbps).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] max_speed      The max speed
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_wifi_max_speed(connection_profile_h profile, int *max_speed);
+
+
+/**
+ * @brief Gets the security type of Wi-Fi.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of Wi-Fi security
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_wifi_security_type(connection_profile_h profile,
+               connection_wifi_security_type_e *type);
+
+
+/**
+ * @brief Gets the encryption type of Wi-Fi.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of Wi-Fi security
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_wifi_encryption_type(connection_profile_h profile,
+               connection_wifi_encryption_type_e *type);
+
+
+/**
+ * @brief Checks whether passphrase is required.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks This function is not valid if security type is #CONNECTION_WIFI_SECURITY_TYPE_EAP.
+ * @param[in] profile         The profile handle
+ * @param[out] required       @c true if a passphrase is required,
+ *                            otherwise @c false if a passphrase is not required
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_is_wifi_passphrase_required(connection_profile_h profile,
+               bool *required);
+
+
+/**
+ * @brief Sets the passphrase of the Wi-Fi WPA.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a passphrase using free().
+ * @param[in] profile         The profile handle
+ * @param[in] passphrase      The passphrase of Wi-Fi security
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @see connection_update_profile()
+*/
+int connection_profile_set_wifi_passphrase(connection_profile_h profile,
+               const char *passphrase);
+
+
+/**
+ * @brief Checks whether the WPS (Wi-Fi Protected Setup) is supported.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks If WPS is supported, you can connect the access point with WPS by wifi_connect_with_wps().
+ * @param[in] profile         The profile handle
+ * @param[out] supported      @c true if WPS is supported,
+ *                            otherwise @c false if WPS is not supported
+ * @return @c 0 on success,
+ *         otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_is_wifi_wps_supported(connection_profile_h profile,
+               bool *supported);
+
+
+/**
+* @}
+*/
+
+
+/**
+* @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE
+* @{
+*/
+
+
+/**
+ * @brief Gets the service type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of the cellular service
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_cellular_service_type(connection_profile_h profile,
+               connection_cellular_service_type_e *type);
+
+
+/**
+ * @brief Gets the APN (access point name).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a apn using free().
+ * @param[in] profile         The profile handle
+ * @param[out] apn            The name of the APN
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_cellular_apn(connection_profile_h profile, char **apn);
+
+
+/**
+ * @brief Gets the authentication information.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a user_name and @a password using free().
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of the authentication
+ * @param[out] user_name      The user name
+ * @param[out] password       The password
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_cellular_auth_info(connection_profile_h profile,
+               connection_cellular_auth_type_e *type, char **user_name, char **password);
+
+
+/**
+ * @brief Gets the home URL.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a home_url using free().
+ * @param[in] profile         The profile handle
+ * @param[out] home_url       The home URL
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_get_cellular_home_url(connection_profile_h profile,
+               char **home_url);
+
+
+/**
+ * @brief Gets the cellular pdn type.
+ * @since_tizen 3.0
+ * @param[in] profile         The profile handle
+ * @param[out] type           The cellular pdn type
+ * @return @c 0 on success,
+ *         otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_cellular_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e *type);
+
+
+/**
+ * @brief Gets the cellular roam pdn type.
+ * @since_tizen 3.0
+ * @param[in] profile         The profile handle
+ * @param[out] type           The cellular pdn type
+ * @return @c 0 on success,
+ *         otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_cellular_roam_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e *type);
+
+
+/**
+ * @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,
+ *                            otherwise @c false if it is not roaming
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_is_cellular_roaming(connection_profile_h profile,
+               bool *is_roaming);
+
+
+/**
+ * @brief Checks whether the profile is hidden.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] is_hidden      @c true if the profile is in hidden,
+ *                            otherwise @c false if the profile is not hidden
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_is_cellular_hidden(connection_profile_h profile,
+               bool *is_hidden);
+
+
+/**
+ * @brief Checks whether the profile is editable.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] is_editable    @c true if the profile is editable,
+ *                            otherwise @c false if the profile is not editable
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_is_cellular_editable(connection_profile_h profile,
+               bool *is_editable);
+
+
+/**
+ * @brief Checks whether the profile is default.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[out] is_default     @c true if the profile is default,
+ *                            otherwise @c false if the profile is not default
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+*/
+int connection_profile_is_cellular_default(connection_profile_h profile,
+               bool *is_default);
+
+
+/**
+ * @brief Sets the service type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile         The profile handle
+ * @param[in] service_type    The type of cellular service
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @see connection_update_profile()
+*/
+int connection_profile_set_cellular_service_type(connection_profile_h profile,
+               connection_cellular_service_type_e service_type);
+
+
+/**
+ * @brief Sets the APN (Access Point Name).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a apn using free().
+ * @param[in] profile         The profile handle
+ * @param[in] apn             The name of APN
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @see connection_update_profile()
+*/
+int connection_profile_set_cellular_apn(connection_profile_h profile, const char *apn);
+
+
+/**
+ * @brief Sets the Authentication information.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a user_name using free().
+ * @param[in] profile         The profile handle
+ * @param[in] type            The type of the authentication
+ * @param[in] user_name       The user name
+ * @param[in] password        The password
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @see connection_update_profile()
+*/
+int connection_profile_set_cellular_auth_info(connection_profile_h profile,
+               connection_cellular_auth_type_e type, const char *user_name, const char *password);
+
+
+/**
+ * @brief Sets the home URL.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a home_url using free().
+ * @param[in] profile         The profile handle
+ * @param[in] home_url        The home URL
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @see connection_update_profile()
+*/
+int connection_profile_set_cellular_home_url(connection_profile_h profile,
+               const char *home_url);
+
+
+/**
+ * @brief Sets the cellular pdn type.
+ * @since_tizen 3.0
+ * @param[in] profile         The profile handle
+ * @param[in] type            The cellular pdn type
+ * @return @c 0 on success,
+ *         otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_cellular_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e type);
+
+
+/**
+ * @brief Sets the cellular roam pdn type.
+ * @since_tizen 3.0
+ * @param[in] profile         The profile handle
+ * @param[in] type            The cellular pdn type
+ * @return @c 0 on success,
+ *         otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED    Not initialized
+ * @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_cellular_roam_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e type);
+
+
+/**
+* @}
+*/
+
+
+#ifdef __cplusplus
+}
+
+
+#endif
+
+
+#endif /* __TIZEN_NETWORK_CONNECTION_PROFILE_H__ */
diff --git a/include/tv/net_connection.h b/include/tv/net_connection.h
new file mode 100755 (executable)
index 0000000..90ab481
--- /dev/null
@@ -0,0 +1,1365 @@
+/*
+ * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_NET_CONNECTION_H__
+#define __TIZEN_NETWORK_NET_CONNECTION_H__
+
+
+#include <connection_profile.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/**
+ * @file net_connection.h
+ */
+
+
+/**
+ * @addtogroup CAPI_NETWORK_CONNECTION_MANAGER_MODULE
+ * @{
+ */
+
+
+/**
+ * @brief The connection handle.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef void* connection_h;
+
+
+/**
+ * @brief The profiles iterator handle.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef void* connection_profile_iterator_h;
+
+
+/**
+ * @brief Enumeration for connection type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       CONNECTION_TYPE_DISCONNECTED = 0,  /**< Disconnected */
+       CONNECTION_TYPE_WIFI = 1,          /**< Wi-Fi type */
+       CONNECTION_TYPE_CELLULAR = 2,      /**< Cellular type */
+       CONNECTION_TYPE_ETHERNET = 3,      /**< Ethernet type */
+       CONNECTION_TYPE_BT = 4,            /**< Bluetooth type */
+       CONNECTION_TYPE_NET_PROXY,         /**< Proxy type for Internet connection (Since 3.0) */
+} connection_type_e;
+
+
+/**
+ * @brief Enumeration for cellular network state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       CONNECTION_CELLULAR_STATE_OUT_OF_SERVICE = 0,      /**< Out of service */
+       CONNECTION_CELLULAR_STATE_FLIGHT_MODE = 1,         /**< Flight mode */
+       CONNECTION_CELLULAR_STATE_ROAMING_OFF = 2,         /**< Roaming is turned off */
+       CONNECTION_CELLULAR_STATE_CALL_ONLY_AVAILABLE = 3, /**< Call is only available */
+       CONNECTION_CELLULAR_STATE_AVAILABLE = 4,           /**< Available but not connected yet */
+       CONNECTION_CELLULAR_STATE_CONNECTED = 5,           /**< Connected */
+} connection_cellular_state_e;
+
+
+/**
+ * @brief Enumeration for Wi-Fi state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       CONNECTION_WIFI_STATE_DEACTIVATED = 0,   /**< Wi-Fi is deactivated */
+       CONNECTION_WIFI_STATE_DISCONNECTED = 1,  /**< Disconnected */
+       CONNECTION_WIFI_STATE_CONNECTED = 2,     /**< Connected */
+} connection_wifi_state_e;
+
+
+/**
+ * @brief Enumeration for ethernet state.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ */
+typedef enum {
+       CONNECTION_ETHERNET_STATE_DEACTIVATED = 0,  /**< There is no Ethernet profile to open */
+       CONNECTION_ETHERNET_STATE_DISCONNECTED = 1, /**< Disconnected */
+       CONNECTION_ETHERNET_STATE_CONNECTED = 2,    /**< Connected */
+} connection_ethernet_state_e;
+
+
+/**
+ * @brief Enumeration for Bluetooth state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       CONNECTION_BT_STATE_DEACTIVATED = 0,   /**< There is no Bluetooth profile to open */
+       CONNECTION_BT_STATE_DISCONNECTED = 1,  /**< Disconnected */
+       CONNECTION_BT_STATE_CONNECTED = 2,     /**< Connected */
+} connection_bt_state_e;
+
+
+/**
+ * @brief Enumeration for connection iterator type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       CONNECTION_ITERATOR_TYPE_REGISTERED = 0, /**< The iterator of the registered profile */
+       CONNECTION_ITERATOR_TYPE_CONNECTED = 1,  /**< The iterator of the connected profile */
+       CONNECTION_ITERATOR_TYPE_DEFAULT = 2,    /**< The iterator of the default profile */
+} connection_iterator_type_e;
+
+
+/**
+ * @brief Enumeration for reset profile type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+*/
+typedef enum {
+       /**
+        * Initialized with the default profile defined by csc
+        */
+       CONNECTION_RESET_DEFAULT_PROFILE = 0,
+
+       /**
+        * Remove all profiles
+        */
+       CONNECTION_RESET_CLEAR_PROFILE = 1,
+
+} connection_reset_option_e;
+
+
+/**
+ * @brief Enumeration for the attached or detached state of ethernet cable.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ */
+typedef enum {
+       CONNECTION_ETHERNET_CABLE_DETACHED = 0,   /**< Ethernet cable is detached */
+       CONNECTION_ETHERNET_CABLE_ATTACHED = 1,   /**< Ethernet cable is attached */
+} connection_ethernet_cable_state_e;
+
+
+/**
+ * @brief Enumeration for connection errors.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       /**
+        * Successful
+        */
+       CONNECTION_ERROR_NONE = TIZEN_ERROR_NONE,
+
+       /**
+        * Invalid parameter
+        */
+       CONNECTION_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER,
+
+       /**
+        * Out of memory error
+        */
+       CONNECTION_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY,
+
+       /**
+        * Invalid operation
+        */
+       CONNECTION_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION,
+
+       /**
+        * Address family not supported
+        */
+       CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED = TIZEN_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED,
+
+       /**
+        * Now inprogress
+        */
+       CONNECTION_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS,
+
+       /**
+        * Permission denied
+        */
+       CONNECTION_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED,
+
+       /**
+        * Not supported
+        */
+       CONNECTION_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED,
+
+       /**
+        * Operation failed
+        */
+       CONNECTION_ERROR_OPERATION_FAILED = TIZEN_ERROR_CONNECTION|0x0401,
+
+       /**
+        * End of iteration
+        */
+       CONNECTION_ERROR_ITERATOR_END = TIZEN_ERROR_CONNECTION|0x0402,
+
+       /**
+        * There is no connection
+        */
+       CONNECTION_ERROR_NO_CONNECTION = TIZEN_ERROR_CONNECTION|0x0403,
+
+       /**
+        * Already exists
+        */
+       CONNECTION_ERROR_ALREADY_EXISTS = TIZEN_ERROR_CONNECTION|0x0404,
+
+       /**
+        * Operation is aborted
+        */
+       CONNECTION_ERROR_OPERATION_ABORTED = TIZEN_ERROR_CONNECTION|0x0405,
+
+       /**
+        * DHCP failed
+        */
+       CONNECTION_ERROR_DHCP_FAILED = TIZEN_ERROR_CONNECTION|0x0406,
+
+       /**
+        * Invalid key
+        */
+       CONNECTION_ERROR_INVALID_KEY = TIZEN_ERROR_CONNECTION|0x0407,
+
+       /**
+        * No reply
+        */
+       CONNECTION_ERROR_NO_REPLY = TIZEN_ERROR_CONNECTION|0x0408,
+
+       /**
+        * Already initialized (Since 5.0)
+        */
+       CONNECTION_ERROR_ALREADY_INITIALIZED = TIZEN_ERROR_CONNECTION|0x0409,
+
+       /**
+        * Not initialized (Since 5.0)
+        */
+       CONNECTION_ERROR_NOT_INITIALIZED = TIZEN_ERROR_CONNECTION|0x040A,
+
+} connection_error_e;
+
+/**
+ * @}
+*/
+
+
+/**
+ * @addtogroup CAPI_NETWORK_CONNECTION_STATISTICS_MODULE
+ * @{
+*/
+
+
+/**
+ * @brief Enumeration for statistics type.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ */
+typedef enum {
+       CONNECTION_STATISTICS_TYPE_LAST_RECEIVED_DATA = 0,  /**< Last received data */
+       CONNECTION_STATISTICS_TYPE_LAST_SENT_DATA = 1,      /**< Last sent data */
+       CONNECTION_STATISTICS_TYPE_TOTAL_RECEIVED_DATA = 2, /**< Total received data */
+       CONNECTION_STATISTICS_TYPE_TOTAL_SENT_DATA = 3,     /**< Total sent data */
+} connection_statistics_type_e;
+
+
+/**
+ * @}
+*/
+
+
+/**
+ * @addtogroup CAPI_NETWORK_CONNECTION_MANAGER_MODULE
+ * @{
+*/
+
+
+/**
+ * @brief Creates a handle for managing data connections.
+ * @details If you do not use this function and use other functions,
+ *          you will get the #CONNECTION_ERROR_NOT_INITIALIZED error.
+ *          If you put an invalid handle, you will get the #CONNECTION_ERROR_INVALID_PARAMETER error.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @remarks You must release @a connection using connection_destroy().
+ * @param[out] connection       The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_ALREADY_INITIALIZED   Already initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_destroy()
+ */
+int connection_create(connection_h* connection);
+
+
+/**
+ * @brief Destroys the connection handle.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_create()
+ */
+int connection_destroy(connection_h connection);
+
+
+/**
+ * @brief Called when the type of a connection is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] type              The type of the current network connection
+ * @param[in] user_data         The user data passed from the callback registration function
+ * @see connection_set_type_changed_cb()
+ * @see connection_unset_type_changed_cb()
+ */
+typedef void(*connection_type_changed_cb)(connection_type_e type, void* user_data);
+
+
+/**
+ * @brief Called when the address is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks @a ipv4_address @a ipv6_address should not be freed.
+ *          @a ipv4_address @a ipv6_address is available only in the callback.
+ *          To use outside the callback, make a copy.
+ * @param[in] ipv4_address      The IP address for IPv4
+ * @param[in] ipv6_address      The IP address for IPv6
+ * @param[in] user_data         The user data passed from the callback registration function
+ * @see connection_set_ip_address_changed_cb()
+ * @see connection_unset_ip_address_changed_cb()
+ * @see connection_set_proxy_address_changed_cb()
+ * @see connection_unset_proxy_address_changed_cb()
+ */
+typedef void(*connection_address_changed_cb)(const char* ipv4_address,
+               const char* ipv6_address, void* user_data);
+
+
+/**
+ * @brief Called when connection_set_default_cellular_service_profile_async() finishes.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] result            The result
+ * @param[in] user_data         The user data passed from connection_open_profile()
+ * @pre connection_set_default_cellular_service_profile_async() will invoke this callback function.
+ * @see connection_set_default_cellular_service_profile_async()
+*/
+typedef void(*connection_set_default_cb)(connection_error_e result, void* user_data);
+
+/**
+ * @brief Called with an IPv6 address.
+ * @since_tizen 4.0
+ * @remarks   If @a ipv6_address is needed outside the callback, a copy should be made. \n
+ *            @a ipv6_address will be freed automatically after the execution of this callback.
+ * @param[in]  ipv6_address     The IPv6 address
+ * @param[in]  user_data        The user data passed from the foreach function
+ * @return  @c true to continue with the next iteration of the loop, \n
+ *          @c false to break out of the loop
+ * @pre  connection_foreach_ipv6_address() will invoke this callback.
+ * @see  connection_foreach_ipv6_address()
+ */
+typedef bool(*connection_ipv6_address_cb)(char *ipv6_address, void *user_data);
+
+/**
+ * @brief Gets the type of the current profile for data connection.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @param[out] type             The type of the network
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_type(connection_h connection, connection_type_e* type);
+
+
+/**
+ * @brief Gets the IP address of the current connection.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a ip_address using free().
+ * @param[in] connection        The connection handle
+ * @param[in] address_family    The address family
+ * @param[out] ip_address       The pointer to the IP address string
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_ip_address(connection_h connection,
+               connection_address_family_e address_family, char** ip_address);
+
+
+/**
+ * @brief Gets the proxy address of the current connection.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks You must release @a proxy using free().
+ * @param[in] connection        The connection handle
+ * @param[in] address_family    The address family
+ * @param[out] proxy            The proxy address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED                Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_proxy(connection_h connection,
+               connection_address_family_e address_family, char** proxy);
+
+
+/**
+ * @brief Gets the MAC address of the Wi-Fi or ethernet.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @remarks @a mac_addr must be released with free() by you.
+ * @param[in] connection        The handle of the connection
+ * @param[in] type              The type of current network connection
+ * @param[out] mac_addr         The MAC address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_INVALID_OPERATION     Invalid operation
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ */
+int connection_get_mac_address(connection_h connection,
+               connection_type_e type, char** mac_addr);
+
+
+/**
+ * @brief Gets if the current connection is metered.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @param[in] connection        The connection handle
+ * @param[out] is_metered       The value indicating whether it is metered
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_is_metered_network(connection_h connection, bool* is_metered);
+
+
+/**
+ * @brief Gets the state of cellular connection.
+ * @details The returned state is for the cellular connection state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @param[out] state            The state of the cellular connection
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_cellular_state(connection_h connection, connection_cellular_state_e* state);
+
+
+/**
+ * @brief Gets the state of the Wi-Fi.
+ * @details The returned state is for the Wi-Fi connection state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @param[in] connection        The connection handle
+ * @param[out] state            The state of Wi-Fi connection
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_wifi_state(connection_h connection, connection_wifi_state_e* state);
+
+
+/**
+ * @brief Gets the state of the Ethernet.
+ * @details The returned state is for the Ethernet connection state.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @param[in] connection        The connection handle
+ * @param[out] state            The state of Ethernet connection
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_ethernet_state(connection_h connection, connection_ethernet_state_e* state);
+
+/**
+ * @brief Checks for ethernet cable is attached or not.
+ * @details The returned state is for the ethernet cable state.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @param[in] connection        The handle of the connection
+ * @param[in] state             The state of ethernet cable
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ */
+int connection_get_ethernet_cable_state(connection_h connection,
+               connection_ethernet_cable_state_e *state);
+
+
+/**
+ * @deprecated Deprecated since 4.0. Use connection_ethernet_cable_state_changed_cb() instead.
+ * @brief Called when ethernet cable is plugged [in/out].
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @param[in] state             The state of ethernet cable
+ * @param[in] user_data         The user data passed to callback registration function
+ */
+typedef void(*connection_ethernet_cable_state_chaged_cb)
+               (connection_ethernet_cable_state_e state, void* user_data);
+
+
+/**
+ * @deprecated Deprecated since 4.0. Use connection_set_ethernet_cable_state_changed_cb() instead.
+ * @brief Sets callback for ethernet cable is plugged [in/out] event.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @param[in] connection        The connection handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_ethernet_cable_state_chaged_cb(connection_h connection,
+               connection_ethernet_cable_state_chaged_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+
+/**
+ * @deprecated Deprecated since 4.0. Use connection_unset_ethernet_cable_state_changed_cb() instead.
+ * @brief Unsets callback for ethernet cable is plugged [in/out] event.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @param[in] connection        The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_unset_ethernet_cable_state_chaged_cb(connection_h connection) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Called when ethernet cable is plugged [in/out].
+ * @since_tizen 4.0
+ * @param[in] state             The state of ethernet cable
+ * @param[in] user_data         The user data passed to callback registration function
+ */
+typedef void(*connection_ethernet_cable_state_changed_cb)(
+               connection_ethernet_cable_state_e state, void* user_data);
+
+
+/**
+ * @brief Sets callback for ethernet cable is plugged [in/out] event.
+ * @since_tizen 4.0
+ * @param[in] connection        The connection handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_ethernet_cable_state_changed_cb(connection_h connection,
+               connection_ethernet_cable_state_changed_cb callback, void *user_data);
+
+
+/**
+ * @brief Unsets callback for ethernet cable is plugged [in/out] event.
+ * @since_tizen 4.0
+ * @param[in] connection        The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_unset_ethernet_cable_state_changed_cb(connection_h connection);
+
+
+/**
+ * @brief Gets the state of the Bluetooth.
+ * @details The returned state is for the Bluetooth connection state.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @param[in] connection        The connection handle
+ * @param[out] state            The state of the Bluetooth connection
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_bt_state(connection_h connection, connection_bt_state_e* state);
+
+
+/**
+ * @brief Sets the callback that is called when the type of the current connection is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_type_changed_cb(connection_h connection,
+               connection_type_changed_cb callback, void* user_data);
+
+
+/**
+ * @brief Unsets the callback that is called when the type of current connection is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_unset_type_changed_cb(connection_h connection);
+
+
+/**
+ * @brief Sets the callback that is called when the IP address is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_ip_address_changed_cb(connection_h connection,
+               connection_address_changed_cb callback, void* user_data);
+
+
+/**
+ * @brief Unsets the callback that is called when the IP address is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_unset_ip_address_changed_cb(connection_h connection);
+
+
+/**
+ * @brief Sets the callback that is called when the proxy address is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_proxy_address_changed_cb(connection_h connection,
+               connection_address_changed_cb callback, void* user_data);
+
+
+/**
+ * @brief Unsets the callback that is called when the proxy address is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] connection        The connection handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_unset_proxy_address_changed_cb(connection_h connection);
+
+
+/**
+ * @brief Adds a new profile which is created by connection_profile_create().
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.profile
+ * @remarks You can only add a profile of the cellular type.
+ * @param[in] connection        The connection handle
+ * @param[in] profile           The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_add_profile(connection_h connection, connection_profile_h profile);
+
+
+/**
+ * @brief Removes an existing profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.profile \n
+ *            %http://tizen.org/privilege/network.get
+ * @remarks This function needs both privileges.
+ * @param[in] connection        The connection handle
+ * @param[in] profile           The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_remove_profile(connection_h connection, connection_profile_h profile);
+
+
+/**
+ * @brief Updates an existing profile.
+ * @details When a profile is changed, these changes will be not applied to the
+ *          Connection Manager immediately.
+ *          When you call this function, your changes affect the Connection Manager
+ *          and the existing profile is updated.
+ *          In addition, the existing profile will be updated if you call connection_open_profile().
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.profile \n
+ *            %http://tizen.org/privilege/network.get
+ * @remarks This function needs both privileges.
+ * @param[in] connection        The connection handle
+ * @param[in] profile           The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_open_profile()
+ */
+int connection_update_profile(connection_h connection, connection_profile_h profile);
+
+
+/**
+ * @brief Gets a profiles iterator.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @remarks You must release @a profile_iterator using connection_destroy().
+ * @param[in] connection        The connection handle
+ * @param[in] type              The type of the connection iterator
+ * @param[out] profile_iterator The iterator of profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_profile_iterator(connection_h connection,
+               connection_iterator_type_e type, connection_profile_iterator_h* profile_iterator);
+
+
+/**
+ * @brief Moves the profile iterator to the next position and gets a profile handle.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile_iterator  The iterator of profile
+ * @param[out] profile          The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_ITERATOR_END          End of iteration
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_profile_iterator_next(connection_profile_iterator_h profile_iterator,
+               connection_profile_h* profile);
+
+
+/**
+ * @brief Checks whether the next element of a profile iterator exists or not.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *          Error codes are described in Exception section.
+ * @param[in] profile_iterator  The iterator of profile
+ * @return @c true if next element exists,
+ *         otherwise @c false if next element doesn't exist
+ * @exception #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED          Not initialized
+ * @exception #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see get_last_result()
+ */
+bool connection_profile_iterator_has_next(connection_profile_iterator_h profile_iterator);
+
+
+/**
+ * @brief Destroys a profiles iterator.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] profile_iterator  The iterator of the profile
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_destroy_profile_iterator(connection_profile_iterator_h profile_iterator);
+
+
+/**
+ * @brief Gets the name of the default profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @remarks You must release @a profile using connection_profile_destroy().
+ * @param[in] connection        The connection handle
+ * @param[out] profile          The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NO_CONNECTION         There is no connection
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_current_profile(connection_h connection, connection_profile_h* profile);
+
+
+/**
+ * @brief Gets the default profile which provides the given cellular service.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @remarks You must release @a profile using connection_profile_destroy().
+ * @param[in] connection        The connection handle
+ * @param[in] type              The type of cellular service \n
+ *            #CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION is not permitted
+ * @param[out] profile          The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_default_cellular_service_profile(connection_h connection,
+               connection_cellular_service_type_e type, connection_profile_h* profile);
+
+
+/**
+ * @brief Sets the default profile which provides the given cellular service.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.profile \n
+ *            %http://tizen.org/privilege/network.get
+ * @remarks This function needs both privileges.
+ * @param[in] connection        The connection handle
+ * @param[in] type              The type of cellular service \n
+ *            Only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and
+ *            #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted
+ * @param[in] profile           The profile handle
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_default_cellular_service_profile(connection_h connection,
+               connection_cellular_service_type_e type, connection_profile_h profile);
+
+
+/**
+ * @brief Sets the default profile which provides the given cellular service, asynchronously.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.profile \n
+ *               %http://tizen.org/privilege/network.get
+ * @remarks This function needs both privileges.
+ * @param[in] connection        The connection handle
+ * @param[in] type              The type of cellular service \n
+ *            Only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and
+ *            #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted
+ * @param[in] profile The profile handle
+ * @param[in] callback The callback function to be called
+ * @param[in] user_data The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_set_default_cellular_service_profile_async(connection_h connection,
+               connection_cellular_service_type_e type, connection_profile_h profile,
+               connection_set_default_cb callback, void* user_data);
+
+
+/**
+ * @brief Called after connection_open_profile() is finished.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] result            The result
+ * @param[in] user_data         The user data passed from connection_open_profile()
+ * @pre connection_open_profile() will invoke this callback function.
+ * @see connection_open_profile()
+*/
+typedef void(*connection_opened_cb)(connection_error_e result, void* user_data);
+
+
+/**
+ * @brief Called after connection_close_profile() is finished.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] result            The result
+ * @param[in] user_data         The user data passed from connection_close_profile()
+ * @pre connection_close_profile() will invoke this callback function.
+ * @see connection_close_profile()
+*/
+typedef void(*connection_closed_cb)(connection_error_e result, void* user_data);
+
+
+/**
+ * @brief Called after connection_reset_profile() is finished.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] result            The result
+ * @param[in] user_data         The user data passed from connection_reset_profile()
+ * @pre connection_reset_profile() will invoke this callback function.
+ * @see connection_reset_profile()
+*/
+typedef void(*connection_reset_cb)(connection_error_e result, void* user_data);
+
+
+/**
+ * @brief Opens a connection of profile, asynchronously.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.set \n
+ *            %http://tizen.org/privilege/network.get
+ * @remarks This function needs both privileges.
+ * @param[in] connection        The connection handle
+ * @param[in] profile           The profile handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @post connection_opened_cb() will be invoked.
+ * @see connection_opened_cb()
+ * @see connection_close_profile()
+ * @see connection_profile_set_state_changed_cb()
+ * @see connection_profile_unset_state_changed_cb()
+ * @see connection_profile_state_changed_cb()
+ */
+int connection_open_profile(connection_h connection, connection_profile_h profile,
+               connection_opened_cb callback, void* user_data);
+
+
+/**
+ * @brief Closes a connection of profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.set
+ * @param[in] connection        The connection handle
+ * @param[in] profile           The profile handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @post connection_closed_cb() will be invoked.
+ * @see connection_closed_cb()
+ * @see connection_open_profile()
+ * @see connection_profile_set_state_changed_cb()
+ * @see connection_profile_unset_state_changed_cb()
+ * @see connection_profile_state_changed_cb()
+ */
+int connection_close_profile(connection_h connection, connection_profile_h profile,
+               connection_closed_cb callback, void* user_data);
+
+
+/**
+ * @brief Resets the cellular profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.profile \n
+ *               %http://tizen.org/privilege/network.get
+ * @remarks This function needs both privileges.
+ * @param[in] connection        The connection handle
+ * @param[in] type              The type of reset
+ * @param[in] id                The subscriber identity module ID to reset
+ *                              (The sim index starts from 0.)
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @post connection_reset_cb() will be invoked.
+*/
+int connection_reset_profile(connection_h connection, connection_reset_option_e type,
+               int id, connection_reset_cb callback, void *user_data);
+
+
+/**
+ * @platform
+ * @deprecated Deprecated since 4.0. Use connection_add_route_entry() instead.
+ * @brief Adds a IPv4 route to the routing table.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/network.route
+ * @remarks Since 6.0, the required privilege and level of this function has changed.
+ * @param[in] connection        The connection handle
+ * @param[in] interface_name    The name of network interface
+ * @param[in] host_address      The IP address of the host
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_ALREADY_EXISTS        Already exists
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_get_network_interface_name()
+ */
+int connection_add_route(connection_h connection, const char* interface_name,
+               const char* host_address) TIZEN_DEPRECATED_API;
+
+
+/**
+ * @platform
+ * @deprecated Deprecated since 4.0. Use connection_remove_route_entry() instead.
+ * @brief Removes a IPv4 route from the routing table.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/network.route
+ * @remarks Since 6.0, the required privilege and level of this function has changed.
+ * @param[in] connection        The connection handle
+ * @param[in] interface_name    The name of network interface
+ * @param[in] host_address      The IP address of the host
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_get_network_interface_name()
+ */
+int connection_remove_route(connection_h connection, const char* interface_name,
+               const char* host_address) TIZEN_DEPRECATED_API;
+
+
+/**
+ * @platform
+ * @deprecated Deprecated since 4.0. Use connection_add_route_entry() instead.
+ * @brief Adds a IPv6 route to the routing table.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
+ * @since_tizen 2.3.1
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/network.route
+ * @remarks Since 6.0, the required privilege and level of this function has changed.
+ * @param[in] connection        The connection handle
+ * @param[in] interface_name    The name of network interface
+ * @param[in] host_address      The IP address of the host
+ * @param[in] gateway           The gateway address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_ALREADY_EXISTS        Already exists
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_get_network_interface_name()
+ */
+int connection_add_route_ipv6(connection_h connection, const char *interface_name,
+               const char *host_address, const char * gateway) TIZEN_DEPRECATED_API;
+
+
+/**
+ * @platform
+ * @deprecated Deprecated since 4.0. Use connection_remove_route_entry() instead.
+ * @brief Removes a IPV6 route from the routing table.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
+ * @since_tizen 2.3.1
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/network.route
+ * @remarks Since 6.0, the required privilege and level of this function has changed.
+ * @param[in] connection        The connection handle
+ * @param[in] interface_name    The name of network interface
+ * @param[in] host_address      The IP address of the host
+ * @param[in] gateway           The gateway address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_get_network_interface_name()
+ */
+int connection_remove_route_ipv6(connection_h connection, const char *interface_name,
+               const char *host_address, const char * gateway) TIZEN_DEPRECATED_API;
+
+/**
+ * @platform
+ * @brief Adds a route to the routing table.
+ * @details You can get the @a interface_name from \n
+ *          connection_profile_get_network_interface_name() of opened profile.
+ * @since_tizen 4.0
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/network.route
+ * @remarks Since 6.0, the required privilege and level of this function has changed.
+ * @param[in] connection        The connection handle
+ * @param[in] address_family    The address family
+ * @param[in] interface_name    The name of network interface
+ * @param[in] host_address      The IP address of the host (e.g., single IP address such as
+ *            163.152.10.2,192.168.1.2), group's IP address (e.g., 163.152.10.0, 192.168.0.0)
+ *            is not allowed
+ * @param[in] gateway           The gateway address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_ALREADY_EXISTS        Already exists
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_get_network_interface_name()
+ */
+int connection_add_route_entry(connection_h connection,
+               connection_address_family_e address_family, const char *interface_name,
+               const char *host_address, const char *gateway);
+
+/**
+ * @platform
+ * @brief Removes a route from the routing table.
+ * @details You can get the @a interface_name from \n
+ *          connection_profile_get_network_interface_name() of opened profile.
+ * @since_tizen 4.0
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/network.route
+ * @remarks Since 6.0, the required privilege and level of this function has changed.
+ * @param[in] connection        The connection handle
+ * @param[in] address_family    The address family
+ * @param[in] interface_name    The name of network interface
+ * @param[in] host_address      The IP address of the host (e.g., single IP address such as
+ *            163.152.10.2,192.168.1.2), group's IP address (e.g., 163.152.10.0, 192.168.0.0)
+ *            is not allowed
+ * @param[in] gateway           The gateway address
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @see connection_profile_get_network_interface_name()
+ */
+int connection_remove_route_entry(connection_h connection,
+               connection_address_family_e address_family, const char *interface_name,
+               const char *host_address, const char *gateway);
+
+/**
+ * @brief Gets all IPv6 addresses assigned to the network interface.
+ * @since_tizen 4.0
+ * @param[in] connection       The connection handle
+ * @param[in] connection_type  The connection type
+ * @param[in] callback         The callback to be called for each IPv6 address
+ * @param[in] user_data        The user data passed to the callback function
+ * @return 0 on success, otherwise negative error value.
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ */
+int connection_foreach_ipv6_address(connection_h connection, connection_type_e connection_type,
+               connection_ipv6_address_cb callback, void *user_data);
+
+/**
+ * @}
+*/
+
+
+/**
+ * @addtogroup CAPI_NETWORK_CONNECTION_STATISTICS_MODULE
+ * @{
+*/
+
+
+/**
+ * @brief Gets the statistics information.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.get
+ * @param[in] connection The connection handle
+ * @param[in] connection_type   The type of connection \n
+ *            Only #CONNECTION_TYPE_WIFI and #CONNECTION_TYPE_CELLULAR are supported
+ * @param[in] statistics_type   The type of statistics
+ * @param[out] size             The received data size of the last cellular packet data connection (bytes)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_get_statistics(connection_h connection, connection_type_e connection_type,
+               connection_statistics_type_e statistics_type, long long* size);
+
+
+/**
+ * @brief Resets the statistics information.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.set
+ * @param[in] connection        The connection handle
+ * @param[in] connection_type   The type of connection \n
+ *            Only #CONNECTION_TYPE_WIFI and #CONNECTION_TYPE_CELLULAR are supported
+ * @param[in] statistics_type   The type of statistics
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ */
+int connection_reset_statistics(connection_h connection, connection_type_e connection_type,
+               connection_statistics_type_e statistics_type);
+/**
+ * @}
+*/
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __TIZEN_NETWORK_NET_CONNECTION_H__ */
index 5f50351..e458ba9 100755 (executable)
@@ -96,6 +96,7 @@ popd
 
 %files devel
 %{_includedir}/network/*.h
+%{_includedir}/tv/network/*.h
 %{_libdir}/pkgconfig/*.pc
 %{_libdir}/libcapi-network-connection.so