tcp: retry lost retransmits
[vpp.git] / src / vnet / tcp / tcp.h
index 1bf3281..a31c46c 100644 (file)
@@ -168,7 +168,7 @@ typedef struct _sack_scoreboard
   u32 sacked_bytes;                    /**< Number of bytes sacked in sb */
   u32 last_sacked_bytes;               /**< Number of bytes last sacked */
   u32 last_bytes_delivered;            /**< Sack bytes delivered to app */
-  u32 rxt_sacked;                      /**< Rxt last delivered */
+  u32 rxt_sacked;                      /**< Rxt bytes last delivered */
   u32 high_sacked;                     /**< Highest byte sacked (fack) */
   u32 high_rxt;                                /**< Highest retransmitted sequence */
   u32 rescue_rxt;                      /**< Rescue sequence number */
@@ -226,7 +226,7 @@ sack_scoreboard_hole_t *scoreboard_last_hole (sack_scoreboard_t * sb);
 void scoreboard_clear (sack_scoreboard_t * sb);
 void scoreboard_clear_reneging (sack_scoreboard_t * sb, u32 start, u32 end);
 void scoreboard_init (sack_scoreboard_t * sb);
-void scoreboard_init_high_rxt (sack_scoreboard_t * sb, u32 snd_una);
+void scoreboard_init_rxt (sack_scoreboard_t * sb, u32 snd_una);
 u8 *format_tcp_scoreboard (u8 * s, va_list * args);
 
 #define TCP_BTS_INVALID_INDEX  ((u32)~0)
@@ -369,7 +369,9 @@ typedef struct _tcp_connection
   u32 snd_rxt_bytes;   /**< Retransmitted bytes during current cc event */
   u32 snd_rxt_ts;      /**< Timestamp when first packet is retransmitted */
   u32 prr_delivered;   /**< RFC6937 bytes delivered during current event */
+  u32 prr_start;       /**< snd_una when prr starts */
   u32 rxt_delivered;   /**< Rxt bytes delivered during current cc event */
+  u32 rxt_head;                /**< snd_una last time we re rxted the head */
   u32 tsecr_last_ack;  /**< Timestamp echoed to us in last healthy ACK */
   u32 snd_congestion;  /**< snd_una_max when congestion is detected */
   u32 tx_fifo_size;    /**< Tx fifo size. Used to constrain cwnd */
@@ -957,8 +959,7 @@ tcp_is_lost_fin (tcp_connection_t * tc)
 }
 
 u32 tcp_snd_space (tcp_connection_t * tc);
-//void tcp_cc_init_congestion (tcp_connection_t * tc);
-//void tcp_cc_fastrecovery_clear (tcp_connection_t * tc);
+int tcp_fastrecovery_prr_snd_space (tcp_connection_t * tc);
 
 fib_node_index_t tcp_lookup_rmt_in_fib (tcp_connection_t * tc);