tcp_rsk
tcp_rsk(oreq)->tfo_listener = false;
tcp_rsk(oreq)->rcv_isn = ntohl(tcph->seq);
return tcp_rsk(req)->used_tcp_ao;
return tcp_rsk(req)->is_mptcp;
return tcp_rsk(req)->is_mptcp && tcp_rsk(req)->drop_req;
if (tcp_rsk(req)->accecn_ok)
tcp_accecn_echo_syn_ect(th, tcp_rsk(req)->syn_ect_rcv);
} else if (tcp_rsk(req)->accecn_ok) {
treq = tcp_rsk(req);
if (req->num_retrans > 1 && tcp_rsk(req)->accecn_ok)
tcp_rsk(req)->accecn_fail_mode |= TCP_ACCECN_ACE_FAIL_SEND;
if (sk->sk_protocol == IPPROTO_TCP && tcp_rsk(req)->tfo_listener) {
tcp_rsk(req)->tfo_listener) {
if (tcp_rsk(req)->tfo_listener) {
if (sk->sk_protocol == IPPROTO_TCP && tcp_rsk(nreq)->tfo_listener)
struct tcp_request_sock *treq = tcp_rsk(req);
treq = tcp_rsk(req);
treq = tcp_rsk(req);
if (tcp_rsk(req)->req_usec_ts)
sne = tcp_ao_compute_sne(0, tcp_rsk(req)->rcv_isn,
sisn = htonl(tcp_rsk(req)->rcv_isn);
disn = htonl(tcp_rsk(req)->snt_isn);
new_ao->lisn = htonl(tcp_rsk(req)->snt_isn);
new_ao->risn = htonl(tcp_rsk(req)->rcv_isn);
key = tcp_ao_established_key(req_to_sk(req), new_ao, tcp_rsk(req)->ao_keyid, -1);
key = tcp_ao_established_key(req_to_sk(req), new_ao, -1, tcp_rsk(req)->ao_rcv_next);
htonl(tcp_rsk(req)->snt_isn),
htonl(tcp_rsk(req)->rcv_isn));
sisn = htonl(tcp_rsk(req)->rcv_isn);
disn = htonl(tcp_rsk(req)->snt_isn);
*sne = tcp_ao_compute_sne(0, tcp_rsk(req)->snt_isn, seq);
struct tcp_request_sock *treq = tcp_rsk(req);
tcp_rsk(req)->tfo_listener = true;
tcp_rsk(req)->rcv_nxt = tp->rcv_nxt;
tcp_rsk(req)->tfo_listener = false;
if (req && !req->num_retrans && tcp_rsk(req)->snt_synack)
rtt_us = tcp_stamp_us_delta(tcp_clock_us(), tcp_rsk(req)->snt_synack);
tcp_rsk(req)->accecn_ok = 1;
tcp_rsk(req)->syn_ect_rcv = TCP_SKB_CB(skb)->ip_dsfield &
tcp_rsk(req)->rcv_isn = TCP_SKB_CB(skb)->seq;
tcp_rsk(req)->rcv_nxt = TCP_SKB_CB(skb)->seq + 1;
tcp_rsk(req)->snt_synack = 0;
tcp_rsk(req)->snt_tsval_first = 0;
tcp_rsk(req)->last_oow_ack_time = 0;
tcp_rsk(req)->accecn_ok = 0;
tcp_rsk(req)->saw_accecn_opt = TCP_ACCECN_OPT_NOT_SEEN;
tcp_rsk(req)->accecn_fail_mode = 0;
tcp_rsk(req)->syn_ect_rcv = 0;
tcp_rsk(req)->syn_ect_snt = 0;
tcp_rsk(req)->af_specific = af_ops;
tcp_rsk(req)->ts_off = 0;
tcp_rsk(req)->req_usec_ts = false;
tcp_rsk(req)->is_mptcp = 0;
tcp_rsk(req)->req_usec_ts = dst_tcp_usec_ts(dst);
tcp_rsk(req)->ts_off = st.ts_off;
tcp_rsk(req)->used_tcp_ao = true;
tcp_rsk(req)->ao_rcv_next = aoh->keyid;
tcp_rsk(req)->ao_keyid = aoh->rnext_keyid;
tcp_rsk(req)->used_tcp_ao = false;
tcp_rsk(req)->snt_isn = isn;
tcp_rsk(req)->txhash = net_tx_rndhash();
tcp_rsk(req)->syn_tos = TCP_SKB_CB(skb)->ip_dsfield;
tcp_rsk(req)->tfo_listener = false;
u32 seq = (sk->sk_state == TCP_LISTEN) ? tcp_rsk(req)->snt_isn + 1 :
tcp_rsk(req)->rcv_nxt,
tcp_rsk_tsval(tcp_rsk(req)),
READ_ONCE(tcp_rsk(req)->txhash));
tcp_rsk(req)->syn_ect_snt = inet_sk(sk)->tos & INET_ECN_MASK;
tos = (tcp_rsk(req)->syn_tos & ~INET_ECN_MASK) |
newinet->tos = tcp_rsk(req)->syn_tos & ~INET_ECN_MASK;
if (seq != tcp_rsk(req)->snt_isn) {
snd_una = fastopen ? tcp_rsk(fastopen)->snt_isn : tp->snd_una;
const struct tcp_request_sock *treq = tcp_rsk(req);
struct tcp_request_sock *treq = tcp_rsk(req);
ao_key = treq->af_specific->ao_lookup(sk, req, tcp_rsk(req)->ao_keyid, -1);
tcp_rsk(req)->snt_tsval_first,
READ_ONCE(tcp_rsk(req)->snt_tsval_last));
tmp_opt.rcv_tsecr -= tcp_rsk(req)->ts_off;
if (TCP_SKB_CB(skb)->seq == tcp_rsk(req)->rcv_isn &&
&tcp_rsk(req)->last_oow_ack_time)) {
if (tcp_rsk(req)->accecn_ok) {
tcp_rsk(req)->syn_ect_rcv = ect_rcv;
tcp_rsk(req)->accecn_fail_mode |= TCP_ACCECN_ACE_FAIL_RECV;
if (req->num_retrans > 1 && tcp_rsk(req)->accecn_ok)
tcp_rsk(req)->accecn_fail_mode |= TCP_ACCECN_ACE_FAIL_SEND;
tcp_rsk(req)->snt_isn + 1))
tcp_rsk(req)->rcv_nxt,
tcp_rsk(req)->rcv_nxt +
&tcp_rsk(req)->last_oow_ack_time))
if (TCP_SKB_CB(skb)->seq == tcp_rsk(req)->rcv_isn) {
if (tcp_rsk(req)->accecn_ok && tmp_opt.accecn &&
tcp_rsk(req)->saw_accecn_opt < TCP_ACCECN_OPT_COUNTER_SEEN) {
tcp_rsk(req)->saw_accecn_opt = saw_opt;
if (tcp_rsk(req)->saw_accecn_opt == TCP_ACCECN_OPT_FAIL_SEEN) {
tcp_rsk(req)->accecn_fail_mode |= fail_mode;
TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) {
!after(TCP_SKB_CB(skb)->seq, tcp_rsk(req)->rcv_nxt))
struct tcp_request_sock *treq = tcp_rsk(req);
opts->tsval = tcp_skb_timestamp_ts(tcp_rsk(req)->req_usec_ts, skb) +
tcp_rsk(req)->ts_off;
if (!tcp_rsk(req)->snt_tsval_first) {
tcp_rsk(req)->snt_tsval_first = opts->tsval;
WRITE_ONCE(tcp_rsk(req)->snt_tsval_last, opts->tsval);
if (!tcp_rsk(req)->snt_synack) /* Timestamp first SYNACK */
tcp_rsk(req)->snt_synack = tcp_skb_timestamp_us(skb);
u8 keyid = tcp_rsk(req)->ao_keyid;
u8 rnext = tcp_rsk(req)->ao_rcv_next;
key.md5_key = tcp_rsk(req)->af_specific->req_md5_lookup(sk,
skb_set_hash(skb, READ_ONCE(tcp_rsk(req)->txhash), PKT_HASH_TYPE_L4);
th->seq = htonl(tcp_rsk(req)->snt_isn);
th->ack_seq = htonl(tcp_rsk(req)->rcv_nxt);
tcp_options_write(th, NULL, tcp_rsk(req), &opts, &key);
tcp_rsk(req)->af_specific->calc_md5_hash(opts.hash_location,
tcp_rsk(req)->af_specific->ao_synack_hash(opts.hash_location,
const struct tcp_request_sock_ops *af_ops = tcp_rsk(req)->af_specific;
WRITE_ONCE(tcp_rsk(req)->txhash, net_tx_rndhash());
if (req->num_retrans > 1 && tcp_rsk(req)->accecn_ok)
tcp_rsk(req)->accecn_fail_mode |= TCP_ACCECN_ACE_FAIL_SEND;
tcp_rsk(req)->accecn_ok = ireq->ecn_ok && cookie_accecn_ok(th);
htonl(tcp_rsk(req)->snt_isn),
htonl(tcp_rsk(req)->rcv_isn));
tcp_rsk(req)->snt_isn + 1 : tcp_sk(sk)->snd_nxt,
tcp_rsk(req)->rcv_nxt,
tcp_rsk_tsval(tcp_rsk(req)),
READ_ONCE(tcp_rsk(req)->txhash));
newnp->tclass = tcp_rsk(req)->syn_tos & ~INET_ECN_MASK;
snd_una = fastopen ? tcp_rsk(fastopen)->snt_isn : tp->snd_una;
tcp_rsk(req)->syn_ect_snt = np->tclass & INET_ECN_MASK;
(tcp_rsk(req)->syn_tos & ~INET_ECN_MASK) |
if (!tcp_rsk(req)->is_mptcp ||
tcp_rsk(req)->is_mptcp = 1;
tcp_rsk(req)->is_mptcp = 1;
fallback_is_fatal = tcp_rsk(req)->is_mptcp && subflow_req->mp_join;
fallback = !tcp_rsk(req)->is_mptcp;
tcp_rsk(req)->drop_req = false;
tcp_rsk(req)->drop_req = true;
tcp_rsk(req)->drop_req = true;