1bd0ce516d44c267629ac8ac4cc79abcce480706
[platform/core/connectivity/net-config.git] / include / wifi-netlink-scan.h
1 /*
2  * Network Configuration Module
3  *
4  * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #ifndef __NETCONFIG_WIFI_NETLINK_SCAN_H__
21 #define __NETCONFIG_WIFI_NETLINK_SCAN_H__
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #include "wifi.h"
28
29 #define NETCONFIG_SSID_LEN                      32
30 #define NETCONFIG_BSSID_LEN                     17
31 #define NETCONFIG_MAX_VSIE_LEN                  255
32
33 #define NL80211_CMD_SCAN_ABORTED                35
34 #define NL80211_CMD_GET_SCAN                    32
35 #define NL80211_CMD_TRIGGER_SCAN                33
36 #define NL80211_CMD_NEW_SCAN_RESULTS            34
37 #define NL80211_BSS_BSSID                       1
38 #define NL80211_BSS_FREQUENCY                   2
39 #define NL80211_BSS_INFORMATION_ELEMENTS        6
40 #define NL80211_BSS_SIGNAL_MBM                  7
41 #define NL80211_BSS_MAX                         15
42 #define NL80211_ATTR_BSS                        47
43 #define NL80211_ATTR_IFINDEX                    3
44 #define NL80211_ATTR_SCAN_SSIDS                 45
45 #define NL80211_ATTR_MAX                        221
46
47 struct bss_scan_info_t{
48         char bssid[NETCONFIG_BSSID_LEN+1];
49         char ssid[NETCONFIG_SSID_LEN+1];
50         char vsie[NETCONFIG_MAX_VSIE_LEN+1];
51         int ssid_len;
52         int freq;
53         int signal;
54 };
55
56 struct netconfig_netlink_scan_results {
57     int done;
58     int aborted;
59 };
60
61 struct netconfig_netlink_scan_handler_args {
62     const char *group;
63     int id;
64 };
65
66 typedef struct {
67         int id;
68         int if_index;
69         struct nl_sock *socket;
70         struct nl_msg *msg;
71 } netconfig_nl_global;
72
73 void __netconfig_notify_netlink_scan_done(void);
74 int handle_netlink_scan(Wifi *wifi, GDBusMethodInvocation *context);
75 int handle_netlink_specific_scan(Wifi *wifi, GDBusMethodInvocation *context, gchar *ssid);
76
77 #ifdef __cplusplus
78 }
79 #endif
80
81 #endif /* __NETCONFIG_WIFI_NETLINK_SCAN_H__ */