X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvcl%2Fvppcom.c;h=dd7e90e2a99496060c662bc7d2c41106661ac3c1;hb=a332c46a51f9b4e13963340dfee1318e7513c124;hp=e28da69314989225c106735357f549ef21d8ae70;hpb=504a71f2d7b5ee1d9069e5fc2357de564cb35b5a;p=vpp.git diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index e28da693149..dd7e90e2a99 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -441,6 +441,10 @@ vppcom_connect_to_vpp (char *app_name) vcm->vl_input_queue = am->shmem_hdr->vl_input_queue; vcm->my_client_index = am->my_client_index; vcm->app_state = STATE_APP_CONN_VPP; + + if (VPPCOM_DEBUG > 0) + clib_warning ("VCL<%d>: app (%s) is connected to VPP!", + getpid (), app_name); } if (VPPCOM_DEBUG > 0) @@ -471,9 +475,6 @@ vppcom_connect_to_vpp (char *app_name) ed->data = rv; /* *INDENT-ON* */ } - - clib_warning ("VCL<%d>: app (%s) is connected to VPP!", - getpid (), app_name); return rv; } @@ -1632,7 +1633,6 @@ vppcom_session_disconnect (u32 session_index) { if (is_server) { - svm_fifo_segment_main_t *sm = &svm_fifo_segment_main; svm_fifo_segment_private_t *seg; VCL_LOCK_AND_GET_SESSION (session_index, &session); @@ -1648,7 +1648,7 @@ vppcom_session_disconnect (u32 session_index) session->server_tx_fifo, session->server_tx_fifo->refcnt); - seg = vec_elt_at_index (sm->segments, session->sm_seg_index); + seg = svm_fifo_segment_get_segment (session->sm_seg_index); svm_fifo_segment_free_fifo (seg, session->server_rx_fifo, FIFO_SEGMENT_RX_FREELIST); svm_fifo_segment_free_fifo (seg, session->server_tx_fifo, @@ -2304,8 +2304,8 @@ vppcom_app_create (char *app_name) clib_time_init (&vcm->clib_time); vppcom_init_error_string_table (); - svm_fifo_segment_init (vcl_cfg->segment_baseva, - 20 /* timeout in secs */ ); + svm_fifo_segment_main_init (vcl_cfg->segment_baseva, + 20 /* timeout in secs */ ); clib_spinlock_init (&vcm->sessions_lockp); } @@ -2722,7 +2722,7 @@ vppcom_session_accept (uint32_t listen_session_index, vppcom_endpt_t * ep, { session_t *listen_session = 0; session_t *client_session = 0; - u32 client_session_index = ~0; + u32 client_session_index = ~0, n_fifos; int rv; f64 wait_for; char *cut_thru_str; @@ -2821,9 +2821,6 @@ vppcom_session_accept (uint32_t listen_session_index, vppcom_endpt_t * ep, format ((u8 *) a->segment_name, "%d:segment%d%c", getpid (), vcm->unique_segment_index++, 0); a->segment_size = vcm->cfg.segment_size; - a->preallocated_fifo_pairs = vcm->cfg.preallocated_fifo_pairs; - a->rx_fifo_size = vcm->cfg.rx_fifo_size; - a->tx_fifo_size = vcm->cfg.tx_fifo_size; rv = svm_fifo_segment_create (a); if (PREDICT_FALSE (rv)) @@ -2850,6 +2847,14 @@ vppcom_session_accept (uint32_t listen_session_index, vppcom_endpt_t * ep, vec_free (a->new_segment_indices); seg = svm_fifo_segment_get_segment (client_session->sm_seg_index); + if (vcm->cfg.preallocated_fifo_pairs) + { + n_fifos = vcm->cfg.preallocated_fifo_pairs; + svm_fifo_segment_preallocate_fifo_pairs (seg, vcm->cfg.rx_fifo_size, + vcm->cfg.tx_fifo_size, + &n_fifos); + } + client_session->server_rx_fifo = svm_fifo_segment_alloc_fifo (seg, vcm->cfg.rx_fifo_size, FIFO_SEGMENT_RX_FREELIST); @@ -4360,7 +4365,7 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, ELOG_TYPE_DECLARE (e) = { .format = "VPPCOM_ATTR_GET_FLAGS: flags=%x is_nonblk=%d", - .format_args = "i4", + .format_args = "i4i4", }; struct { @@ -4395,7 +4400,7 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, ELOG_TYPE_DECLARE (e) = { .format = "VPPCOM_ATTR_SET_FLAGS: flags=%x is_nonblk=%d", - .format_args = "i4", + .format_args = "i4i4", }; struct { @@ -4553,6 +4558,23 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, if (VPPCOM_DEBUG > 2) clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_LIBC_EPFD: libc_epfd %d", getpid (), rv); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_LIBC_EPFD: libc_epfd=%d", + .format_args = "i4", + }; + CLIB_PACKED (struct { + i32 data; + }) * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data = session->libc_epfd; + /* *INDENT-ON* */ + } + break; case VPPCOM_ATTR_SET_LIBC_EPFD: @@ -4639,6 +4661,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, if (VPPCOM_DEBUG > 2) clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_LISTEN: %d, " "buflen %d", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_LISTEN: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4654,6 +4694,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_ERROR: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_ERROR: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4677,6 +4735,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_TX_FIFO_LEN: %u (0x%x), " "buflen %d, #VPP-TBD#", getpid (), *(size_t *) buffer, *(size_t *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_TX_FIFO_LEN: 0x%x buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(size_t *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4692,6 +4768,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, "buflen %d, #VPP-TBD#", getpid (), session->sndbuf_size, session->sndbuf_size, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_TX_FIFO_LEN: 0x%x buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = session->sndbuf_size; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4715,6 +4809,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_RX_FIFO_LEN: %u (0x%x), " "buflen %d, #VPP-TBD#", getpid (), *(size_t *) buffer, *(size_t *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_RX_FIFO_LEN: 0x%x buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(size_t *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4730,6 +4842,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, "buflen %d, #VPP-TBD#", getpid (), session->sndbuf_size, session->sndbuf_size, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_TX_FIFO_LEN: 0x%x buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = session->sndbuf_size; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4747,6 +4877,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_REUSEADDR: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_REUSEADDR: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4768,6 +4916,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_REUSEADDR), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_REUSEADDR: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_REUSEADDR); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4785,6 +4952,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_REUSEPORT: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_REUSEPORT: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4806,6 +4991,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_REUSEPORT), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_REUSEPORT: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_REUSEPORT); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4823,6 +5027,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_BROADCAST: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_BROADCAST: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4843,6 +5065,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_BROADCAST), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_BROADCAST: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_BROADCAST); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4860,6 +5101,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_V6ONLY: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_V6ONLY: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4879,6 +5138,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, "buflen %d, #VPP-TBD#", getpid (), VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_V6ONLY), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_V6ONLY: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_V6ONLY); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4896,6 +5174,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_KEEPALIVE: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_KEEPALIVE: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4916,6 +5212,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_KEEPALIVE), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_KEEPALIVE: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_KEEPALIVE); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4933,6 +5248,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_TCP_NODELAY: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_TCP_NODELAY: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4953,6 +5286,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_TCP_NODELAY), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_TCP_NODELAY: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_TCP_NODELAY); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4970,6 +5322,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_TCP_KEEPIDLE: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_TCP_KEEPIDLE: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -4990,6 +5360,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_TCP_KEEPIDLE), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_TCP_KEEPIDLE: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_TCP_KEEPIDLE); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -5007,6 +5396,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_TCP_KEEPINTVL: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_TCP_KEEPIDLE: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -5027,6 +5434,25 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_TCP_KEEPINTVL), *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_TCP_KEEPINTVL: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = VCL_SESS_ATTR_TEST (session->attr, + VCL_SESS_ATTR_TCP_KEEPINTVL); + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -5043,6 +5469,24 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_TCP_USER_MSS: %d, " "buflen %d, #VPP-TBD#", getpid (), *(int *) buffer, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_GET_TCP_USER_MSS: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = *(int *) buffer; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -5055,9 +5499,27 @@ vppcom_session_attr (uint32_t session_index, uint32_t op, session->user_mss = *(u32 *) buffer; if (VPPCOM_DEBUG > 2) - clib_warning ("VCL<%d>: VPPCOM_ATTR_SET_TCP_KEEPINTVL: %u, " + clib_warning ("VCL<%d>: VPPCOM_ATTR_SET_TCP_USER_MSS: %u, " "buflen %d, #VPP-TBD#", getpid (), session->user_mss, *buflen); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "VPPCOM_ATTR_SET_TCP_USER_MSS: %d buflen=%d", + .format_args = "i4i4", + }; + + struct { + u32 data[2]; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track); + ed->data[0] = session->user_mss; + ed->data[1] = *buflen; + /* *INDENT-ON* */ + } } else rv = VPPCOM_EINVAL; @@ -5091,6 +5553,23 @@ vppcom_session_recvfrom (uint32_t session_index, void *buffer, clib_warning ("VCL<%d>: invalid session, " "sid (%u) has been closed!", getpid (), session_index); + if (VPPCOM_DEBUG > 0) + { + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "invalid session: %d closed", + .format_args = "i4", + }; + + struct { + u32 data; + } * ed; + + ed = ELOG_TRACK_DATA (&vcm->elog_main, e, vcm->elog_track); + ed->data = session_index; + /* *INDENT-ON* */ + } rv = VPPCOM_EBADFD; clib_spinlock_unlock (&vcm->sessions_lockp); goto done;