vcl: expand vcl select maps in ldp if needed
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I56c487821233cebf2146745a4706cb573cc088a5
This commit is contained in:

committed by
Dave Barach

parent
b86437b79b
commit
cbce80aaa3
@ -620,12 +620,13 @@ ldp_select_init_maps (fd_set * __restrict original,
|
|||||||
if (vlsh == VLS_INVALID_HANDLE)
|
if (vlsh == VLS_INVALID_HANDLE)
|
||||||
clib_bitmap_set_no_check (*libcb, fd, 1);
|
clib_bitmap_set_no_check (*libcb, fd, 1);
|
||||||
else
|
else
|
||||||
clib_bitmap_set_no_check (*vclb, vlsh_to_session_index (vlsh), 1);
|
*vclb = clib_bitmap_set (*vclb, vlsh_to_session_index (vlsh), 1);
|
||||||
}));
|
}));
|
||||||
/* *INDENT-ON* */
|
/* *INDENT-ON* */
|
||||||
|
|
||||||
si_bits_set = clib_bitmap_last_set (*vclb) + 1;
|
si_bits_set = clib_bitmap_last_set (*vclb) + 1;
|
||||||
*si_bits = (si_bits_set > *si_bits) ? si_bits_set : *si_bits;
|
*si_bits = (si_bits_set > *si_bits) ? si_bits_set : *si_bits;
|
||||||
|
clib_bitmap_validate (*resultb, *si_bits);
|
||||||
|
|
||||||
libc_bits_set = clib_bitmap_last_set (*libcb) + 1;
|
libc_bits_set = clib_bitmap_last_set (*libcb) + 1;
|
||||||
*libc_bits = (libc_bits_set > *libc_bits) ? libc_bits_set : *libc_bits;
|
*libc_bits = (libc_bits_set > *libc_bits) ? libc_bits_set : *libc_bits;
|
||||||
@ -757,15 +758,15 @@ ldp_pselect (int nfds, fd_set * __restrict readfds,
|
|||||||
{
|
{
|
||||||
if (readfds)
|
if (readfds)
|
||||||
clib_memcpy_fast (ldpw->rd_bitmap, ldpw->si_rd_bitmap,
|
clib_memcpy_fast (ldpw->rd_bitmap, ldpw->si_rd_bitmap,
|
||||||
vec_len (ldpw->rd_bitmap) *
|
vec_len (ldpw->si_rd_bitmap) *
|
||||||
sizeof (clib_bitmap_t));
|
sizeof (clib_bitmap_t));
|
||||||
if (writefds)
|
if (writefds)
|
||||||
clib_memcpy_fast (ldpw->wr_bitmap, ldpw->si_wr_bitmap,
|
clib_memcpy_fast (ldpw->wr_bitmap, ldpw->si_wr_bitmap,
|
||||||
vec_len (ldpw->wr_bitmap) *
|
vec_len (ldpw->si_wr_bitmap) *
|
||||||
sizeof (clib_bitmap_t));
|
sizeof (clib_bitmap_t));
|
||||||
if (exceptfds)
|
if (exceptfds)
|
||||||
clib_memcpy_fast (ldpw->ex_bitmap, ldpw->si_ex_bitmap,
|
clib_memcpy_fast (ldpw->ex_bitmap, ldpw->si_ex_bitmap,
|
||||||
vec_len (ldpw->ex_bitmap) *
|
vec_len (ldpw->si_ex_bitmap) *
|
||||||
sizeof (clib_bitmap_t));
|
sizeof (clib_bitmap_t));
|
||||||
|
|
||||||
rv = vls_select (si_bits, readfds ? ldpw->rd_bitmap : NULL,
|
rv = vls_select (si_bits, readfds ? ldpw->rd_bitmap : NULL,
|
||||||
|
Reference in New Issue
Block a user