summaryrefslogtreecommitdiffstats
path: root/dom/system/gonk/nsINetworkService.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/gonk/nsINetworkService.idl')
-rw-r--r--dom/system/gonk/nsINetworkService.idl619
1 files changed, 619 insertions, 0 deletions
diff --git a/dom/system/gonk/nsINetworkService.idl b/dom/system/gonk/nsINetworkService.idl
new file mode 100644
index 000000000..50a468494
--- /dev/null
+++ b/dom/system/gonk/nsINetworkService.idl
@@ -0,0 +1,619 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISupports.idl"
+
+[scriptable, function, uuid(91824160-fb25-11e1-a21f-0800200c9a66)]
+interface nsIWifiTetheringCallback : nsISupports
+{
+ /**
+ * Callback function used to report status to WifiManager.
+ *
+ * @param error
+ * An error message if the operation wasn't successful,
+ * or `null` if it was.
+ */
+ void wifiTetheringEnabledChange(in jsval error);
+};
+
+[scriptable, function, uuid(9c128e68-5e4b-4626-bb88-84ec54cce5d8)]
+interface nsINetworkStatsCallback : nsISupports
+{
+ void networkStatsAvailable(in boolean success,
+ in unsigned long rxBytes,
+ in unsigned long txBytes,
+ in unsigned long long timestamp);
+};
+
+[scriptable, function, uuid(0706bfa2-ac2d-11e2-9a8d-7b6d988d4767)]
+interface nsINetworkUsageAlarmCallback : nsISupports
+{
+ void networkUsageAlarmResult(in jsval error);
+};
+
+[scriptable, function, uuid(9ede8720-f8bc-11e2-b778-0800200c9a66)]
+interface nsIWifiOperationModeCallback : nsISupports
+{
+ /**
+ * Callback function used to report result to WifiManager.
+ *
+ * @param error
+ * An error message if the operation wasn't successful,
+ * or `null` if it was.
+ */
+ void wifiOperationModeResult(in jsval error);
+};
+
+[scriptable, function, uuid(097878b0-19fc-11e3-8ffd-0800200c9a66)]
+interface nsISetDhcpServerCallback : nsISupports
+{
+ /**
+ * Callback function used to report the DHCP server set result
+ *
+ * @param error
+ * An error message if the operation wasn't successful,
+ * or `null` if it was.
+ */
+ void dhcpServerResult(in jsval error);
+};
+
+[scriptable, function, uuid(32407c50-46c7-11e3-8f96-0800200c9a66)]
+interface nsIUsbTetheringCallback : nsISupports
+{
+ /**
+ * Callback function used to report status of enabling usb tethering.
+ *
+ * @param error
+ * An error message if the operation wasn't successful,
+ * or `null` if it was.
+ */
+ void usbTetheringEnabledChange(in jsval error);
+};
+
+[scriptable, function, uuid(055fd560-46ad-11e3-8f96-0800200c9a66)]
+interface nsIEnableUsbRndisCallback : nsISupports
+{
+ /**
+ * Callback function used to report the status of enabling/disabling usb rndis.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ * @param enable
+ * Boolean to indicate if we are enabling or disabling usb rndis.
+ */
+ void enableUsbRndisResult(in boolean success, in boolean enable);
+};
+
+[scriptable, function, uuid(4f08cc30-46ad-11e3-8f96-0800200c9a66)]
+interface nsIUpdateUpStreamCallback : nsISupports
+{
+ /**
+ * Callback function used to report the result of updating upstream.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ * @param externalIfname
+ * The external interface name.
+ */
+ void updateUpStreamResult(in boolean success, in DOMString externalIfname);
+};
+
+[scriptable, function, uuid(eedca6c0-1310-11e4-9191-0800200c9a66)]
+interface nsISetDnsCallback : nsISupports
+{
+ /**
+ * Callback function used to report the result of setting DNS server.
+ *
+ * @param error
+ * An error message if the operation wasn't successful,
+ * or `null` if it was.
+ */
+ void setDnsResult(in jsval error);
+};
+
+[scriptable, function, uuid(5d0e1a60-1187-11e4-9191-0800200c9a66)]
+interface nsINativeCommandCallback : nsISupports
+{
+ /**
+ * Callback function used to report the result of a network native command.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ */
+ void nativeCommandResult(in boolean success);
+};
+
+[scriptable, function, uuid(694abb80-1187-11e4-9191-0800200c9a66)]
+interface nsIDhcpRequestCallback : nsISupports
+{
+ /**
+ * Callback function used to report the result of DHCP client request.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ *
+ * @param dhcpInfo
+ * An object to represent the successful DHCP request:
+ *
+ * - gateway_str: string
+ * - dns1_str: string
+ * - dns2_str: string
+ * - mask_str: string
+ * - server_str: string
+ * - vendor_str: string
+ * - lease: long
+ * - mask: long
+ * - ipaddr: long
+ * - gateway: long
+ * - dns1: long
+ * - dns2: long
+ * - server: long
+ */
+ void dhcpRequestResult(in boolean success, in jsval dhcpInfo);
+};
+
+[scriptable, function, uuid(88e3ee22-f1b3-4fa0-8a5d-793fb827c42c)]
+interface nsIGetInterfacesCallback : nsISupports
+{
+ /**
+ * Callback function used to return the list of existing network interfaces.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ * @param interfaceList
+ * An array of interface name.
+ */
+ void getInterfacesResult(in boolean success, in jsval interfaceList);
+};
+
+[scriptable, function, uuid(064e02a3-d2c0-42c5-a293-1efa84056100)]
+interface nsIGetInterfaceConfigCallback : nsISupports
+{
+ /**
+ * Callback function used to return the network config of a given interface.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ * @param result
+ * .ip: Ip address.
+ * .prefix: mask length.
+ * .link: network link properties.
+ * .mac: mac address.
+ */
+ void getInterfaceConfigResult(in boolean success, in jsval result);
+};
+
+[scriptable, function, uuid(b370f360-6ba8-4517-a4f9-31e8f004ee91)]
+interface nsISetInterfaceConfigCallback : nsISupports
+{
+ /**
+ * Callback function used to set network config for a specified interface.
+ *
+ * @param success
+ * Boolean to indicate the operation is successful or not.
+ */
+ void setInterfaceConfigResult(in boolean success);
+};
+
+/**
+ * Provide network services.
+ */
+[scriptable, uuid(e16fe98f-9f63-48fe-82ba-8d1a1b7c6a57)]
+interface nsINetworkService : nsISupports
+{
+ const long MODIFY_ROUTE_ADD = 0;
+ const long MODIFY_ROUTE_REMOVE = 1;
+
+ /**
+ * Enable or disable Wifi Tethering
+ *
+ * @param enabled
+ * Boolean that indicates whether tethering should be enabled (true) or disabled (false).
+ * @param config
+ * The Wifi Tethering configuration from settings db.
+ * @param callback
+ * Callback function used to report status to WifiManager.
+ */
+ void setWifiTethering(in boolean enabled,
+ in jsval config,
+ in nsIWifiTetheringCallback callback);
+
+ /**
+ * Enable or disable DHCP server
+ *
+ * @param enabled
+ * Boolean that indicates enabling or disabling DHCP server.
+ *
+ * @param config
+ * Config used to enable the DHCP server. It contains
+ * .startIp start of the ip lease range (string)
+ * .endIp end of the ip lease range (string)
+ * .serverIp ip of the DHCP server (string)
+ * .maskLength the length of the subnet mask
+ * .ifname the interface name
+ *
+ * As for disabling the DHCP server, put this value |null|.
+ *
+ * @param callback
+ * Callback function used to report status.
+ */
+ void setDhcpServer(in boolean enabled,
+ in jsval config,
+ in nsISetDhcpServerCallback callback);
+
+
+ /**
+ * Retrieve network interface stats.
+ *
+ * @param networkName
+ * Select the Network interface to request estats.
+ *
+ * @param callback
+ * Callback to notify result and provide stats, connectionType
+ * and the date when stats are retrieved
+ */
+ void getNetworkInterfaceStats(in DOMString networkName, in nsINetworkStatsCallback callback);
+
+ /**
+ * Set Alarm of usage per interface
+ *
+ * @param networkName
+ * Select the Network interface to set an alarm.
+ *
+ * @param threshold
+ * Amount of data that will trigger the alarm.
+ *
+ * @param callback
+ * Callback to notify the result.
+ *
+ * @return false if there is no interface registered for the networkType param.
+ */
+ boolean setNetworkInterfaceAlarm(in DOMString networkName,
+ in long long threshold,
+ in nsINetworkUsageAlarmCallback callback);
+
+ /**
+ * Reload Wifi firmware to specific operation mode.
+ *
+ * @param interfaceName
+ * Wifi Network interface name.
+ *
+ * @param mode
+ * AP - Access pointer mode.
+ * P2P - Peer to peer connection mode.
+ * STA - Station mode.
+ *
+ * @param callback
+ * Callback to notify Wifi firmware reload result.
+ */
+ void setWifiOperationMode(in DOMString interfaceName,
+ in DOMString mode,
+ in nsIWifiOperationModeCallback callback);
+
+ /**
+ * Set USB tethering.
+ *
+ * @param enabled
+ * Boolean to indicate we are going to enable or disable usb tethering.
+ * @param config
+ * The usb tethering configuration.
+ * @param callback
+ * Callback function used to report the result enabling/disabling usb tethering.
+ */
+ void setUSBTethering(in boolean enabled,
+ in jsval config,
+ in nsIUsbTetheringCallback callback);
+
+ /**
+ * Reset routing table.
+ *
+ * @param interfaceName
+ * The name of the network interface we want to remove from the routing
+ * table.
+ *
+ * @param callback
+ * Callback to notify the result of resetting routing table.
+ */
+ void resetRoutingTable(in DOMString interfaceName,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Set DNS.
+ *
+ * @param interfaceName
+ * The network interface name of the DNS we want to set.
+ * @param dnsesCount
+ * Number of elements in dnses.
+ * @param dnses
+ * Dnses to set.
+ * @param gatewaysCount
+ * Number of elements in gateways.
+ * @param gateways
+ * Gateways for the dnses, the most suitable, usually the one with the
+ * same address family, will be selected for each dns.
+ *
+ * @param callback
+ * Callback to notify the result of setting DNS server.
+ */
+ void setDNS(in DOMString interfaceName,
+ in unsigned long dnsesCount,
+ [array, size_is(dnsesCount)] in wstring dnses,
+ in unsigned long gatewaysCount,
+ [array, size_is(gatewaysCount)] in wstring gateways,
+ in nsISetDnsCallback callback);
+
+ /**
+ * Set default route.
+ *
+ * @param interfaceName
+ * The network interface name of the default route we want to set.
+ * @param count
+ * Number of elements in gateways.
+ * @param gateways
+ * Default gateways for setting default route.
+ *
+ * @param callback
+ * Callback to notify the result of setting default route.
+ */
+ void setDefaultRoute(in DOMString interfaceName,
+ in unsigned long count,
+ [array, size_is(count)] in wstring gateways,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Remove default route.
+ *
+ * @param interfaceName
+ * The network interface name of the default route we want to remove.
+ * @param count
+ * Number of elements in gateways.
+ * @param gatways
+ * Default gateways for removing default route.
+ *
+ * @param callback
+ * Callback to notify the result of removing default route.
+ */
+ void removeDefaultRoute(in DOMString interfaceName,
+ in unsigned long count,
+ [array, size_is(count)] in wstring gateways,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Modify route.
+ *
+ * @param action
+ * nsINetworkService.MODIFY_ROUTE_ADD to add route and
+ * nsINetworkService.MODIFY_ROUTE_REMOVE to remove.
+ * @param interfaceName
+ * Network interface name for the output of the host route.
+ * @param host
+ * Host ip we want to remove route for.
+ * @param prefixLength
+ * The prefix length of the route we'd like to modify.
+ * @param [optional] gateway
+ * Gateway ip for the output of the host route.
+ *
+ * @return A deferred promise that resolves on success or rejects with a
+ * specified reason otherwise.
+ */
+ jsval modifyRoute(in long action,
+ in DOMString interfaceName,
+ in DOMString host,
+ in long prefixLength,
+ [optional] in DOMString gateway);
+
+ /**
+ * Add route to secondary routing table.
+ *
+ * @param interfaceName
+ * The network interface for this route.
+ * @param route
+ * The route info should have the following fields:
+ * .ip: destination ip address
+ * .prefix: destination prefix
+ * .gateway: gateway ip address
+ */
+ void addSecondaryRoute(in DOMString interfaceName, in jsval route,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Remove route from secondary routing table.
+ *
+ * @param interfaceName
+ * The network interface for the route we want to remove.
+ * @param route
+ * The route info should have the following fields:
+ * .ip: destination ip address
+ * .prefix: destination prefix
+ * .gateway: gateway ip address
+ */
+ void removeSecondaryRoute(in DOMString interfaceName, in jsval route,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Enable or disable usb rndis.
+ *
+ * @param enable
+ * Boolean to indicate we want enable or disable usb rndis.
+ * @param callback
+ * Callback function to report the result.
+ */
+ void enableUsbRndis(in boolean enable,
+ in nsIEnableUsbRndisCallback callback);
+
+ /**
+ * Update upstream.
+ *
+ * @param previous
+ * The previous internal and external interface.
+ * @param current
+ * The current internal and external interface.
+ * @param callback
+ * Callback function to report the result.
+ */
+ void updateUpStream(in jsval previous,
+ in jsval current,
+ in nsIUpdateUpStreamCallback callback);
+
+ /*
+ * Obtain interfaces list.
+ *
+ * @param callback
+ * Callback function to return the result.
+ */
+ void getInterfaces(in nsIGetInterfacesCallback callback);
+
+ /**
+ * Get config of a network interface.
+ *
+ * @param ifname
+ * Target interface.
+ * @param callback
+ * Callback function to report the result.
+ */
+ void getInterfaceConfig(in DOMString ifname, in nsIGetInterfaceConfigCallback callback);
+
+ /**
+ * Set config for a network interface.
+ *
+ * @param config
+ * .ifname: Target interface.
+ * .ip: Ip address.
+ * .prefix: mask length.
+ * .link: network link properties.
+ * @param callback
+ * Callback function to report the result.
+ */
+ void setInterfaceConfig(in jsval config, in nsISetInterfaceConfigCallback callback);
+
+ /**
+ * Configure a network interface.
+ *
+ * @param config
+ * An object containing the detail that we want to configure the interface:
+ *
+ * - ifname: string
+ * - ipaddr: long
+ * - mask: long
+ * - gateway: long
+ * - dns1: long
+ * - dns2: long
+ *
+ * @param callback
+ * Callback to notify the result of configurating network interface.
+ */
+ void configureInterface(in jsval config,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Issue a DHCP client request.
+ *
+ * @param networkInterface
+ * The network interface which we wnat to do the DHCP request on.
+ *
+ * @param callback
+ * Callback to notify the result of the DHCP request.
+ */
+ void dhcpRequest(in DOMString interfaceName,
+ in nsIDhcpRequestCallback callback);
+
+ /**
+ * Stop Dhcp daemon.
+ *
+ * @param ifname
+ * Target interface.
+ *
+ * @param callback
+ * Callback to notify the result of stopping dhcp request.
+ */
+ void stopDhcp(in DOMString ifname,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Enable a network interface.
+ *
+ * @param networkInterface
+ * The network interface name which we want to enable.
+ *
+ * @param callback
+ * Callback to notify the result of disabling network interface.
+ */
+ void enableInterface(in DOMString interfaceName,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Disable a network interface.
+ *
+ * @param networkInterface
+ * The network interface name which we want to disable.
+ *
+ * @param callback
+ * Callback to notify the result of disabling network interface.
+ */
+ void disableInterface(in DOMString interfaceName,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Reset all connections on a specified network interface.
+ *
+ * @param interfaceName
+ * The network interface name which we want to reset.
+ *
+ * @param callback
+ * Callback to notify the result of resetting connections.
+ */
+ void resetConnections(in DOMString interfaceName,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Create network (required to call prior to any networking operation).
+ *
+ * @param interfaceName
+ * The network interface name which we want to create network for.
+ *
+ * @param callback
+ * Callback to notify the result of creating network.
+ */
+ void createNetwork(in DOMString interfaceName,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Destroy network.
+ *
+ * @param interfaceName
+ * The network interface name of the network we want to destroy.
+ *
+ * @param callback
+ * Callback to notify the result of destroying network.
+ */
+ void destroyNetwork(in DOMString interfaceName,
+ in nsINativeCommandCallback callback);
+
+ /**
+ * Query the netId associated with given network interface name.
+ *
+ * @param interfaceName
+ * The network interface name which we want to query.
+ *
+ * @return A deferred promise that resolves with a string to indicate.
+ * the queried netId on success and rejects if the interface name
+ * is invalid.
+ *
+ */
+ jsval getNetId(in DOMString interfaceName);
+
+ /**
+ * Set maximum transmission unit on a network interface.
+ *
+ * @param interfaceName
+ * The name of the network interface that we want to set mtu.
+ * @param mtu
+ * Size of maximum tranmission unit.
+ *
+ * @param callback
+ * Callback to notify the result of setting mtu.
+ */
+ void setMtu(in DOMString interfaceName, in long mtu,
+ in nsINativeCommandCallback callback);
+};