diff options
author | semenzato <semenzato@chromium.org> | 2014-09-24 14:06:03 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-24 21:06:23 +0000 |
commit | e2b442be9c01e033aebd119ee49acd9cac83ee34 (patch) | |
tree | b1e798cd38d6c66e21675c9c506a90025259af81 /chromeos/dbus/shill_manager_client.h | |
parent | 4bcbeb30b6a26829dfb762539b8621b67e232843 (diff) | |
download | chromium_src-e2b442be9c01e033aebd119ee49acd9cac83ee34.zip chromium_src-e2b442be9c01e033aebd119ee49acd9cac83ee34.tar.gz chromium_src-e2b442be9c01e033aebd119ee49acd9cac83ee34.tar.bz2 |
GCM: D-Bus methods for wake-on-packet
Program the NIC to wake-on-packet for packets arriving from
the GCM server. Chrome notifies the connection manager (shill)
by calling D-Bus methods. The return status indicates if the
operation succeeded or not (depending on hardware support and
the type of connection).
This is a resubmission of a previous patch with the same title
and functionality containing fixes and a workaround for a problem
that is independent of this patch. Bug 415821 remains open
for that problem.
Keywords: wowlan, wake-on-lan, wake-on-wlan
BUG=360295
TEST=verified dbus methods are called, and packets are sent on the
TEST=connection passed to the methods. Also verified that shill
TEST=programs the NIC correctly, and packets wake up the device.
Review URL: https://codereview.chromium.org/597683005
Cr-Commit-Position: refs/heads/master@{#296516}
Diffstat (limited to 'chromeos/dbus/shill_manager_client.h')
-rw-r--r-- | chromeos/dbus/shill_manager_client.h | 42 |
1 files changed, 31 insertions, 11 deletions
diff --git a/chromeos/dbus/shill_manager_client.h b/chromeos/dbus/shill_manager_client.h index 9b9541d..8bc7251 100644 --- a/chromeos/dbus/shill_manager_client.h +++ b/chromeos/dbus/shill_manager_client.h @@ -14,10 +14,12 @@ #include "chromeos/dbus/shill_client_helper.h" namespace dbus { - class ObjectPath; +} -} // namespace dbus +namespace net { +class IPEndPoint; +} namespace chromeos { @@ -193,35 +195,53 @@ class CHROMEOS_EXPORT ShillManagerClient : public DBusClient { const ObjectPathCallback& callback, const ErrorCallback& error_callback) = 0; - // Verify that the given data corresponds to a trusted device, and return true - // to the callback if it is. + // Verifies that the given data corresponds to a trusted device, and returns + // true to the callback if it is. virtual void VerifyDestination(const VerificationProperties& properties, const BooleanCallback& callback, const ErrorCallback& error_callback) = 0; - // Verify that the given data corresponds to a trusted device, and if it is, - // return the encrypted credentials for connecting to the network represented + // Verifies that the given data corresponds to a trusted device, and if it is, + // returns the encrypted credentials for connecting to the network represented // by the given |service_path|, encrypted using the |public_key| for the - // trusted device. If the device is not trusted, return the empty string. + // trusted device. If the device is not trusted, returns the empty string. virtual void VerifyAndEncryptCredentials( const VerificationProperties& properties, const std::string& service_path, const StringCallback& callback, const ErrorCallback& error_callback) = 0; - // Verify that the given data corresponds to a trusted device, and return the - // |data| encrypted using the |public_key| for the trusted device. If the - // device is not trusted, return the empty string. + // Verifies that the given data corresponds to a trusted device, and returns + // the |data| encrypted using the |public_key| for the trusted device. If the + // device is not trusted, returns the empty string. virtual void VerifyAndEncryptData(const VerificationProperties& properties, const std::string& data, const StringCallback& callback, const ErrorCallback& error_callback) = 0; - // For each technology present, connect to the "best" service available. + // For each technology present, connects to the "best" service available. // Called once the user is logged in and certificates are loaded. virtual void ConnectToBestServices(const base::Closure& callback, const ErrorCallback& error_callback) = 0; + // Requests that shill program the NIC so that packets incoming on + // |ip_connection| wake up the CPU. + virtual void AddWakeOnPacketConnection( + const net::IPEndPoint& ip_endpoint, + const base::Closure& callback, + const ErrorCallback& error_callback) = 0; + + // Removes a request to wake up on packets coming on |ip_connection|. + virtual void RemoveWakeOnPacketConnection( + const net::IPEndPoint& ip_endpoint, + const base::Closure& callback, + const ErrorCallback& error_callback) = 0; + + // Clears all requests to wake up on packets. + virtual void RemoveAllWakeOnPacketConnections( + const base::Closure& callback, + const ErrorCallback& error_callback) = 0; + // Returns an interface for testing (stub only), or returns NULL. virtual TestInterface* GetTestInterface() = 0; |