INetworkManagementService.aidl revision 72759df749bb8557269db86c2e3b2a8a0343cc26
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
20873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat/**
21873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat * @hide
22873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat */
23873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehatinterface INetworkManagementService
24873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat{
25873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
26873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     ** GENERAL
27873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     **/
28873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
29873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
30873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Returns a list of currently known network interfaces
31873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
32873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    String[] listInterfaces();
33873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
34873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
35873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Shuts down the service
36873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
37873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void shutdown();
38873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
39873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
40873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     ** TETHERING RELATED
41873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     **/
42873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
43873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
44873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
45873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Returns true if IP forwarding is enabled
46873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
47873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    boolean getIpForwardingEnabled();
48873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
49873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
50873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Enables/Disables IP Forwarding
51873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
52873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void setIpForwardingEnabled(boolean enabled);
53873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
54873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
55873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Start tethering services with the specified dhcp server range
56873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
57873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void startTethering(String dhcpRangeStart, String dhcpRangeEnd);
58873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
59873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
60873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Stop currently running tethering services
61873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
62873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void stopTethering();
63873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
64873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
65873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Returns true if tethering services are started
66873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
67873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    boolean isTetheringStarted();
68873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
69873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
70873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Tethers the specified interface
71873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
72873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void tetherInterface(String iface);
73873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
74873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
75873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Untethers the specified interface
76873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
77873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void untetherInterface(String iface);
78873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
79873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
80873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Returns a list of currently tethered interfaces
81873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
82873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    String[] listTetheredInterfaces();
83873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
84873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
85873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Sets the list of DNS forwarders (in order of priority)
86873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
87873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void setDnsForwarders(in String[] dns);
88873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
89873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
90873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     * Returns the list of DNS fowarders (in order of priority)
91873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
92873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    String[] getDnsForwarders();
93873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
94873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
95873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     *  Enables Network Address Translation between two interfaces.
96873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     *  The address and netmask of the external interface is used for
97873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     *  the NAT'ed network.
98873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
99873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void enableNat(String internalInterface, String externalInterface);
100873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat
101873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    /**
102873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     *  Disables Network Address Translation between two interfaces.
103873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat     */
104873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat    void disableNat(String internalInterface, String externalInterface);
10572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat
10672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    /**
10772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     ** PPPD
10872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     **/
10972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat
11072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    /**
11172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     * Returns the list of currently known TTY devices on the system
11272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     */
11372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    String[] listTtys();
11472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat
11572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    /**
11672759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     * Attaches a PPP server daemon to the specified TTY with the specified
11772759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     * local/remote addresses.
11872759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     */
11972759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    void attachPppd(String tty, String localAddr, String remoteAddr);
12072759df749bb8557269db86c2e3b2a8a0343cc26San Mehat
12172759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    /**
12272759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     * Detaches a PPP server daemon from the specified TTY.
12372759df749bb8557269db86c2e3b2a8a0343cc26San Mehat     */
12472759df749bb8557269db86c2e3b2a8a0343cc26San Mehat    void detachPppd(String tty);
12572759df749bb8557269db86c2e3b2a8a0343cc26San Mehat
126873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat}
127