+
+
+/*
+ * TCP structure with information that gives insight into forward progress on an interface,
+ * exported to user-land via sysctl(3).
+ */
+struct xtcpprogress_indicators {
+ u_int32_t xp_numflows; /* Total number of flows */
+ u_int32_t xp_conn_probe_fails; /* Count of connection failures */
+ u_int32_t xp_read_probe_fails; /* Count of read probe failures */
+ u_int32_t xp_write_probe_fails; /* Count of write failures */
+ u_int32_t xp_recentflows; /* Total of "recent" flows */
+ u_int32_t xp_recentflows_unacked; /* Total of "recent" flows with unacknowledged data */
+ u_int64_t xp_recentflows_rxbytes; /* Total of "recent" flows received bytes */
+ u_int64_t xp_recentflows_txbytes; /* Total of "recent" flows transmitted bytes */
+ u_int64_t xp_recentflows_rxooo; /* Total of "recent" flows received out of order bytes */
+ u_int64_t xp_recentflows_rxdup; /* Total of "recent" flows received duplicate bytes */
+ u_int64_t xp_recentflows_retx; /* Total of "recent" flows retransmitted bytes */
+ u_int64_t xp_reserved1; /* Expansion */
+ u_int64_t xp_reserved2; /* Expansion */
+ u_int64_t xp_reserved3; /* Expansion */
+ u_int64_t xp_reserved4; /* Expansion */
+};
+
+struct tcpprogressreq {
+ u_int64_t ifindex; /* Interface index for progress indicators */
+ u_int64_t recentflow_maxduration; /* In mach_absolute_time, max duration for flow to be counted as "recent" */
+ u_int64_t xp_reserved1; /* Expansion */
+ u_int64_t xp_reserved2; /* Expansion */
+};
+