INetworkManagementService.aidl revision 9a13f36cddaad01350bdb5f000167811a1d753c9
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; 229a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkeyimport android.net.NetworkStats; 239ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriffimport android.net.wifi.WifiConfiguration; 24ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 25873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat/** 26873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * @hide 27873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 28873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehatinterface INetworkManagementService 29873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat{ 30873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 31873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** GENERAL 32873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat **/ 33873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 34873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 354d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat * Register an observer to receive events 364d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat */ 374d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat void registerObserver(INetworkManagementEventObserver obs); 384d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat 394d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat /** 404d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat * Unregister an observer from receiving events. 414d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat */ 424d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat void unregisterObserver(INetworkManagementEventObserver obs); 434d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat 444d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat /** 45873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns a list of currently known network interfaces 46873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 47873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] listInterfaces(); 48873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 49873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 50ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * Retrieves the specified interface config 51ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * 52ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat */ 53ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat InterfaceConfiguration getInterfaceConfig(String iface); 54ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 55ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat /** 56ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * Sets the configuration of the specified interface 57ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat */ 58ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat void setInterfaceConfig(String iface, in InterfaceConfiguration cfg); 59ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 60ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat /** 61873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Shuts down the service 62873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 63873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void shutdown(); 64873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 65873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 66873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** TETHERING RELATED 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 /** 1849a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey ** DATA USAGE RELATED 1859a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey **/ 1869a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey 1879a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey /** 1889a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey * Return global network statistics summarized at an interface level, 1899a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey * without any UID-level granularity. 19091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 1919a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey NetworkStats getNetworkStatsSummary(); 19291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 19391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 1949a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey * Return detailed network statistics with UID-level granularity, 1959a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey * including interface and tag details. 19691cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 1979a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey NetworkStats getNetworkStatsDetail(); 19891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 19991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 2009a13f36cddaad01350bdb5f000167811a1d753c9Jeff Sharkey * Configures bandwidth throttling on an interface. 20191cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 202f0db6e1853e929ae3b65501c31ee57c4dfbc767cSan Mehat void setInterfaceThrottle(String iface, int rxKbps, int txKbps); 20391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 20491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 20591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Returns the currently configured RX throttle values 20691cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * for the specified interface 20791cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 20891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat int getInterfaceRxThrottle(String iface); 20991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 21091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 21191cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Returns the currently configured TX throttle values 21291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * for the specified interface 21391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 21491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat int getInterfaceTxThrottle(String iface); 215be23fba286e6772f2eb37ef25f252d7a73ef9dceSan Mehat 216873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat} 217