INetworkManagementService.aidl revision 4d02d001ef6e06583e858e63e48d1aebf54ba28d
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; 22ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 23873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat/** 24873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * @hide 25873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 26873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehatinterface INetworkManagementService 27873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat{ 28873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 29873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** GENERAL 30873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat **/ 31873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 32873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 334d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat * Register an observer to receive events 344d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat */ 354d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat void registerObserver(INetworkManagementEventObserver obs); 364d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat 374d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat /** 384d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat * Unregister an observer from receiving events. 394d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat */ 404d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat void unregisterObserver(INetworkManagementEventObserver obs); 414d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat 424d02d001ef6e06583e858e63e48d1aebf54ba28dSan Mehat /** 43873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns a list of currently known network interfaces 44873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 45873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] listInterfaces(); 46873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 47873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 48ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * Retrieves the specified interface config 49ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * 50ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat */ 51ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat InterfaceConfiguration getInterfaceConfig(String iface); 52ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 53ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat /** 54ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat * Sets the configuration of the specified interface 55ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat */ 56ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat void setInterfaceConfig(String iface, in InterfaceConfiguration cfg); 57ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat 58ed4fc8acc52d89f1d4dec853a29288c6d06717c3San Mehat /** 59873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Shuts down the service 60873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 61873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void shutdown(); 62873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 63873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 64873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat ** TETHERING RELATED 65873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat **/ 66873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 67873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 68873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 69873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns true if IP forwarding is enabled 70873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 71873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat boolean getIpForwardingEnabled(); 72873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 73873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 74873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Enables/Disables IP Forwarding 75873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 76873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void setIpForwardingEnabled(boolean enabled); 77873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 78873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 79873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Start tethering services with the specified dhcp server range 80873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 81873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void startTethering(String dhcpRangeStart, String dhcpRangeEnd); 82873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 83873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 84873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Stop currently running tethering services 85873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 86873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void stopTethering(); 87873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 88873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 89873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns true if tethering services are started 90873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 91873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat boolean isTetheringStarted(); 92873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 93873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 94873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Tethers the specified interface 95873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 96873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void tetherInterface(String iface); 97873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 98873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 99873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Untethers the specified interface 100873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 101873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void untetherInterface(String iface); 102873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 103873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 104873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns a list of currently tethered interfaces 105873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 106873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] listTetheredInterfaces(); 107873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 108873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 109873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Sets the list of DNS forwarders (in order of priority) 110873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 111873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void setDnsForwarders(in String[] dns); 112873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 113873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 114873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Returns the list of DNS fowarders (in order of priority) 115873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 116873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat String[] getDnsForwarders(); 117873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 118873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 119873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Enables Network Address Translation between two interfaces. 120873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * The address and netmask of the external interface is used for 121873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * the NAT'ed network. 122873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 123873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void enableNat(String internalInterface, String externalInterface); 124873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat 125873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat /** 126873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * Disables Network Address Translation between two interfaces. 127873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */ 128873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat void disableNat(String internalInterface, String externalInterface); 12972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 13072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 13172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat ** PPPD 13272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat **/ 13372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 13472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 13572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Returns the list of currently known TTY devices on the system 13672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 13772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat String[] listTtys(); 13872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 13972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 14072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Attaches a PPP server daemon to the specified TTY with the specified 14172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * local/remote addresses. 14272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 14372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat void attachPppd(String tty, String localAddr, String remoteAddr); 14472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 14572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat /** 14672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat * Detaches a PPP server daemon from the specified TTY. 14772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat */ 14872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat void detachPppd(String tty); 14972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat 150873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat} 151