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