Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I84ec1c91a3a7b2195aad58923fa6f17f551444cb
wnd = available_space;
}
- /* Make sure we have a multiple of rcv_wscale */
+ /* Make sure we have a multiple of 1 << rcv_wscale. We round up to
+ * avoid advertising a window less than mss which could happen if
+ * 1 << rcv_wscale < mss */
if (wnd && tc->rcv_wscale)
- {
- wnd &= ~((1 << tc->rcv_wscale) - 1);
- if (wnd == 0)
- wnd = 1 << tc->rcv_wscale;
- }
+ wnd = round_pow2 (wnd, 1 << tc->rcv_wscale);
tc->rcv_wnd = clib_min (wnd, TCP_WND_MAX << tc->rcv_wscale);
}