INetworkManagementService.aidl revision 59b1a4ede7032c1b4d897e13dd4ede09b5e14743
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; 2259b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwaltimport android.net.RouteInfo; 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 /** 6159b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt * Retrieves the network routes currently configured on the specified 6259b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt * interface 6359b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt */ 6459b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt RouteInfo[] getRoutes(String iface); 6559b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt 6659b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt /** 6759b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt * Add the specified route to the interface. 6859b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt */ 6959b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt void addRoute(String iface, in RouteInfo route); 7059b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt 7159b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt /** 7259b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt * Remove the specified route from the interface. 7359b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt */ 7459b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt void removeRoute(String iface, in RouteInfo route); 7559b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt 7659b1a4ede7032c1b4d897e13dd4ede09b5e14743Robert Greenwalt /** 77873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Shuts down the service 78873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 79873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void shutdown(); 80873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 81873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 82873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** TETHERING RELATED 83873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat **/ 84873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 85873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 86873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 87873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns true if IP forwarding is enabled 88873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 89873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat boolean getIpForwardingEnabled(); 90873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 91873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 92873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Enables/Disables IP Forwarding 93873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 94873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void setIpForwardingEnabled(boolean enabled); 95873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 96873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 97873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Start tethering services with the specified dhcp server range 98bfb7bfa53847832db2a3eb05e5eff7cb974c3c7aRobert Greenwalt * arg is a set of start end pairs defining the ranges. 99873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 100bfb7bfa53847832db2a3eb05e5eff7cb974c3c7aRobert Greenwalt void startTethering(in String[] dhcpRanges); 101873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 102873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 103873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Stop currently running tethering services 104873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 105873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void stopTethering(); 106873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 107873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 108873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns true if tethering services are started 109873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 110873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat boolean isTetheringStarted(); 111873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 112873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 113873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Tethers the specified interface 114873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 115873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void tetherInterface(String iface); 116873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 117873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 118873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Untethers the specified interface 119873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 120873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void untetherInterface(String iface); 121873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 122873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 123873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns a list of currently tethered interfaces 124873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 125873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] listTetheredInterfaces(); 126873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 127873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 128873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Sets the list of DNS forwarders (in order of priority) 129873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 130873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void setDnsForwarders(in String[] dns); 131873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 132873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 133873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns the list of DNS fowarders (in order of priority) 134873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 135873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] getDnsForwarders(); 136873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 137873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 138873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Enables Network Address Translation between two interfaces. 139873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * The address and netmask of the external interface is used for 140873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * the NAT'ed network. 141873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 142873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void enableNat(String internalInterface, String externalInterface); 143873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 144873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 145873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Disables Network Address Translation between two interfaces. 146873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 147873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void disableNat(String internalInterface, String externalInterface); 14872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 14972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 15072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat ** PPPD 15172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat **/ 15272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 15372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 15472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Returns the list of currently known TTY devices on the system 15572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 15672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat String[] listTtys(); 15772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 15872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 15972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Attaches a PPP server daemon to the specified TTY with the specified 16072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * local/remote addresses. 16172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 162d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt void attachPppd(String tty, String localAddr, String remoteAddr, String dns1Addr, 163d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String dns2Addr); 16472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 16572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 16672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Detaches a PPP server daemon from the specified TTY. 16772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 16872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat void detachPppd(String tty); 16972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 170ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt /** 171ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt * Turn on USB RNDIS support - this will turn off thinks like adb/mass-storage 172ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt */ 173ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt void startUsbRNDIS(); 174ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt 175ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt /** 176ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt * Turn off USB RNDIS support 177ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt */ 178ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt void stopUsbRNDIS(); 179ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt 180ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt /** 181ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt * Check the status of USB RNDIS support 182ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt */ 183ce1200d42c46ae5d3ec637587b07dfdc02ad21c0Robert Greenwalt boolean isUsbRNDISStarted(); 1845321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff 1855321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff /** 1865321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff * Start Wifi Access Point 1875321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff */ 188c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff void startAccessPoint(in WifiConfiguration wifiConfig, String wlanIface, String softapIface); 1895321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff 1905321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff /** 1915321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff * Stop Wifi Access Point 1925321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff */ 1935321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff void stopAccessPoint(); 1945321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff 195c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff /** 196c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff * Set Access Point config 197c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff */ 198c2f54c267b896cd1799d82be81e904a2b56c2f26Irfan Sheriff void setAccessPoint(in WifiConfiguration wifiConfig, String wlanIface, String softapIface); 19991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 20091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 20191cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Read number of bytes sent over an interface 20291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 20391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat long getInterfaceTxCounter(String iface); 20491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 20591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 20691cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Read number of bytes received over an interface 20791cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 20891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat long getInterfaceRxCounter(String iface); 20991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 21091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 211be23fba286e6772f2eb37ef25f252d7a73ef9dceSan Mehat * Configures bandwidth throttling on an interface 21291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 213f0db6e1853e929ae3b65501c31ee57c4dfbc767cSan Mehat void setInterfaceThrottle(String iface, int rxKbps, int txKbps); 21491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 21591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 21691cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Returns the currently configured RX throttle values 21791cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * for the specified interface 21891cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 21991cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat int getInterfaceRxThrottle(String iface); 22091cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat 22191cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat /** 22291cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * Returns the currently configured TX throttle values 22391cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat * for the specified interface 22491cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat */ 22591cac64cd010e6b4006fdd14b39dbc75778f20cbSan Mehat int getInterfaceTxThrottle(String iface); 226be23fba286e6772f2eb37ef25f252d7a73ef9dceSan Mehat 227873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat} 228