vcl: switch to closed state after app close

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I851db474538de76d5f70dd6d6f83a6487a5a02bd
This commit is contained in:
Florin Coras 2020-02-04 19:04:34 +00:00 committed by Florin Coras
parent 9fbacbc56b
commit 5414062412
3 changed files with 7 additions and 4 deletions

View File

@ -653,6 +653,7 @@ ldp_select_vcl_map_to_libc (clib_bitmap_t * vclb, fd_set * __restrict libcb)
/* *INDENT-OFF* */
clib_bitmap_foreach (si, vclb, ({
vlsh = vls_session_index_to_vlsh (si);
ASSERT (vlsh != VLS_INVALID_HANDLE);
fd = ldp_vlsh_to_fd (vlsh);
if (PREDICT_FALSE (fd < 0))
{

View File

@ -64,7 +64,7 @@ typedef enum
typedef enum
{
STATE_START = 0,
STATE_CLOSED = 0,
STATE_CONNECT = 0x01,
STATE_LISTEN = 0x02,
STATE_ACCEPT = 0x04,

View File

@ -60,8 +60,8 @@ vppcom_session_state_str (vcl_session_state_t state)
switch (state)
{
case STATE_START:
st = "STATE_START";
case STATE_CLOSED:
st = "STATE_CLOSED";
break;
case STATE_CONNECT:
@ -1220,7 +1220,7 @@ vppcom_session_create (u8 proto, u8 is_nonblocking)
session = vcl_session_alloc (wrk);
session->session_type = proto;
session->session_state = STATE_START;
session->session_state = STATE_CLOSED;
session->vpp_handle = ~0;
session->is_dgram = vcl_proto_is_dgram (proto);
@ -1309,6 +1309,8 @@ vcl_session_cleanup (vcl_worker_t * wrk, vcl_session_t * session,
session->vpp_handle, 0);
}
session->session_state = STATE_CLOSED;
/* Session is removed only after vpp confirms the disconnect */
return rv;