shill: WiFi: Track signal strength of connected AP

While connected to an AP, perform periodic captures of the
"station" information element in the kernel for our connection
to the current endpoint.  When we receive a response, update
the endpoint with the signal strength in the station information.
This will in turn update the service's "Strength" property.

BUG=chromium:271492
TEST=Unit tests; Manual: Walk around while connected and ensure
bars move up and down to compensate.  ff_debug +wifi; ff_debug --level -2
shows messages about endpoint signal strength changing.

Change-Id: I246baafb01cc6ae94bb08b2b950eaa09f11b8cc2
Reviewed-on: https://gerrit.chromium.org/gerrit/65713
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/nl80211_message.h b/nl80211_message.h
index 62c8405..2ba050b 100644
--- a/nl80211_message.h
+++ b/nl80211_message.h
@@ -215,6 +215,17 @@
   DISALLOW_COPY_AND_ASSIGN(GetRegMessage);
 };
 
+class GetStationMessage : public Nl80211Message {
+ public:
+  static const uint8_t kCommand;
+  static const char kCommandString[];
+
+  GetStationMessage();
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(GetStationMessage);
+};
+
 class GetWiphyMessage : public Nl80211Message {
  public:
   static const uint8_t kCommand;