X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvcl%2Fvppcom.c;h=70afdce78325e12505d18a6f46969365fed05630;hb=34a3a08d993cbbb3846b83b69b5338d452463e15;hp=be3081edcf501f865602140a6e805f6cc87559f1;hpb=c227e4950d3bc791d2ec4a2131916f9b5c40f008;p=vpp.git diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index be3081edcf5..70afdce7832 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -410,7 +410,7 @@ vcl_flag_accepted_session (vcl_session_t * session, u64 handle, u32 flags) accepted_msg = &session->accept_evts_fifo[i]; if (accepted_msg->accepted_msg.handle == handle) { - accepted_msg->flags = flags; + accepted_msg->flags |= flags; return 1; } } @@ -431,8 +431,6 @@ vcl_session_reset_handler (vcl_worker_t * wrk, VDBG (0, "request to reset unknown handle 0x%llx", reset_msg->handle); return VCL_INVALID_SESSION_INDEX; } - if (session->session_state >= STATE_VPP_CLOSING) - return sid; /* Caught a reset before actually accepting the session */ if (session->session_state == STATE_LISTEN) @@ -446,8 +444,6 @@ vcl_session_reset_handler (vcl_worker_t * wrk, session->session_state = STATE_DISCONNECT; VDBG (0, "reset session %u [0x%llx]", sid, reset_msg->handle); - vcl_send_session_reset_reply (vcl_session_vpp_evt_q (wrk, session), - wrk->my_client_index, reset_msg->handle, 0); return sid; } @@ -509,7 +505,8 @@ vcl_session_accepted (vcl_worker_t * wrk, session_accepted_msg_t * msg) session = vcl_session_get_w_vpp_handle (wrk, msg->handle); if (PREDICT_FALSE (session != 0)) - VWRN ("session handle overlap %lu!", msg->handle); + VWRN ("session overlap handle %lu state %u!", msg->handle, + session->session_state); session = vcl_session_table_lookup_listener (wrk, msg->listener_handle); if (!session) @@ -1119,6 +1116,12 @@ vppcom_session_close (uint32_t session_handle) getpid (), vpp_handle, session_handle, rv, vppcom_retval_str (rv)); } + else if (state == STATE_DISCONNECT) + { + svm_msg_q_t *mq = vcl_session_vpp_evt_q (wrk, session); + vcl_send_session_reset_reply (mq, wrk->my_client_index, + session->vpp_handle, 0); + } } cleanup: @@ -1188,7 +1191,7 @@ vppcom_session_bind (uint32_t session_handle, vppcom_endpt_t * ep) format_ip46_address, &session->transport.lcl_ip, session->transport.is_ip4 ? IP46_TYPE_IP4 : IP46_TYPE_IP6, clib_net_to_host_u16 (session->transport.lcl_port), - session->session_type ? "UDP" : "TCP"); + vppcom_proto_str (session->session_type)); vcl_evt (VCL_EVT_BIND, session); if (session->session_type == VPPCOM_PROTO_UDP) @@ -1243,6 +1246,55 @@ vppcom_session_listen (uint32_t listen_sh, uint32_t q_len) return VPPCOM_OK; } +int +vppcom_session_tls_add_cert (uint32_t session_handle, char *cert, + uint32_t cert_len) +{ + + vcl_worker_t *wrk = vcl_worker_get_current (); + vcl_session_t *session = 0; + + session = vcl_session_get_w_handle (wrk, session_handle); + if (!session) + return VPPCOM_EBADFD; + + if (cert_len == 0 || cert_len == ~0) + return VPPCOM_EBADFD; + + /* + * Send listen request to vpp and wait for reply + */ + vppcom_send_application_tls_cert_add (session, cert, cert_len); + + return VPPCOM_OK; + +} + +int +vppcom_session_tls_add_key (uint32_t session_handle, char *key, + uint32_t key_len) +{ + + vcl_worker_t *wrk = vcl_worker_get_current (); + vcl_session_t *session = 0; + + session = vcl_session_get_w_handle (wrk, session_handle); + if (!session) + return VPPCOM_EBADFD; + + if (key_len == 0 || key_len == ~0) + return VPPCOM_EBADFD; + + /* + * Send listen request to vpp and wait for reply + */ + vppcom_send_application_tls_key_add (session, key, key_len); + + return VPPCOM_OK; + + +} + static int validate_args_session_accept_ (vcl_worker_t * wrk, vcl_session_t * listen_session) @@ -1378,19 +1430,10 @@ handle: */ if (accept_flags) { - svm_msg_q_t *mq = vcl_session_vpp_evt_q (wrk, client_session); if (accept_flags & VCL_ACCEPTED_F_CLOSED) - { - client_session->session_state = STATE_DISCONNECT; - vcl_send_session_disconnected_reply (mq, wrk->my_client_index, - client_session->vpp_handle, 0); - } + client_session->session_state = STATE_VPP_CLOSING; else if (accept_flags & VCL_ACCEPTED_F_RESET) - { - client_session->session_state = STATE_DISCONNECT; - vcl_send_session_reset_reply (mq, wrk->my_client_index, - client_session->vpp_handle, 0); - } + client_session->session_state = STATE_DISCONNECT; } return vcl_session_handle (client_session); } @@ -1426,7 +1469,7 @@ vppcom_session_connect (uint32_t session_handle, vppcom_endpt_t * server_ep) &session->transport.rmt_ip, session->transport.is_ip4 ? IP46_TYPE_IP4 : IP46_TYPE_IP6, clib_net_to_host_u16 (session->transport.rmt_port), - session->session_type ? "UDP" : "TCP", session->session_state, + vppcom_proto_str (session->session_type), session->session_state, vppcom_session_state_str (session->session_state)); return VPPCOM_OK; } @@ -1448,7 +1491,7 @@ vppcom_session_connect (uint32_t session_handle, vppcom_endpt_t * server_ep) &session->transport.rmt_ip, session->transport.is_ip4 ? IP46_TYPE_IP4 : IP46_TYPE_IP6, clib_net_to_host_u16 (session->transport.rmt_port), - session->session_type ? "UDP" : "TCP"); + vppcom_proto_str (session->session_type)); /* * Send connect request and wait for reply from vpp @@ -1524,9 +1567,8 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n, session_state_t state = s->session_state; rv = ((state & STATE_DISCONNECT) ? VPPCOM_ECONNRESET : VPPCOM_ENOTCONN); - VDBG (0, "VCL<%d>: vpp handle 0x%llx, sid %u: %s session is not open! " - "state 0x%x (%s), returning %d (%s)", - getpid (), s->vpp_handle, session_handle, state, + VDBG (0, "session handle %u[0x%llx] is not open! state 0x%x (%s)," + " returning %d (%s)", session_handle, s->vpp_handle, state, vppcom_session_state_str (state), rv, vppcom_retval_str (rv)); return rv; } @@ -1578,8 +1620,8 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n, SVM_Q_WAIT); } - VDBG (2, "VCL<%d>: vpp handle 0x%llx, sid %u: read %d bytes from (%p)", - getpid (), s->vpp_handle, session_handle, n_read, rx_fifo); + VDBG (2, "vpp handle 0x%llx, sid %u: read %d bytes from (%p)", + s->vpp_handle, session_handle, n_read, rx_fifo); return n_read; } @@ -1831,6 +1873,14 @@ vppcom_session_write (uint32_t session_handle, void *buf, size_t n) 0 /* is_flush */ ); } +int +vppcom_session_write_msg (uint32_t session_handle, void *buf, size_t n) +{ + return vppcom_session_write_inline (session_handle, buf, n, + 1 /* is_flush */ ); +} + + static vcl_session_t * vcl_ct_session_get_from_fifo (vcl_worker_t * wrk, svm_fifo_t * f, u8 type) { @@ -1943,7 +1993,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, break; if (sid < n_bits && read_map) { - clib_bitmap_set_no_check (read_map, sid, 1); + clib_bitmap_set_no_check ((uword *) read_map, sid, 1); *bits_set += 1; } break; @@ -1954,7 +2004,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, break; if (sid < n_bits && write_map) { - clib_bitmap_set_no_check (write_map, sid, 1); + clib_bitmap_set_no_check ((uword *) write_map, sid, 1); *bits_set += 1; } break; @@ -1966,7 +2016,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, sid = session->session_index; if (sid < n_bits && read_map) { - clib_bitmap_set_no_check (read_map, sid, 1); + clib_bitmap_set_no_check ((uword *) read_map, sid, 1); *bits_set += 1; } break; @@ -1977,7 +2027,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, sid = session->session_index; if (sid < n_bits && write_map) { - clib_bitmap_set_no_check (write_map, sid, 1); + clib_bitmap_set_no_check ((uword *) write_map, sid, 1); *bits_set += 1; } break; @@ -1989,7 +2039,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, sid = session->session_index; if (sid < n_bits && read_map) { - clib_bitmap_set_no_check (read_map, sid, 1); + clib_bitmap_set_no_check ((uword *) read_map, sid, 1); *bits_set += 1; } break; @@ -2005,7 +2055,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, sid = session->session_index; if (sid < n_bits && except_map) { - clib_bitmap_set_no_check (except_map, sid, 1); + clib_bitmap_set_no_check ((uword *) except_map, sid, 1); *bits_set += 1; } break; @@ -2013,7 +2063,7 @@ vcl_select_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, sid = vcl_session_reset_handler (wrk, (session_reset_msg_t *) e->data); if (sid < n_bits && except_map) { - clib_bitmap_set_no_check (except_map, sid, 1); + clib_bitmap_set_no_check ((uword *) except_map, sid, 1); *bits_set += 1; } break; @@ -2143,30 +2193,35 @@ vppcom_select (unsigned long n_bits, unsigned long *read_map, vcl_session_t *session = 0; int rv, i; - ASSERT (sizeof (clib_bitmap_t) == sizeof (long int)); + STATIC_ASSERT (sizeof (clib_bitmap_t) == sizeof (unsigned long), + "vppcom bitmap size mismatch"); + STATIC_ASSERT (sizeof (clib_bitmap_t) == sizeof (fd_mask), + "vppcom bitmap size mismatch"); + STATIC_ASSERT (sizeof (clib_bitmap_t) == sizeof (uword), + "vppcom bitmap size mismatch"); if (n_bits && read_map) { clib_bitmap_validate (wrk->rd_bitmap, minbits); clib_memcpy_fast (wrk->rd_bitmap, read_map, - vec_len (wrk->rd_bitmap) * sizeof (clib_bitmap_t)); - memset (read_map, 0, vec_len (wrk->rd_bitmap) * sizeof (clib_bitmap_t)); + vec_len (wrk->rd_bitmap) * sizeof (unsigned long)); + memset (read_map, 0, vec_len (wrk->rd_bitmap) * sizeof (unsigned long)); } if (n_bits && write_map) { clib_bitmap_validate (wrk->wr_bitmap, minbits); clib_memcpy_fast (wrk->wr_bitmap, write_map, - vec_len (wrk->wr_bitmap) * sizeof (clib_bitmap_t)); + vec_len (wrk->wr_bitmap) * sizeof (unsigned long)); memset (write_map, 0, - vec_len (wrk->wr_bitmap) * sizeof (clib_bitmap_t)); + vec_len (wrk->wr_bitmap) * sizeof (unsigned long)); } if (n_bits && except_map) { clib_bitmap_validate (wrk->ex_bitmap, minbits); clib_memcpy_fast (wrk->ex_bitmap, except_map, - vec_len (wrk->ex_bitmap) * sizeof (clib_bitmap_t)); + vec_len (wrk->ex_bitmap) * sizeof (unsigned long)); memset (except_map, 0, - vec_len (wrk->ex_bitmap) * sizeof (clib_bitmap_t)); + vec_len (wrk->ex_bitmap) * sizeof (unsigned long)); } if (!n_bits) @@ -2187,7 +2242,7 @@ vppcom_select (unsigned long n_bits, unsigned long *read_map, rv = svm_fifo_is_full (session->tx_fifo); if (!rv) { - clib_bitmap_set_no_check (write_map, sid, 1); + clib_bitmap_set_no_check ((uword*)write_map, sid, 1); bits_set++; } })); @@ -2207,7 +2262,7 @@ check_rd: rv = vppcom_session_read_ready (session); if (rv) { - clib_bitmap_set_no_check (read_map, sid, 1); + clib_bitmap_set_no_check ((uword*)read_map, sid, 1); bits_set++; } })); @@ -2329,9 +2384,8 @@ vppcom_epoll_create (void) vep_session->wait_cont_idx = ~0; vep_session->vpp_handle = ~0; - vcl_evt (VCL_EVT_EPOLL_CREATE, vep_session, vep_sh); - VDBG (0, "VCL<%d>: Created vep_idx %u / sid %u!", - getpid (), vep_session->session_index, vep_session->session_index); + vcl_evt (VCL_EVT_EPOLL_CREATE, vep_session, vep_session->session_index); + VDBG (0, "Created vep_idx %u", vep_session->session_index); return vcl_session_handle (vep_session); } @@ -2347,21 +2401,19 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, if (vep_handle == session_handle) { - clib_warning ("VCL<%d>: ERROR: vep_idx == session_index (%u)!", - getpid (), vep_handle); + VDBG (0, "vep_sh == session handle (%u)!", vep_handle); return VPPCOM_EINVAL; } vep_session = vcl_session_get_w_handle (wrk, vep_handle); if (PREDICT_FALSE (!vep_session)) { - clib_warning ("VCL<%d>: ERROR: Invalid vep_idx (%u)!", vep_handle); + VDBG (0, "Invalid vep_sh (%u)!", vep_handle); return VPPCOM_EBADFD; } if (PREDICT_FALSE (!vep_session->is_vep)) { - clib_warning ("VCL<%d>: ERROR: vep_idx (%u) is not a vep!", - getpid (), vep_handle); + VDBG (0, "vep_sh (%u) is not a vep!", vep_handle); return VPPCOM_EINVAL; } @@ -2371,13 +2423,12 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, session = vcl_session_get_w_handle (wrk, session_handle); if (PREDICT_FALSE (!session)) { - VDBG (0, "VCL<%d>: ERROR: Invalid session_handle (%u)!", - getpid (), session_handle); + VDBG (0, "Invalid session_handle (%u)!", session_handle); return VPPCOM_EBADFD; } if (PREDICT_FALSE (session->is_vep)) { - clib_warning ("ERROR: session_handle (%u) is a vep!", vep_handle); + VDBG (0, "session_handle (%u) is a vep!", vep_handle); return VPPCOM_EINVAL; } @@ -2386,8 +2437,7 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, case EPOLL_CTL_ADD: if (PREDICT_FALSE (!event)) { - clib_warning ("VCL<%d>: ERROR: EPOLL_CTL_ADD: NULL pointer to " - "epoll_event structure!", getpid ()); + VDBG (0, "EPOLL_CTL_ADD: NULL pointer to epoll_event structure!"); return VPPCOM_EINVAL; } if (vep_session->vep.next_sh != ~0) @@ -2397,9 +2447,8 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, vep_session->vep.next_sh); if (PREDICT_FALSE (!next_session)) { - clib_warning ("VCL<%d>: ERROR: EPOLL_CTL_ADD: Invalid " - "vep.next_sid (%u) on vep_idx (%u)!", - getpid (), vep_session->vep.next_sh, vep_handle); + VDBG (0, "EPOLL_CTL_ADD: Invalid vep.next_sid (%u) on " + "vep_idx (%u)!", vep_session->vep.next_sh, vep_handle); return VPPCOM_EBADFD; } ASSERT (next_session->vep.prev_sh == vep_handle); @@ -2414,57 +2463,49 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, session->is_vep_session = 1; vep_session->vep.next_sh = session_handle; - VDBG (1, "VCL<%d>: EPOLL_CTL_ADD: vep_idx %u, sid %u, events 0x%x, " - "data 0x%llx!", getpid (), vep_handle, session_handle, - event->events, event->data.u64); + VDBG (1, "EPOLL_CTL_ADD: vep_sh %u, sh %u, events 0x%x, data 0x%llx!", + vep_handle, session_handle, event->events, event->data.u64); vcl_evt (VCL_EVT_EPOLL_CTLADD, session, event->events, event->data.u64); break; case EPOLL_CTL_MOD: if (PREDICT_FALSE (!event)) { - clib_warning ("VCL<%d>: ERROR: EPOLL_CTL_MOD: NULL pointer to " - "epoll_event structure!", getpid ()); + VDBG (0, "EPOLL_CTL_MOD: NULL pointer to epoll_event structure!"); rv = VPPCOM_EINVAL; goto done; } else if (PREDICT_FALSE (!session->is_vep_session)) { - clib_warning ("VCL<%d>: ERROR: sid %u EPOLL_CTL_MOD: " - "not a vep session!", getpid (), session_handle); + VDBG (0, "sid %u EPOLL_CTL_MOD: not a vep session!", + session_handle); rv = VPPCOM_EINVAL; goto done; } else if (PREDICT_FALSE (session->vep.vep_sh != vep_handle)) { - clib_warning ("VCL<%d>: ERROR: sid %u EPOLL_CTL_MOD: " - "vep_idx (%u) != vep_idx (%u)!", - getpid (), session_handle, - session->vep.vep_sh, vep_handle); + VDBG (0, "EPOLL_CTL_MOD: sh %u vep_sh (%u) != vep_sh (%u)!", + session_handle, session->vep.vep_sh, vep_handle); rv = VPPCOM_EINVAL; goto done; } session->vep.et_mask = VEP_DEFAULT_ET_MASK; session->vep.ev = *event; - VDBG (1, "VCL<%d>: EPOLL_CTL_MOD: vep_idx %u, sid %u, events 0x%x," - " data 0x%llx!", getpid (), vep_handle, session_handle, - event->events, event->data.u64); + VDBG (1, "EPOLL_CTL_MOD: vep_sh %u, sh %u, events 0x%x, data 0x%llx!", + vep_handle, session_handle, event->events, event->data.u64); break; case EPOLL_CTL_DEL: if (PREDICT_FALSE (!session->is_vep_session)) { - clib_warning ("VCL<%d>: ERROR: sid %u EPOLL_CTL_DEL: " - "not a vep session!", getpid (), session_handle); + VDBG (0, "EPOLL_CTL_DEL: %u not a vep session!", session_handle); rv = VPPCOM_EINVAL; goto done; } else if (PREDICT_FALSE (session->vep.vep_sh != vep_handle)) { - clib_warning ("VCL<%d>: ERROR: sid %u EPOLL_CTL_DEL: " - "vep_idx (%u) != vep_idx (%u)!", - getpid (), session_handle, - session->vep.vep_sh, vep_handle); + VDBG (0, "EPOLL_CTL_DEL: sh %u vep_sh (%u) != vep_sh (%u)!", + session_handle, session->vep.vep_sh, vep_handle); rv = VPPCOM_EINVAL; goto done; } @@ -2481,9 +2522,8 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, prev_session = vcl_session_get_w_handle (wrk, session->vep.prev_sh); if (PREDICT_FALSE (!prev_session)) { - clib_warning ("VCL<%d>: ERROR: EPOLL_CTL_DEL: Invalid " - "vep.prev_sid (%u) on sid (%u)!", - getpid (), session->vep.prev_sh, session_handle); + VDBG (0, "EPOLL_CTL_DEL: Invalid prev_sid (%u) on sid (%u)!", + session->vep.prev_sh, session_handle); return VPPCOM_EBADFD; } ASSERT (prev_session->vep.next_sh == session_handle); @@ -2495,9 +2535,8 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, next_session = vcl_session_get_w_handle (wrk, session->vep.next_sh); if (PREDICT_FALSE (!next_session)) { - clib_warning ("VCL<%d>: ERROR: EPOLL_CTL_DEL: Invalid " - "vep.next_sid (%u) on sid (%u)!", - getpid (), session->vep.next_sh, session_handle); + VDBG (0, "EPOLL_CTL_DEL: Invalid next_sid (%u) on sid (%u)!", + session->vep.next_sh, session_handle); return VPPCOM_EBADFD; } ASSERT (next_session->vep.prev_sh == session_handle); @@ -2509,13 +2548,13 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle, session->vep.prev_sh = ~0; session->vep.vep_sh = ~0; session->is_vep_session = 0; - VDBG (1, "VCL<%d>: EPOLL_CTL_DEL: vep_idx %u, sid %u!", - getpid (), vep_handle, session_handle); + VDBG (1, "EPOLL_CTL_DEL: vep_idx %u, sid %u!", vep_handle, + session_handle); vcl_evt (VCL_EVT_EPOLL_CTLDEL, session, vep_sh); break; default: - clib_warning ("VCL<%d>: ERROR: Invalid operation (%d)!", getpid (), op); + VDBG (0, "Invalid operation (%d)!", op); rv = VPPCOM_EINVAL; } @@ -2542,7 +2581,8 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, ASSERT (e->fifo->client_thread_index == vcl_get_worker_index ()); vcl_fifo_rx_evt_valid_or_break (e->fifo); sid = e->fifo->client_session_index; - session = vcl_session_get (wrk, sid); + if (!(session = vcl_session_get (wrk, sid))) + break; session_events = session->vep.ev.events; if (!(EPOLLIN & session->vep.ev.events) || session->has_rx_evt) break; @@ -2553,7 +2593,8 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, break; case FIFO_EVENT_APP_TX: sid = e->fifo->client_session_index; - session = vcl_session_get (wrk, sid); + if (!(session = vcl_session_get (wrk, sid))) + break; session_events = session->vep.ev.events; if (!(EPOLLOUT & session_events)) break; @@ -2564,6 +2605,8 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, case SESSION_IO_EVT_CT_TX: vcl_fifo_rx_evt_valid_or_break (e->fifo); session = vcl_ct_session_get_from_fifo (wrk, e->fifo, 0); + if (PREDICT_FALSE (!session)) + break; sid = session->session_index; session_events = session->vep.ev.events; if (!(EPOLLIN & session->vep.ev.events) || session->has_rx_evt) @@ -2575,6 +2618,8 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, break; case SESSION_IO_EVT_CT_RX: session = vcl_ct_session_get_from_fifo (wrk, e->fifo, 1); + if (PREDICT_FALSE (!session)) + break; sid = session->session_index; session_events = session->vep.ev.events; if (!(EPOLLOUT & session_events)) @@ -2602,7 +2647,8 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e, vcl_session_connected_handler (wrk, connected_msg); /* Generate EPOLLOUT because there's no connected event */ sid = vcl_session_index_from_vpp_handle (wrk, connected_msg->handle); - session = vcl_session_get (wrk, sid); + if (!(session = vcl_session_get (wrk, sid))) + break; session_events = session->vep.ev.events; if (EPOLLOUT & session_events) { @@ -3373,8 +3419,7 @@ vppcom_session_recvfrom (uint32_t session_handle, void *buffer, rv = vppcom_session_peek (session_handle, buffer, buflen); else { - clib_warning ("VCL<%d>: Unsupport flags for recvfrom %d", - getpid (), flags); + VDBG (0, "Unsupport flags for recvfrom %d", flags); return VPPCOM_EAFNOSUPPORT; }