SoftapController.h revision 78dcb76aff7d3b9458374832a79688d36901127f
1ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross/* 2ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * Copyright (C) 2008 The Android Open Source Project 3ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 4ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * Licensed under the Apache License, Version 2.0 (the "License"); 5ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * you may not use this file except in compliance with the License. 6ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * You may obtain a copy of the License at 7ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 8ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * http://www.apache.org/licenses/LICENSE-2.0 9ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 10ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * Unless required by applicable law or agreed to in writing, software 11ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * distributed under the License is distributed on an "AS IS" BASIS, 12ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * See the License for the specific language governing permissions and 14ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * limitations under the License. 15ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross */ 16ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 17ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#ifndef _SOFTAP_CONTROLLER_H 18ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define _SOFTAP_CONTROLLER_H 19ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 20ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#include <linux/in.h> 21ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#include <net/if.h> 2233f96c66e9a1f2e266a75e5e84c091dffa6ef118Colin Cross#include <utils/List.h> 2333f96c66e9a1f2e266a75e5e84c091dffa6ef118Colin Cross 2433f96c66e9a1f2e266a75e5e84c091dffa6ef118Colin Cross#define SOFTAP_MAX_BUFFER_SIZE 4096 25ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define AP_BSS_START_DELAY 200000 268aef66d2125af8de7672a12895276802fcc1948fColin Cross#define AP_BSS_STOP_DELAY 500000 278aef66d2125af8de7672a12895276802fcc1948fColin Cross#define AP_SET_CFG_DELAY 500000 288aef66d2125af8de7672a12895276802fcc1948fColin Cross#define AP_DRIVER_START_DELAY 400000 298aef66d2125af8de7672a12895276802fcc1948fColin Cross 30ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossclass SoftapController { 31ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross char mBuf[SOFTAP_MAX_BUFFER_SIZE]; 32ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross char mIface[IFNAMSIZ]; 33ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross pid_t mPid; 34ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int mSock; 35ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 36ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int addParam(int pos, const char *cmd, const char *arg); 37ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int setCommand(char *iface, const char *fname, unsigned buflen=0); 388aef66d2125af8de7672a12895276802fcc1948fColin Crosspublic: 398aef66d2125af8de7672a12895276802fcc1948fColin Cross SoftapController(); 408aef66d2125af8de7672a12895276802fcc1948fColin Cross virtual ~SoftapController(); 418aef66d2125af8de7672a12895276802fcc1948fColin Cross 428aef66d2125af8de7672a12895276802fcc1948fColin Cross int startDriver(char *iface); 43ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int stopDriver(char *iface); 44ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int startSoftap(); 45ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int stopSoftap(); 46ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross bool isSoftapStarted(); 47ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int setSoftap(int argc, char *argv[]); 48ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross void generatePsk(char *ssid, char *passphrase, char *psk); 49ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int fwReloadSoftap(int argc, char *argv[]); 50ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross int clientsSoftap(char **retbuf); 51ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross}; 52ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 53ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#endif 54ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross