shill: add SetWakeOnConnection Nl80211Message

Add SetWakeOnPacketConnMessage Nl80211 Message for programming the
NIC. This is part of the implementation of the Lucid Sleep DBus API.

BUG=chromium:399137
TEST='emerge-squawks platform2' succeeded

Change-Id: I3fca8f5b0758e2c6f2bddc06998c31fca41f9b2b
Reviewed-on: https://chromium-review.googlesource.com/211417
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
diff --git a/nl80211_message.cc b/nl80211_message.cc
index db3e52e..077f666 100644
--- a/nl80211_message.cc
+++ b/nl80211_message.cc
@@ -484,6 +484,10 @@
       NL80211_ATTR_MAC, Bind(&NetlinkAttribute::NewNl80211AttributeFromId));
 }
 
+const uint8_t SetWakeOnPacketConnMessage::kCommand = NL80211_CMD_SET_WOWLAN;
+const char SetWakeOnPacketConnMessage::kCommandString[] =
+    "NL80211_CMD_SET_WOWLAN";
+
 const uint8_t GetWiphyMessage::kCommand = NL80211_CMD_GET_WIPHY;
 const char GetWiphyMessage::kCommandString[] = "NL80211_CMD_GET_WIPHY";
 
diff --git a/nl80211_message.h b/nl80211_message.h
index 2ba050b..c6bbbee 100644
--- a/nl80211_message.h
+++ b/nl80211_message.h
@@ -226,6 +226,17 @@
   DISALLOW_COPY_AND_ASSIGN(GetStationMessage);
 };
 
+class SetWakeOnPacketConnMessage : public Nl80211Message {
+ public:
+  static const uint8_t kCommand;
+  static const char kCommandString[];
+
+  SetWakeOnPacketConnMessage() : Nl80211Message(kCommand, kCommandString) {}
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(SetWakeOnPacketConnMessage);
+};
+
 class GetWiphyMessage : public Nl80211Message {
  public:
   static const uint8_t kCommand;