INetworkManagementService.aidl revision 873f2145941cc28f6931dc18b5e9987bd22e2e19
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);
105873f2145941cc28f6931dc18b5e9987bd22e2e19San Mehat}
106