Lines Matching refs:rx_opt
147 bool unknown_opt = tcp_sk(sk)->rx_opt.saw_unknown &&
424 per_mss = max_t(u32, tp->rx_opt.mss_clamp, tp->mss_cache) +
685 if (tp->rx_opt.rcv_tsecr == tp->rcv_rtt_last_tsecr)
687 tp->rcv_rtt_last_tsecr = tp->rx_opt.rcv_tsecr;
691 u32 delta = tcp_time_stamp(tp) - tp->rx_opt.rcv_tsecr;
1016 tp->rx_opt.sack_ok |= TCP_DSACK_SEEN;
1045 tp->rx_opt.sack_ok, inet_csk(sk)->icsk_ca_state,
2401 return tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr &&
2402 before(tp->rx_opt.rcv_tsecr, when);
3092 if (seq_rtt_us < 0 && tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr &&
3094 u32 delta = tcp_time_stamp(tp) - tp->rx_opt.rcv_tsecr;
3546 nwin <<= tp->rx_opt.snd_wscale;
3653 tp->rx_opt.ts_recent = tp->rx_opt.rcv_tsval;
3654 tp->rx_opt.ts_recent_stamp = ktime_get_seconds();
3659 if (tp->rx_opt.saw_tstamp && !after(seq, tp->rcv_wup)) {
3667 if (tcp_paws_check(&tp->rx_opt, 0))
4159 tp->rx_opt.saw_tstamp = 1;
4161 tp->rx_opt.rcv_tsval = ntohl(*ptr);
4164 tp->rx_opt.rcv_tsecr = ntohl(*ptr) - tp->tsoffset;
4166 tp->rx_opt.rcv_tsecr = 0;
4183 tp->rx_opt.saw_tstamp = 0;
4185 } else if (tp->rx_opt.tstamp_ok &&
4191 tcp_parse_options(net, skb, &tp->rx_opt, 1, NULL);
4192 if (tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr)
4193 tp->rx_opt.rcv_tsecr -= tp->tsoffset;
4270 !tcp_may_update_window(tp, ack, seq, ntohs(th->window) << tp->rx_opt.snd_wscale) &&
4273 (s32)(tp->rx_opt.ts_recent - tp->rx_opt.rcv_tsval) <= (inet_csk(sk)->icsk_rto * 1024) / HZ);
4281 return !tcp_paws_check(&tp->rx_opt, TCP_PAWS_WINDOW) &&
4400 tcp_sack_reset(&tp->rx_opt);
4442 tp->rx_opt.dsack = 1;
4452 if (!tp->rx_opt.dsack)
4504 for (this_sack = 1; this_sack < tp->rx_opt.num_sacks;) {
4511 tp->rx_opt.num_sacks--;
4512 for (i = this_sack; i < tp->rx_opt.num_sacks; i++)
4552 int cur_sacks = tp->rx_opt.num_sacks;
4582 tp->rx_opt.num_sacks--;
4592 tp->rx_opt.num_sacks++;
4600 int num_sacks = tp->rx_opt.num_sacks;
4605 tp->rx_opt.num_sacks = 0;
4626 tp->rx_opt.num_sacks = num_sacks;
4805 tp->rx_opt.num_sacks = 1;
5017 tp->rx_opt.dsack = 0;
5055 if (tp->rx_opt.num_sacks)
5351 if (tp->rx_opt.sack_ok)
5352 tcp_sack_reset(&tp->rx_opt);
5675 tp->rx_opt.saw_tstamp &&
5723 } else if (tcp_is_sack(tp) && tp->rx_opt.num_sacks > 0) {
5728 for (this_sack = 1; this_sack < tp->rx_opt.num_sacks;
5827 tp->rx_opt.saw_tstamp = 0;
5855 if ((s32)(tp->rx_opt.rcv_tsval - tp->rx_opt.ts_recent) < 0)
5887 tp->rcv_rtt_last_tsecr = tp->rx_opt.rcv_tsecr;
6032 if (!tp->rx_opt.snd_wscale)
6043 u16 mss = tp->rx_opt.mss_clamp, try_exp = 0;
6046 if (mss == tp->rx_opt.user_mss) {
6107 if (tp->syn_smc && !tp->rx_opt.smc_ok)
6123 if (tp->undo_marker && syn_stamp && tp->rx_opt.saw_tstamp &&
6124 syn_stamp == tp->rx_opt.rcv_tsecr)
6134 int saved_clamp = tp->rx_opt.mss_clamp;
6137 tcp_parse_options(sock_net(sk), skb, &tp->rx_opt, 0, &foc);
6138 if (tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr)
6139 tp->rx_opt.rcv_tsecr -= tp->tsoffset;
6160 if (tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr &&
6161 !between(tp->rx_opt.rcv_tsecr, tp->retrans_stamp,
6215 if (!tp->rx_opt.wscale_ok) {
6216 tp->rx_opt.snd_wscale = tp->rx_opt.rcv_wscale = 0;
6220 if (tp->rx_opt.saw_tstamp) {
6221 tp->rx_opt.tstamp_ok = 1;
6290 if (tp->rx_opt.ts_recent_stamp && tp->rx_opt.saw_tstamp &&
6291 tcp_paws_reject(&tp->rx_opt, 0))
6301 if (tp->rx_opt.saw_tstamp) {
6302 tp->rx_opt.tstamp_ok = 1;
6350 tcp_clear_options(&tp->rx_opt);
6351 tp->rx_opt.mss_clamp = saved_clamp;
6355 tcp_clear_options(&tp->rx_opt);
6356 tp->rx_opt.mss_clamp = saved_clamp;
6440 tp->rx_opt.saw_tstamp = 0;
6454 tp->rx_opt.saw_tstamp = 0;
6511 tp->snd_wnd = ntohs(th->window) << tp->rx_opt.snd_wscale;
6514 if (tp->rx_opt.tstamp_ok)
6703 const struct tcp_options_received *rx_opt,
6713 req->mss = rx_opt->mss_clamp;
6714 req->ts_recent = rx_opt->saw_tstamp ? rx_opt->rcv_tsval : 0;
6715 ireq->tstamp_ok = rx_opt->tstamp_ok;
6716 ireq->sack_ok = rx_opt->sack_ok;
6717 ireq->snd_wscale = rx_opt->snd_wscale;
6718 ireq->wscale_ok = rx_opt->wscale_ok;
6725 ireq->smc_ok = rx_opt->smc_ok;
6836 mss = tcp_parse_mss_option(th, tp->rx_opt.user_mss);
6890 tmp_opt.user_mss = tp->rx_opt.user_mss;