Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_input.c
Show First 20 Lines • Show All 3,039 Lines • ▼ Show 20 Lines | if (th->th_seq == tp->rcv_nxt && | ||||
* theoretically invalid by now. Fortunately | * theoretically invalid by now. Fortunately | ||||
* m_adj() doesn't actually frees any mbufs | * m_adj() doesn't actually frees any mbufs | ||||
* when trimming from the head. | * when trimming from the head. | ||||
*/ | */ | ||||
tcp_seq temp = save_start; | tcp_seq temp = save_start; | ||||
thflags = tcp_reass(tp, th, &temp, &tlen, m); | thflags = tcp_reass(tp, th, &temp, &tlen, m); | ||||
tp->t_flags |= TF_ACKNOW; | tp->t_flags |= TF_ACKNOW; | ||||
} | } | ||||
if (tp->t_flags & TF_SACK_PERMIT) { | if ((tp->t_flags & TF_SACK_PERMIT) && (save_tlen > 0)) { | ||||
if (((tlen == 0) && (save_tlen > 0) && | if ((tlen == 0) && (SEQ_LT(save_start, save_rnxt))) { | ||||
rscheff: you can remove the outermost bracket here. | |||||
Done Inline ActionsDone. tuexen: Done. | |||||
(SEQ_LT(save_start, save_rnxt)))) { | |||||
/* | /* | ||||
* DSACK actually handled in the fastpath | * DSACK actually handled in the fastpath | ||||
* above. | * above. | ||||
*/ | */ | ||||
tcp_update_sack_list(tp, save_start, | tcp_update_sack_list(tp, save_start, | ||||
save_start + save_tlen); | save_start + save_tlen); | ||||
} else if ((tlen > 0) && SEQ_GT(tp->rcv_nxt, save_rnxt)) { | } else if ((tlen > 0) && SEQ_GT(tp->rcv_nxt, save_rnxt)) { | ||||
/* | |||||
* Cleaning sackblks by using zero length | |||||
* update. | |||||
*/ | |||||
if ((tp->rcv_numsacks >= 1) && | if ((tp->rcv_numsacks >= 1) && | ||||
Done Inline ActionsThis comment is no longer valid now. missed this with the full rfc2883 update. rscheff: This comment is no longer valid now. missed this with the full rfc2883 update. | |||||
Done Inline ActionsRemoved. tuexen: Removed. | |||||
(tp->sackblks[0].end == save_start)) { | (tp->sackblks[0].end == save_start)) { | ||||
/* partial overlap, recorded at todrop above */ | /* | ||||
tcp_update_sack_list(tp, tp->sackblks[0].start, | * Partial overlap, recorded at todrop | ||||
* above. | |||||
*/ | |||||
tcp_update_sack_list(tp, | |||||
tp->sackblks[0].start, | |||||
tp->sackblks[0].end); | tp->sackblks[0].end); | ||||
} else { | } else { | ||||
tcp_update_dsack_list(tp, save_start, | tcp_update_dsack_list(tp, save_start, | ||||
save_start + save_tlen); | save_start + save_tlen); | ||||
} | } | ||||
} else if ((tlen > 0) && (tlen >= save_tlen)) { | } else if (tlen >= save_tlen) { | ||||
/* Update of sackblks. */ | /* Update of sackblks. */ | ||||
tcp_update_dsack_list(tp, save_start, | tcp_update_dsack_list(tp, save_start, | ||||
save_start + save_tlen); | save_start + save_tlen); | ||||
} else if (tlen > 0) { | } else if (tlen > 0) { | ||||
tcp_update_dsack_list(tp, save_start, | tcp_update_dsack_list(tp, save_start, | ||||
save_start + tlen); | save_start + tlen); | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 796 Lines • Show Last 20 Lines |
you can remove the outermost bracket here.