u32 wait_cont_idx;
vppcom_epoll_t vep;
int libc_epfd;
- u32 vrf;
vppcom_ip46_t lcl_addr;
vppcom_ip46_t peer_addr;
u16 lcl_port; // network order
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)
ed->data = rv;
/* *INDENT-ON* */
}
-
- clib_warning ("VCL<%d>: app (%s) is connected to VPP!",
- getpid (), app_name);
return rv;
}
cmp->client_index = vcm->my_client_index;
cmp->context = session_index;
- cmp->vrf = session->vrf;
cmp->is_ip4 = session->peer_addr.is_ip4;
clib_memcpy (cmp->ip, &session->peer_addr.ip46, sizeof (cmp->ip));
cmp->port = session->peer_port;
ed->addr[1] = session->peer_addr.ip46.ip4.as_u8[1];
ed->addr[2] = session->peer_addr.ip46.ip4.as_u8[2];
ed->addr[3] = session->peer_addr.ip46.ip4.as_u8[3];
- ed->port = session->peer_port;
+ ed->port = clib_net_to_host_u16 (session->peer_port);
/* *INDENT-ON* */
}
else
bmp->_vl_msg_id = ntohs (VL_API_BIND_SOCK);
bmp->client_index = vcm->my_client_index;
bmp->context = session_index;
- bmp->vrf = session->vrf;
bmp->is_ip4 = session->lcl_addr.is_ip4;
clib_memcpy (bmp->ip, &session->lcl_addr.ip46, sizeof (bmp->ip));
bmp->port = session->lcl_port;
{
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);
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,
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);
}
}
int
-vppcom_session_create (u32 vrf, u8 proto, u8 is_nonblocking)
+vppcom_session_create (u8 proto, u8 is_nonblocking)
{
session_t *session;
u32 session_index;
memset (session, 0, sizeof (*session));
session_index = session - vcm->sessions;
- session->vrf = vrf;
session->proto = proto;
session->state = STATE_START;
session->is_nonblocking = is_nonblocking ? 1 : 0;
/* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
- .format = "session_create:vrf:%d proto:%d state:%d is_nonblocking:%d",
- .format_args = "i4i4i4i4",
+ .format = "session_create:proto:%d state:%d is_nonblocking:%d",
+ .format_args = "i4i4i4",
};
struct
{
- u32 data[4];
+ u32 data[3];
} *ed;
ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
- ed->data[0] = session->vrf;
- ed->data[1] = session->proto;
- ed->data[2] = session->state;
- ed->data[3] = session->is_nonblocking;
+ ed->data[0] = session->proto;
+ ed->data[1] = session->state;
+ ed->data[2] = session->is_nonblocking;
/* *INDENT-ON* */
}
goto done;
}
- session->vrf = ep->vrf;
session->lcl_addr.is_ip4 = ep->is_ip4;
session->lcl_addr.ip46 = to_ip46 (!ep->is_ip4, ep->ip);
session->lcl_port = ep->port;
{
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;
if (ep)
{
- ep->vrf = client_session->vrf;
ep->is_cut_thru = client_session->is_cut_thru;
ep->is_ip4 = client_session->peer_addr.is_ip4;
ep->port = client_session->peer_port;
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))
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);
goto done;
}
- session->vrf = server_ep->vrf;
session->peer_addr.is_ip4 = server_ep->is_ip4;
session->peer_addr.ip46 = to_ip46 (!server_ep->is_ip4, server_ep->ip);
session->peer_port = server_ep->port;
"sid %u, events 0x%x, data 0x%llx!",
getpid (), vep_idx, session_index,
event->events, event->data.u64);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "epoll_ctladd: events:%x data:%x",
+ .format_args = "i4i4i8",
+ };
+ struct
+ {
+ u32 events;
+ u64 event_data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->events = event->events;
+ ed->event_data = event->data.u64;
+ /* *INDENT-ON* */
+ }
break;
case EPOLL_CTL_MOD:
if (VPPCOM_DEBUG > 1)
clib_warning ("VCL<%d>: EPOLL_CTL_DEL: vep_idx %u, sid %u!",
getpid (), vep_idx, session_index);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "epoll_ctldel: vep:%d",
+ .format_args = "i4",
+ };
+ struct
+ {
+ u32 data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->data = vep_idx;
+ /* *INDENT-ON* */
+ }
break;
default:
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: WARNING: vep_idx (%u) is empty!",
getpid (), vep_idx);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "WRN: vep_idx:%d empty",
+ .format_args = "i4",
+ };
+ struct
+ {
+ u32 data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, vep_session->elog_track);
+
+ ed->data = vep_idx;
+ /* *INDENT-ON* */
+ }
goto done;
}
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: ERROR: sid (%u) is a vep!",
getpid (), vep_idx);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "ERR:vep_idx:%d is vep",
+ .format_args = "i4",
+ };
+ struct
+ {
+ u32 data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->data = vep_idx;
+ /* *INDENT-ON* */
+ }
+
rv = VPPCOM_EINVAL;
goto done;
}
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: ERROR: session (%u) is not "
"a vep session!", getpid (), sid);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "ERR:SID:%d not vep",
+ .format_args = "i4",
+ };
+ struct
+ {
+ u32 data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->data = sid;
+ /* *INDENT-ON* */
+ }
+
rv = VPPCOM_EINVAL;
goto done;
}
if (VPPCOM_DEBUG > 2)
clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_NREAD: sid %u, nread = %d",
getpid (), rv);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_NREAD: nread=%d",
+ .format_args = "i4",
+ };
+ struct
+ {
+ u32 data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->data = rv;
+ /* *INDENT-ON* */
+ }
+
break;
case VPPCOM_ATTR_GET_NWRITE:
if (VPPCOM_DEBUG > 2)
clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_NWRITE: sid %u, nwrite = %d",
getpid (), session_index, rv);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_NWRITE: nwrite=%d",
+ .format_args = "i4",
+ };
+ struct
+ {
+ u32 data;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->data = rv;
+ /* *INDENT-ON* */
+ }
break;
case VPPCOM_ATTR_GET_FLAGS:
clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_FLAGS: sid %u, "
"flags = 0x%08x, is_nonblocking = %u", getpid (),
session_index, *flags, session->is_nonblocking);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_FLAGS: flags=%x is_nonblk=%d",
+ .format_args = "i4i4",
+ };
+ struct
+ {
+ u32 flags;
+ u32 is_nonblk;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->flags = *flags;
+ ed->is_nonblk = session->is_nonblocking;
+ /* *INDENT-ON* */
+ }
+
}
else
rv = VPPCOM_EINVAL;
"flags = 0x%08x, is_nonblocking = %u",
getpid (), session_index, *flags,
session->is_nonblocking);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_SET_FLAGS: flags=%x is_nonblk=%d",
+ .format_args = "i4i4",
+ };
+ struct
+ {
+ u32 flags;
+ u32 is_nonblk;
+ } *ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->flags = *flags;
+ ed->is_nonblk = session->is_nonblocking;
+ /* *INDENT-ON* */
+ }
}
else
rv = VPPCOM_EINVAL;
if (PREDICT_TRUE (buffer && buflen &&
(*buflen >= sizeof (*ep)) && ep->ip))
{
- ep->vrf = session->vrf;
ep->is_ip4 = session->peer_addr.is_ip4;
ep->port = session->peer_port;
if (session->peer_addr.is_ip4)
session_index, ep->is_ip4, format_ip46_address,
&session->peer_addr.ip46, ep->is_ip4,
clib_net_to_host_u16 (ep->port));
+ if (VPPCOM_DEBUG > 0)
+ {
+ if (ep->is_ip4)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_PEER_ADDR: addr:%d.%d.%d.%d:%d",
+ .format_args = "i1i1i1i1i2",
+ };
+ CLIB_PACKED (struct {
+ u8 addr[4]; //4
+ u16 port; //2
+ }) * ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->addr[0] = session->peer_addr.ip46.ip4.as_u8[0];
+ ed->addr[1] = session->peer_addr.ip46.ip4.as_u8[1];
+ ed->addr[2] = session->peer_addr.ip46.ip4.as_u8[2];
+ ed->addr[3] = session->peer_addr.ip46.ip4.as_u8[3];
+ ed->port = clib_net_to_host_u16 (session->peer_port);
+ /* *INDENT-ON* */
+ }
+ else
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_PEER_ADDR: addr:IP6:%d",
+ .format_args = "i2",
+ };
+ CLIB_PACKED (struct {
+ u16 port; //2
+ }) * ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->port = clib_net_to_host_u16 (session->peer_port);
+ /* *INDENT-ON* */
+ }
+ }
}
else
rv = VPPCOM_EINVAL;
if (PREDICT_TRUE (buffer && buflen &&
(*buflen >= sizeof (*ep)) && ep->ip))
{
- ep->vrf = session->vrf;
ep->is_ip4 = session->lcl_addr.is_ip4;
ep->port = session->lcl_port;
if (session->lcl_addr.is_ip4)
session_index, ep->is_ip4, format_ip46_address,
&session->lcl_addr.ip46, ep->is_ip4,
clib_net_to_host_u16 (ep->port));
+ if (VPPCOM_DEBUG > 0)
+ {
+ if (ep->is_ip4)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_LCL_ADDR: addr:%d.%d.%d.%d:%d",
+ .format_args = "i1i1i1i1i2",
+ };
+ CLIB_PACKED (struct {
+ u8 addr[4]; //4
+ u16 port; //2
+ }) * ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->addr[0] = session->lcl_addr.ip46.ip4.as_u8[0];
+ ed->addr[1] = session->lcl_addr.ip46.ip4.as_u8[1];
+ ed->addr[2] = session->lcl_addr.ip46.ip4.as_u8[2];
+ ed->addr[3] = session->lcl_addr.ip46.ip4.as_u8[3];
+ ed->port = clib_net_to_host_u16 (session->peer_port);
+ /* *INDENT-ON* */
+ }
+ else
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_LCL_ADDR: addr:IP6:%d",
+ .format_args = "i2",
+ };
+ CLIB_PACKED (struct {
+ u16 port; //2
+ }) * ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->port = clib_net_to_host_u16 (session->peer_port);
+ /* *INDENT-ON* */
+ }
+ }
}
else
rv = VPPCOM_EINVAL;
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:
clib_warning ("VCL<%d>: VPPCOM_ATTR_SET_LIBC_EPFD: libc_epfd %d, "
"buflen %d", getpid (), session->libc_epfd,
*buflen);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_SET_LIBC_EPFD: libc_epfd=%s%d buflen=%d",
+ .format_args = "t1i4i4",
+ .n_enum_strings = 2,
+ .enum_strings = {"", "-",},
+ };
+ CLIB_PACKED (struct {
+ u8 sign;
+ u32 data[2];
+ }) * ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+
+ ed->sign = (session->libc_epfd < 0);
+ ed->data[0] = abs(session->libc_epfd);
+ ed->data[1] = *buflen;
+ /* *INDENT-ON* */
+ }
}
else
rv = VPPCOM_EINVAL;
clib_warning ("VCL<%d>: VPPCOM_ATTR_GET_PROTOCOL: %d (%s), "
"buflen %d", getpid (), *(int *) buffer,
*(int *) buffer ? "UDP" : "TCP", *buflen);
+ if (VPPCOM_DEBUG > 0)
+ {
+ /* *INDENT-OFF* */
+ ELOG_TYPE_DECLARE (e) =
+ {
+ .format = "VPPCOM_ATTR_GET_PROTOCOL: %s buflen=%d",
+ .format_args = "t1i4",
+ .n_enum_strings = 2,
+ .enum_strings = {"TCP", "UDP",},
+ };
+
+ CLIB_PACKED (struct {
+ u8 proto;
+ u32 buflen;
+ }) * ed;
+
+ ed = ELOG_TRACK_DATA (&vcm->elog_main, e, session->elog_track);
+ ed->proto = session->proto;
+ ed->buflen = *(int *) buffer;
+ /* *INDENT-ON* */
+ }
}
else
rv = VPPCOM_EINVAL;
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;
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;
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;
"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;
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;
/* VPP-TBD */
session->rcvbuf_size = *(u32 *) buffer;
if (VPPCOM_DEBUG > 2)
- clib_warning ("VCL<%d>: VPPCOM_ATTR_SET_TX_FIFO_LEN: %u (0x%x), "
+ clib_warning ("VCL<%d>: VPPCOM_ATTR_SET_RX_FIFO_LEN: %u (0x%x), "
"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_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] = session->sndbuf_size;
+ ed->data[1] = *buflen;
+ /* *INDENT-ON* */
+ }
}
else
rv = VPPCOM_EINVAL;
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;
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;
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;
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;
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;
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;
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;
"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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
}
- ep->vrf = session->vrf;
ep->is_ip4 = session->peer_addr.is_ip4;
ep->port = session->peer_port;
if (session->peer_addr.is_ip4)