Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_stacks/rack.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 10,873 Lines • ▼ Show 20 Lines | #endif | ||||
*/ | */ | ||||
tcp_dooptions(&to, (u_char *)(th + 1), | tcp_dooptions(&to, (u_char *)(th + 1), | ||||
(th->th_off << 2) - sizeof(struct tcphdr), | (th->th_off << 2) - sizeof(struct tcphdr), | ||||
(thflags & TH_SYN) ? TO_SYN : 0); | (thflags & TH_SYN) ? TO_SYN : 0); | ||||
/* | /* | ||||
* If timestamps were negotiated during SYN/ACK and a | * If timestamps were negotiated during SYN/ACK and a | ||||
* segment without a timestamp is received, silently drop | * segment without a timestamp is received, silently drop | ||||
* the segment, unless it is a RST segment. | * the segment, unless it is a RST segment or missing timestamps are | ||||
* tolerated. | |||||
* See section 3.2 of RFC 7323. | * See section 3.2 of RFC 7323. | ||||
*/ | */ | ||||
if ((tp->t_flags & TF_RCVD_TSTMP) && !(to.to_flags & TOF_TS) && | if ((tp->t_flags & TF_RCVD_TSTMP) && !(to.to_flags & TOF_TS) && | ||||
((thflags & TH_RST) == 0)) { | ((thflags & TH_RST) == 0) && (V_tcp_tolerate_missing_ts == 0)) { | ||||
way_out = 5; | way_out = 5; | ||||
retval = 0; | retval = 0; | ||||
goto done_with_input; | goto done_with_input; | ||||
} | } | ||||
/* | /* | ||||
* Segment received on connection. Reset idle time and keep-alive | * Segment received on connection. Reset idle time and keep-alive | ||||
* timer. XXX: This should be done after segment validation to | * timer. XXX: This should be done after segment validation to | ||||
▲ Show 20 Lines • Show All 4,083 Lines • Show Last 20 Lines |