Lines Matching refs:tcp_opt
234 struct tcp_options_received *tcp_opt)
237 u32 options = tcp_opt->rcv_tsecr;
239 if (!tcp_opt->saw_tstamp) {
240 tcp_clear_options(tcp_opt);
247 tcp_opt->sack_ok = (options & TS_OPT_SACK) ? TCP_SACK_SEEN : 0;
249 if (tcp_opt->sack_ok && !READ_ONCE(net->ipv4.sysctl_tcp_sack))
255 tcp_opt->wscale_ok = 1;
256 tcp_opt->snd_wscale = options & TS_OPT_WSCALE_MASK;
262 bool cookie_ecn_ok(const struct tcp_options_received *tcp_opt,
265 bool ecn_ok = tcp_opt->rcv_tsecr & TS_OPT_ECN;
322 struct tcp_options_received tcp_opt;
352 memset(&tcp_opt, 0, sizeof(tcp_opt));
353 tcp_parse_options(sock_net(sk), skb, &tcp_opt, 0, NULL);
355 if (tcp_opt.saw_tstamp && tcp_opt.rcv_tsecr) {
359 tcp_opt.rcv_tsecr -= tsoff;
362 if (!cookie_timestamp_decode(sock_net(sk), &tcp_opt))
383 ireq->snd_wscale = tcp_opt.snd_wscale;
384 ireq->sack_ok = tcp_opt.sack_ok;
385 ireq->wscale_ok = tcp_opt.wscale_ok;
386 ireq->tstamp_ok = tcp_opt.saw_tstamp;
387 req->ts_recent = tcp_opt.saw_tstamp ? tcp_opt.rcv_tsval : 0;
440 ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), &rt->dst);