-u32
-tcp_session_push_header (transport_connection_t * tconn, vlib_buffer_t * b)
-{
- tcp_connection_t *tc = (tcp_connection_t *) tconn;
- tcp_push_hdr_i (tc, b, TCP_STATE_ESTABLISHED, 0);
- tc->snd_una_max = tc->snd_nxt;
- ASSERT (seq_leq (tc->snd_una_max, tc->snd_una + tc->snd_wnd));
- tcp_validate_txf_size (tc, tc->snd_una_max - tc->snd_una);
- /* If not tracking an ACK, start tracking */
- if (tc->rtt_ts == 0 && !tcp_in_cong_recovery (tc))
- {
- tc->rtt_ts = tcp_time_now ();
- tc->rtt_seq = tc->snd_nxt;
- }
- if (PREDICT_FALSE (!tcp_timer_is_active (tc, TCP_TIMER_RETRANSMIT)))
- {
- tcp_retransmit_timer_set (tc);
- tc->rto_boff = 0;
- }
- tcp_trajectory_add_start (b, 3);
- return 0;
-}
-