| 4060 | } |
| 4061 | |
| 4062 | static struct bbr_sendmap * |
| 4063 | bbr_find_high_nonack(struct tcp_bbr *bbr, struct bbr_sendmap *rsm) |
| 4064 | { |
| 4065 | struct bbr_sendmap *prsm; |
| 4066 | |
| 4067 | /* |
| 4068 | * Walk the sequence order list backward until we hit and arrive at |
| 4069 | * the highest seq not acked. In theory when this is called it |
| 4070 | * should be the last segment (which it was not). |
| 4071 | */ |
| 4072 | prsm = rsm; |
| 4073 | TAILQ_FOREACH_REVERSE_FROM(prsm, &bbr->r_ctl.rc_map, bbr_head, r_next) { |
| 4074 | if (prsm->r_flags & (BBR_ACKED | BBR_HAS_FIN)) { |
| 4075 | continue; |
| 4076 | } |
| 4077 | return (prsm); |
| 4078 | } |
| 4079 | return (NULL); |
| 4080 | } |
| 4081 | |
| 4082 | /* |
| 4083 | * Returns to the caller the number of microseconds that |