Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_output.c
Show First 20 Lines • Show All 1,175 Lines • ▼ Show 20 Lines | #endif | ||||
} | } | ||||
/* Handle parallel SYN for ECN */ | /* Handle parallel SYN for ECN */ | ||||
if ((tp->t_state == TCPS_SYN_RECEIVED) && | if ((tp->t_state == TCPS_SYN_RECEIVED) && | ||||
(tp->t_flags2 & TF2_ECN_SND_ECE)) { | (tp->t_flags2 & TF2_ECN_SND_ECE)) { | ||||
flags |= TH_ECE; | flags |= TH_ECE; | ||||
tp->t_flags2 &= ~TF2_ECN_SND_ECE; | tp->t_flags2 &= ~TF2_ECN_SND_ECE; | ||||
} | } | ||||
if (tp->t_state == TCPS_ESTABLISHED && | if (TCPS_HAVEESTABLISHED(tp->t_state) && | ||||
(tp->t_flags2 & TF2_ECN_PERMIT)) { | (tp->t_flags2 & TF2_ECN_PERMIT)) { | ||||
/* | /* | ||||
* If the peer has ECN, mark data packets with | * If the peer has ECN, mark data packets with | ||||
* ECN capable transmission (ECT). | * ECN capable transmission (ECT). | ||||
* Ignore pure ack packets, retransmissions and window probes. | * Ignore pure ack packets, retransmissions and window probes. | ||||
*/ | */ | ||||
if (len > 0 && SEQ_GEQ(tp->snd_nxt, tp->snd_max) && | if (len > 0 && SEQ_GEQ(tp->snd_nxt, tp->snd_max) && | ||||
(sack_rxmit == 0) && | (sack_rxmit == 0) && | ||||
▲ Show 20 Lines • Show All 940 Lines • Show Last 20 Lines |