Add Stats to Stun ping.

Add sent_ping_requests, recv_ping_responses to ConnectionInfo.
recv_ping_responses_ will be incremented when OnConnectionRequestResponse() is called.
ent_ping_requests_ will be incremented when OnConnectionRequestSent() is called.

BUG=webrtc:5695

Review-Url: https://codereview.webrtc.org/1940493002
Cr-Commit-Position: refs/heads/master@{#13001}
diff --git a/webrtc/api/statscollector.cc b/webrtc/api/statscollector.cc
index df1d0aa..ab191d1 100644
--- a/webrtc/api/statscollector.cc
+++ b/webrtc/api/statscollector.cc
@@ -629,12 +629,19 @@
                 AddCandidateReport(info.remote_candidate, false)->id());
 
   const Int64ForAdd int64s[] = {
-    { StatsReport::kStatsValueNameBytesReceived, info.recv_total_bytes },
-    { StatsReport::kStatsValueNameBytesSent, info.sent_total_bytes },
-    { StatsReport::kStatsValueNamePacketsSent, info.sent_total_packets },
-    { StatsReport::kStatsValueNameRtt, info.rtt },
-    { StatsReport::kStatsValueNameSendPacketsDiscarded,
-      info.sent_discarded_packets },
+      {StatsReport::kStatsValueNameBytesReceived, info.recv_total_bytes},
+      {StatsReport::kStatsValueNameBytesSent, info.sent_total_bytes},
+      {StatsReport::kStatsValueNamePacketsSent, info.sent_total_packets},
+      {StatsReport::kStatsValueNameRtt, info.rtt},
+      {StatsReport::kStatsValueNameSendPacketsDiscarded,
+       info.sent_discarded_packets},
+      {StatsReport::kStatsValueNameSentPingRequestsTotal,
+       info.sent_ping_requests_total},
+      {StatsReport::kStatsValueNameSentPingRequestsBeforeFirstResponse,
+       info.sent_ping_requests_before_first_response},
+      {StatsReport::kStatsValueNameSentPingResponses, info.sent_ping_responses},
+      {StatsReport::kStatsValueNameRecvPingRequests, info.recv_ping_requests},
+      {StatsReport::kStatsValueNameRecvPingResponses, info.recv_ping_responses},
   };
   for (const auto& i : int64s)
     report->AddInt64(i.name, i.value);
diff --git a/webrtc/api/statstypes.cc b/webrtc/api/statstypes.cc
index 61af824..9e5e176 100644
--- a/webrtc/api/statstypes.cc
+++ b/webrtc/api/statstypes.cc
@@ -414,6 +414,18 @@
       return "googBucketDelay";
     case kStatsValueNameBandwidthLimitedResolution:
       return "googBandwidthLimitedResolution";
+    // STUN ping related attributes.
+    // TODO(zhihuang) Rename these stats to follow the standards.
+    case kStatsValueNameSentPingRequestsTotal:
+      return "requestsSent";
+    case kStatsValueNameSentPingRequestsBeforeFirstResponse:
+      return "consentRequestsSent";
+    case kStatsValueNameSentPingResponses:
+      return "responsesSent";
+    case kStatsValueNameRecvPingRequests:
+      return "requestsReceived";
+    case kStatsValueNameRecvPingResponses:
+      return "responsesReceived";
 
     // Candidate related attributes. Values are taken from
     // http://w3c.github.io/webrtc-stats/#rtcstatstype-enum*.
diff --git a/webrtc/api/statstypes.h b/webrtc/api/statstypes.h
index 4f58b97..093bdbf 100644
--- a/webrtc/api/statstypes.h
+++ b/webrtc/api/statstypes.h
@@ -116,6 +116,11 @@
     kStatsValueNameSsrc,
     kStatsValueNameState,
     kStatsValueNameTransportId,
+    kStatsValueNameSentPingRequestsTotal,
+    kStatsValueNameSentPingRequestsBeforeFirstResponse,
+    kStatsValueNameSentPingResponses,
+    kStatsValueNameRecvPingRequests,
+    kStatsValueNameRecvPingResponses,
 
     // Internal StatsValue names.
     kStatsValueNameAccelerateRate,