|  | @@ -21,12 +21,13 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include <grpc/support/port_platform.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#include "absl/types/optional.h"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #include "src/core/lib/iomgr/port.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include <grpc/support/time.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include "src/core/lib/gprpp/memory.h"
 | 
	
		
			
				|  |  | -#include "src/core/lib/gprpp/optional.h"
 | 
	
		
			
				|  |  |  #include "src/core/lib/iomgr/error.h"
 | 
	
		
			
				|  |  |  #include "src/core/lib/iomgr/internal_errqueue.h"
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -34,52 +35,52 @@ namespace grpc_core {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  struct ConnectionMetrics {
 | 
	
		
			
				|  |  |    /* Delivery rate in Bytes/s. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> delivery_rate;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> delivery_rate;
 | 
	
		
			
				|  |  |    /* If the delivery rate is limited by the application, this is set to true. */
 | 
	
		
			
				|  |  | -  Optional<bool> is_delivery_rate_app_limited;
 | 
	
		
			
				|  |  | +  absl::optional<bool> is_delivery_rate_app_limited;
 | 
	
		
			
				|  |  |    /* Total packets retransmitted. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> packet_retx;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> packet_retx;
 | 
	
		
			
				|  |  |    /* Total packets retransmitted spuriously. This metric is smaller than or
 | 
	
		
			
				|  |  |    equal to packet_retx. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> packet_spurious_retx;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> packet_spurious_retx;
 | 
	
		
			
				|  |  |    /* Total packets sent. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> packet_sent;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> packet_sent;
 | 
	
		
			
				|  |  |    /* Total packets delivered. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> packet_delivered;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> packet_delivered;
 | 
	
		
			
				|  |  |    /* Total packets delivered with ECE marked. This metric is smaller than or
 | 
	
		
			
				|  |  |    equal to packet_delivered. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> packet_delivered_ce;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> packet_delivered_ce;
 | 
	
		
			
				|  |  |    /* Total bytes lost so far. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> data_retx;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> data_retx;
 | 
	
		
			
				|  |  |    /* Total bytes sent so far. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> data_sent;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> data_sent;
 | 
	
		
			
				|  |  |    /* Total bytes in write queue but not sent. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> data_notsent;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> data_notsent;
 | 
	
		
			
				|  |  |    /* Pacing rate of the connection in Bps */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> pacing_rate;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> pacing_rate;
 | 
	
		
			
				|  |  |    /* Minimum RTT observed in usec. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> min_rtt;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> min_rtt;
 | 
	
		
			
				|  |  |    /* Smoothed RTT in usec */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> srtt;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> srtt;
 | 
	
		
			
				|  |  |    /* Send congestion window. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> congestion_window;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> congestion_window;
 | 
	
		
			
				|  |  |    /* Slow start threshold in packets. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> snd_ssthresh;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> snd_ssthresh;
 | 
	
		
			
				|  |  |    /* Maximum degree of reordering (i.e., maximum number of packets reodered)
 | 
	
		
			
				|  |  |     on the connection. */
 | 
	
		
			
				|  |  | -  Optional<uint32_t> reordering;
 | 
	
		
			
				|  |  | +  absl::optional<uint32_t> reordering;
 | 
	
		
			
				|  |  |    /* Represents the number of recurring retransmissions of the first sequence
 | 
	
		
			
				|  |  |    that is not acknowledged yet. */
 | 
	
		
			
				|  |  | -  Optional<uint8_t> recurring_retrans;
 | 
	
		
			
				|  |  | +  absl::optional<uint8_t> recurring_retrans;
 | 
	
		
			
				|  |  |    /* The cumulative time (in usec) that the transport protocol was busy
 | 
	
		
			
				|  |  |     sending data. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> busy_usec;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> busy_usec;
 | 
	
		
			
				|  |  |    /* The cumulative time (in usec) that the transport protocol was limited by
 | 
	
		
			
				|  |  |     the receive window size. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> rwnd_limited_usec;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> rwnd_limited_usec;
 | 
	
		
			
				|  |  |    /* The cumulative time (in usec) that the transport protocol was limited by
 | 
	
		
			
				|  |  |     the send buffer size. */
 | 
	
		
			
				|  |  | -  Optional<uint64_t> sndbuf_limited_usec;
 | 
	
		
			
				|  |  | +  absl::optional<uint64_t> sndbuf_limited_usec;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  struct Timestamp {
 |