Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_stacks/rack.c
Context not available. | |||||
#ifdef TCP_ACCOUNTING | #ifdef TCP_ACCOUNTING | ||||
int ack_val_set = 0xf; | int ack_val_set = 0xf; | ||||
#endif | #endif | ||||
int nsegs; | |||||
uint32_t us_cts; | uint32_t us_cts; | ||||
/* | /* | ||||
* tv passed from common code is from either M_TSTMP_LRO or | * tv passed from common code is from either M_TSTMP_LRO or | ||||
Context not available. | |||||
if (m->m_flags & M_ACKCMP) { | if (m->m_flags & M_ACKCMP) { | ||||
panic("Impossible reach m has ackcmp? m:%p tp:%p", m, tp); | panic("Impossible reach m has ackcmp? m:%p tp:%p", m, tp); | ||||
} | } | ||||
nsegs = m->m_pkthdr.lro_nsegs; | |||||
counter_u64_add(rack_proc_non_comp_ack, 1); | counter_u64_add(rack_proc_non_comp_ack, 1); | ||||
thflags = th->th_flags; | thflags = th->th_flags; | ||||
#ifdef TCP_ACCOUNTING | #ifdef TCP_ACCOUNTING | ||||
Context not available. | |||||
if ((thflags & TH_SYN) && (thflags & TH_FIN) && V_drop_synfin) { | if ((thflags & TH_SYN) && (thflags & TH_FIN) && V_drop_synfin) { | ||||
way_out = 4; | way_out = 4; | ||||
retval = 0; | retval = 0; | ||||
m_freem(m); | |||||
goto done_with_input; | goto done_with_input; | ||||
} | } | ||||
/* | /* | ||||
Context not available. | |||||
((thflags & TH_RST) == 0) && (V_tcp_tolerate_missing_ts == 0)) { | ((thflags & TH_RST) == 0) && (V_tcp_tolerate_missing_ts == 0)) { | ||||
way_out = 5; | way_out = 5; | ||||
retval = 0; | retval = 0; | ||||
m_freem(m); | |||||
goto done_with_input; | goto done_with_input; | ||||
} | } | ||||
Context not available. | |||||
way_out = 2; | way_out = 2; | ||||
} | } | ||||
done_with_input: | done_with_input: | ||||
rack_log_doseg_done(rack, cts, nxt_pkt, did_out, way_out, max(1, m->m_pkthdr.lro_nsegs)); | rack_log_doseg_done(rack, cts, nxt_pkt, did_out, way_out, max(1, nsegs)); | ||||
if (did_out) | if (did_out) | ||||
rack->r_wanted_output = 0; | rack->r_wanted_output = 0; | ||||
#ifdef INVARIANTS | #ifdef INVARIANTS | ||||
Context not available. |