| 8181 | } |
| 8182 | |
| 8183 | static void |
| 8184 | bbr_un_collapse_window(struct tcp_bbr *bbr) |
| 8185 | { |
| 8186 | struct bbr_sendmap *rsm; |
| 8187 | int cleared = 0; |
| 8188 | |
| 8189 | TAILQ_FOREACH_REVERSE(rsm, &bbr->r_ctl.rc_map, bbr_head, r_next) { |
| 8190 | if (rsm->r_flags & BBR_RWND_COLLAPSED) { |
| 8191 | /* Clear the flag */ |
| 8192 | rsm->r_flags &= ~BBR_RWND_COLLAPSED; |
| 8193 | cleared++; |
| 8194 | } else |
| 8195 | break; |
| 8196 | } |
| 8197 | bbr_log_type_rwnd_collapse(bbr, |
| 8198 | (bbr->rc_tp->snd_una + bbr->rc_tp->snd_wnd), 0, cleared); |
| 8199 | bbr->rc_has_collapsed = 0; |
| 8200 | } |
| 8201 | |
| 8202 | /* |
| 8203 | * Return value of 1, the TCB is unlocked and most |
no test coverage detected