MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rack_log_sack_passed

Function rack_log_sack_passed

freebsd/netinet/tcp_stacks/rack.c:6803–6835  ·  view source on GitHub ↗

* Mark the SACK_PASSED flag on all entries prior to rsm send wise. */

Source from the content-addressed store, hash-verified

6801 * Mark the SACK_PASSED flag on all entries prior to rsm send wise.
6802 */
6803static void
6804rack_log_sack_passed(struct tcpcb *tp,
6805 struct tcp_rack *rack, struct rack_sendmap *rsm)
6806{
6807 struct rack_sendmap *nrsm;
6808
6809 nrsm = rsm;
6810 TAILQ_FOREACH_REVERSE_FROM(nrsm, &rack->r_ctl.rc_tmap,
6811 rack_head, r_tnext) {
6812 if (nrsm == rsm) {
6813 /* Skip orginal segment he is acked */
6814 continue;
6815 }
6816 if (nrsm->r_flags & RACK_ACKED) {
6817 /*
6818 * Skip ack'd segments, though we
6819 * should not see these, since tmap
6820 * should not have ack'd segments.
6821 */
6822 continue;
6823 }
6824 if (nrsm->r_flags & RACK_SACK_PASSED) {
6825 /*
6826 * We found one that is already marked
6827 * passed, we have been here before and
6828 * so all others below this are marked.
6829 */
6830 break;
6831 }
6832 nrsm->r_flags |= RACK_SACK_PASSED;
6833 nrsm->r_flags &= ~RACK_WAS_SACKPASS;
6834 }
6835}
6836
6837static void
6838rack_need_set_test(struct tcpcb *tp,

Callers 1

rack_proc_sack_blkFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected