INetworkManagementService.aidl revision be23fba286e6772f2eb37ef25f252d7a73ef9dce
1873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat/* //device/java/android/android/os/INetworkManagementService.aidl 2873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** 3873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** Copyright 2007, The Android Open Source Project 4873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** 5873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** Licensed under the Apache License, Version 2.0 (the "License"); 6873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** you may not use this file except in compliance with the License. 7873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** You may obtain a copy of the License at 8873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** 9873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** http://www.apache.org/licenses/LICENSE-2.0 10873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** 11873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** Unless required by applicable law or agreed to in writing, software 12873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** distributed under the License is distributed on an "AS IS" BASIS, 13873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** See the License for the specific language governing permissions and 15873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat** limitations under the License. 16873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat*/ 17873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 18873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehatpackage android.os; 19873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 20ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehatimport android.net.InterfaceConfiguration; 214d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehatimport android.net.INetworkManagementEventObserver; 229ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriffimport android.net.wifi.WifiConfiguration; 23ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 24873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat/** 25873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * @hide 26873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 27873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehatinterface INetworkManagementService 28873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat{ 29873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 30873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** GENERAL 31873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat **/ 32873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 33873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 344d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat * Register an observer to receive events 354d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat */ 364d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat void registerObserver(INetworkManagementEventObserver obs); 374d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat 384d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat /** 394d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat * Unregister an observer from receiving events. 404d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat */ 414d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat void unregisterObserver(INetworkManagementEventObserver obs); 424d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat 434d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat /** 44873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns a list of currently known network interfaces 45873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 46873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] listInterfaces(); 47873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 48873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 49ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * Retrieves the specified interface config 50ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * 51ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat */ 52ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat InterfaceConfiguration getInterfaceConfig(String iface); 53ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 54ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat /** 55ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * Sets the configuration of the specified interface 56ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat */ 57ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat void setInterfaceConfig(String iface, in InterfaceConfiguration cfg); 58ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 59ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat /** 60873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Shuts down the service 61873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 62873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void shutdown(); 63873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 64873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 65873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** TETHERING RELATED 66873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat **/ 67873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 68873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 69873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 70873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns true if IP forwarding is enabled 71873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 72873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat boolean getIpForwardingEnabled(); 73873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 74873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 75873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Enables/Disables IP Forwarding 76873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 77873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void setIpForwardingEnabled(boolean enabled); 78873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 79873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 80873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Start tethering services with the specified dhcp server range 81bfb7bfa53847832db2a3eb05e5eff7cb974c3c7aRobert Greenwalt * arg is a set of start end pairs defining the ranges. 82873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 83bfb7bfa53847832db2a3eb05e5eff7cb974c3c7aRobert Greenwalt void startTethering(in String[] dhcpRanges); 84873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 85873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 86873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Stop currently running tethering services 87873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 88873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void stopTethering(); 89873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 90873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 91873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns true if tethering services are started 92873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 93873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat boolean isTetheringStarted(); 94873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 95873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 96873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Tethers the specified interface 97873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 98873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void tetherInterface(String iface); 99873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 100873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 101873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Untethers the specified interface 102873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 103873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void untetherInterface(String iface); 104873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 105873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 106873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns a list of currently tethered interfaces 107873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 108873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] listTetheredInterfaces(); 109873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 110873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 111873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Sets the list of DNS forwarders (in order of priority) 112873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 113873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void setDnsForwarders(in String[] dns); 114873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 115873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 116873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns the list of DNS fowarders (in order of priority) 117873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 118873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] getDnsForwarders(); 119873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 120873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 121873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Enables Network Address Translation between two interfaces. 122873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * The address and netmask of the external interface is used for 123873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * the NAT'ed network. 124873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 125873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void enableNat(String internalInterface, String externalInterface); 126873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 127873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 128873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Disables Network Address Translation between two interfaces. 129873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 130873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void disableNat(String internalInterface, String externalInterface); 13172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 13272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 13372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat ** PPPD 13472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat **/ 13572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 13672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 13772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Returns the list of currently known TTY devices on the system 13872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 13972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat String[] listTtys(); 14072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 14172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 14272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Attaches a PPP server daemon to the specified TTY with the specified 14372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * local/remote addresses. 14472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 145d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt void attachPppd(String tty, String localAddr, String remoteAddr, String dns1Addr, 146d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String dns2Addr); 14772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 14872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 14972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Detaches a PPP server daemon from the specified TTY. 15072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 15172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat void detachPppd(String tty); 15272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 153ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt /** 154ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt * Turn on USB RNDIS support - this will turn off thinks like adb/mass-storage 155ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt */ 156ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt void startUsbRNDIS(); 157ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt 158ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt /** 159ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt * Turn off USB RNDIS support 160ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt */ 161ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt void stopUsbRNDIS(); 162ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt 163ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt /** 164ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt * Check the status of USB RNDIS support 165ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt */ 166ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt boolean isUsbRNDISStarted(); 1675321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff 1685321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff /** 1695321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff * Start Wifi Access Point 1705321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff */ 171c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff void startAccessPoint(in WifiConfiguration wifiConfig, String wlanIface, String softapIface); 1725321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff 1735321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff /** 1745321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff * Stop Wifi Access Point 1755321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff */ 1765321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff void stopAccessPoint(); 1775321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff 178c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff /** 179c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff * Set Access Point config 180c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff */ 181c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff void setAccessPoint(in WifiConfiguration wifiConfig, String wlanIface, String softapIface); 18291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 18391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 18491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Read number of bytes sent over an interface 18591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 18691cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat long getInterfaceTxCounter(String iface); 18791cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 18891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 18991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Read number of bytes received over an interface 19091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 19191cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat long getInterfaceRxCounter(String iface); 19291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 19391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 194be23fba286e6772f2eb37ef25f252d7a73ef9dceSan Mehat * Configures bandwidth throttling on an interface 19591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 196be23fba286e6772f2eb37ef25f252d7a73ef9dceSan Mehat void setInterfaceThrottle(String iface, int maxKbits, int rxKbps, int txKbps); 19791cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 19891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 19991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Returns the currently configured RX throttle values 20091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * for the specified interface 20191cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 20291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat int getInterfaceRxThrottle(String iface); 20391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 20491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 20591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Returns the currently configured TX throttle values 20691cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * for the specified interface 20791cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 20891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat int getInterfaceTxThrottle(String iface); 209be23fba286e6772f2eb37ef25f252d7a73ef9dceSan Mehat 210873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat} 211