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
f64 accept_timeout;
u32 event_ring_size;
char *event_log_path;
+ u8 *vpp_api_filename;
} vppcom_cfg_t;
typedef struct vppcom_main_t_
u32 *client_session_index_fifo;
int main_cpu;
- /* vpe input queue */
+ /* vpp input queue */
svm_queue_t *vl_input_queue;
/* API client handle */
vppcom_connect_to_vpp (char *app_name)
{
api_main_t *am = &api_main;
+ vppcom_cfg_t *vcl_cfg = &vcm->cfg;
int rv = VPPCOM_OK;
+ if (!vcl_cfg->vpp_api_filename)
+ vcl_cfg->vpp_api_filename = format (0, "/vpe-api%c", 0);
+
if (VPPCOM_DEBUG > 0)
- clib_warning ("VCL<%d>: app (%s) connecting to VPP api...",
- getpid (), app_name);
+ clib_warning ("VCL<%d>: app (%s) connecting to VPP api (%s)...",
+ getpid (), app_name, vcl_cfg->vpp_api_filename);
- if (vl_client_connect_to_vlib ("/vpe-api", app_name,
+ if (vl_client_connect_to_vlib ((char *) vcl_cfg->vpp_api_filename, app_name,
vcm->cfg.vpp_api_q_length) < 0)
{
clib_warning ("VCL<%d>: app (%s) connect failed!", getpid (), app_name);
{
vcm->error_string_by_error_number = hash_create (0, sizeof (uword));
-#define _(n,v,s) hash_set (vcm->error_string_by_error_number, -v, s);
+#define _(n, v, s) hash_set (vcm->error_string_by_error_number, -v, s);
foreach_vnet_api_error;
#undef _
clib_spinlock_unlock (&vcm->sessions_lockp);
return rv;
}
- if (session->state == state)
+ if (session->state & state)
{
clib_spinlock_unlock (&vcm->sessions_lockp);
return VPPCOM_OK;
}
- if (session->state == STATE_FAILED)
+ if (session->state & STATE_FAILED)
{
clib_spinlock_unlock (&vcm->sessions_lockp);
return VPPCOM_ECONNREFUSED;
u32 session_index;
svm_fifo_t *rx_fifo, *tx_fifo;
u8 is_cut_thru = 0;
- int rv;
+ int rv = VPPCOM_OK;
session_index = mp->context;
VCL_LOCK_AND_GET_SESSION (session_index, &session);
"connect failed! %U",
getpid (), mp->handle, session_index,
format_api_error, ntohl (mp->retval));
- if (rv == VPPCOM_OK)
+ if (session)
{
session->state = STATE_FAILED;
session->vpp_handle = mp->handle;
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;
if (session->peer_addr.is_ip4)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format =
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;
static void
vppcom_api_hookup (void)
{
-#define _(N,n) \
+#define _(N, n) \
vl_msg_api_set_handlers(VL_API_##N, #n, \
vl_api_##n##_t_handler, \
vl_noop_handler, \
if (fp == NULL)
{
if (VPPCOM_DEBUG > 0)
- fprintf (stderr, "open configuration file '%s' failed\n", conf_fname);
+ clib_warning ("VCL<%d>: using default heapsize %lld (0x%llx)",
+ getpid (), vcl_cfg->heapsize, vcl_cfg->heapsize);
goto defaulted;
}
+
argv = calloc (1, sizeof (char *));
if (argv == NULL)
- goto defaulted;
+ {
+ if (VPPCOM_DEBUG > 0)
+ clib_warning ("VCL<%d>: calloc failed, using default "
+ "heapsize %lld (0x%llx)",
+ getpid (), vcl_cfg->heapsize, vcl_cfg->heapsize);
+ goto defaulted;
+ }
while (1)
{
argc++;
char **tmp = realloc (argv, argc * sizeof (char *));
if (tmp == NULL)
- goto defaulted;
+ {
+ if (VPPCOM_DEBUG > 0)
+ clib_warning ("VCL<%d>: realloc failed, "
+ "using default heapsize %lld (0x%llx)",
+ getpid (), vcl_cfg->heapsize,
+ vcl_cfg->heapsize);
+ goto defaulted;
+ }
argv = tmp;
arg = strndup (p, 1024);
if (arg == NULL)
- goto defaulted;
+ {
+ if (VPPCOM_DEBUG > 0)
+ clib_warning ("VCL<%d>: strndup failed, "
+ "using default heapsize %lld (0x%llx)",
+ getpid (), vcl_cfg->heapsize,
+ vcl_cfg->heapsize);
+ goto defaulted;
+ }
argv[argc - 1] = arg;
p = strtok (NULL, " \t\n");
}
char **tmp = realloc (argv, (argc + 1) * sizeof (char *));
if (tmp == NULL)
- goto defaulted;
+ {
+ if (VPPCOM_DEBUG > 0)
+ clib_warning ("VCL<%d>: realloc failed, "
+ "using default heapsize %lld (0x%llx)",
+ getpid (), vcl_cfg->heapsize, vcl_cfg->heapsize);
+ goto defaulted;
+ }
argv = tmp;
argv[argc] = NULL;
"PROT_READ | PROT_WRITE,MAP_SHARED | MAP_ANONYMOUS, "
"-1, 0) failed!",
getpid (), vcl_cfg->heapsize, vcl_cfg->heapsize);
+ ASSERT (vcl_mem != MAP_FAILED);
return;
}
heap = clib_mem_init (vcl_mem, vcl_cfg->heapsize);
if (!heap)
{
clib_warning ("VCL<%d>: ERROR: clib_mem_init() failed!", getpid ());
+ ASSERT (heap);
return;
}
vcl_mem = clib_mem_alloc (sizeof (_vppcom_main));
if (!vcl_mem)
{
clib_warning ("VCL<%d>: ERROR: clib_mem_alloc() failed!", getpid ());
+ ASSERT (vcl_mem);
return;
}
if (fd < 0)
{
if (VPPCOM_DEBUG > 0)
- clib_warning ("VCL<%d>: open configuration file '%s' failed!",
+ clib_warning ("VCL<%d>: using default configuration.",
getpid (), conf_fname);
goto file_done;
}
if (fstat (fd, &s) < 0)
{
if (VPPCOM_DEBUG > 0)
- clib_warning ("VCL<%d>: failed to stat `%s'", getpid (), conf_fname);
+ clib_warning ("VCL<%d>: failed to stat `%s', "
+ "using default configuration", getpid (), conf_fname);
goto file_done;
}
if (!(S_ISREG (s.st_mode) || S_ISLNK (s.st_mode)))
{
if (VPPCOM_DEBUG > 0)
- clib_warning ("VCL<%d>: not a regular file `%s'",
- getpid (), conf_fname);
+ clib_warning ("VCL<%d>: not a regular file `%s', "
+ "using default configuration", getpid (), conf_fname);
goto file_done;
}
else if (unformat (line_input, "api-prefix %s", &chroot_path))
{
vec_terminate_c_string (chroot_path);
+ if (vcl_cfg->vpp_api_filename)
+ vec_free (vcl_cfg->vpp_api_filename);
+ vcl_cfg->vpp_api_filename = format (0, "/%s-vpe-api%c",
+ chroot_path, 0);
vl_set_memory_root_path ((char *) chroot_path);
+
if (VPPCOM_DEBUG > 0)
- clib_warning ("VCL<%d>: configured api-prefix %s",
- getpid (), chroot_path);
+ clib_warning ("VCL<%d>: configured api-prefix (%s) and "
+ "api filename (%s)", getpid (), chroot_path,
+ vcl_cfg->vpp_api_filename);
chroot_path = 0; /* Don't vec_free() it! */
}
else if (unformat (line_input, "vpp-api-q-length %d", &q_len))
}
conf_fname = getenv (VPPCOM_ENV_CONF);
if (!conf_fname)
- {
- conf_fname = VPPCOM_CONF_DEFAULT;
- if (VPPCOM_DEBUG > 0)
- clib_warning ("VCL<%d>: getenv '%s' failed!", getpid (),
- VPPCOM_ENV_CONF);
- }
+ conf_fname = VPPCOM_CONF_DEFAULT;
vppcom_cfg_heapsize (conf_fname);
+ vcl_cfg = &vcm->cfg;
clib_fifo_validate (vcm->client_session_index_fifo,
vcm->cfg.listen_queue_size);
vppcom_cfg_read (conf_fname);
+
+ env_var_str = getenv (VPPCOM_ENV_API_PREFIX);
+ if (env_var_str)
+ {
+ if (vcl_cfg->vpp_api_filename)
+ vec_free (vcl_cfg->vpp_api_filename);
+ vcl_cfg->vpp_api_filename = format (0, "/%s-vpe-api%c",
+ env_var_str, 0);
+ vl_set_memory_root_path ((char *) env_var_str);
+
+ if (VPPCOM_DEBUG > 0)
+ clib_warning ("VCL<%d>: configured api prefix (%s) and "
+ "filename (%s) from " VPPCOM_ENV_API_PREFIX "!",
+ getpid (), env_var_str, vcl_cfg->vpp_api_filename);
+ }
+
+ env_var_str = getenv (VPPCOM_ENV_APP_NAMESPACE_SECRET);
+ if (env_var_str)
+ {
+ u64 tmp;
+ if (sscanf (env_var_str, "%lu", &tmp) != 1)
+ clib_warning ("VCL<%d>: Invalid namespace secret specified in "
+ "the environment variable "
+ VPPCOM_ENV_APP_NAMESPACE_SECRET
+ " (%s)!\n", getpid (), env_var_str);
+ else
+ {
+ vcm->cfg.namespace_secret = tmp;
+ if (VPPCOM_DEBUG > 0)
+ clib_warning ("VCL<%d>: configured namespace secret "
+ "(%lu) from " VPPCOM_ENV_APP_NAMESPACE_ID "!",
+ getpid (), vcm->cfg.namespace_secret);
+ }
+ }
env_var_str = getenv (VPPCOM_ENV_APP_NAMESPACE_ID);
if (env_var_str)
{
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: configured namespace_id (%v) from "
- VPPCOM_ENV_APP_NAMESPACE_ID "!", getpid (),
- vcm->cfg.namespace_id);
+ VPPCOM_ENV_APP_NAMESPACE_ID
+ "!", getpid (), vcm->cfg.namespace_id);
}
env_var_str = getenv (VPPCOM_ENV_APP_NAMESPACE_SECRET);
if (env_var_str)
vcm->cfg.namespace_secret = tmp;
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: configured namespace secret "
- "(%lu) from " VPPCOM_ENV_APP_NAMESPACE_ID "!",
- getpid (), vcm->cfg.namespace_secret);
+ "(%lu) from "
+ VPPCOM_ENV_APP_NAMESPACE_ID
+ "!", getpid (), vcm->cfg.namespace_secret);
}
}
if (getenv (VPPCOM_ENV_APP_PROXY_TRANSPORT_TCP))
vcm->cfg.app_proxy_transport_tcp = 1;
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: configured app_proxy_transport_tcp "
- "(%u) from " VPPCOM_ENV_APP_PROXY_TRANSPORT_TCP
+ "(%u) from "
+ VPPCOM_ENV_APP_PROXY_TRANSPORT_TCP
"!", getpid (), vcm->cfg.app_proxy_transport_tcp);
}
if (getenv (VPPCOM_ENV_APP_PROXY_TRANSPORT_UDP))
vcm->cfg.app_proxy_transport_udp = 1;
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: configured app_proxy_transport_udp "
- "(%u) from " VPPCOM_ENV_APP_PROXY_TRANSPORT_UDP
+ "(%u) from "
+ VPPCOM_ENV_APP_PROXY_TRANSPORT_UDP
"!", getpid (), vcm->cfg.app_proxy_transport_udp);
}
if (getenv (VPPCOM_ENV_APP_SCOPE_LOCAL))
vcm->cfg.app_scope_local = 1;
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: configured app_scope_local (%u) from "
- VPPCOM_ENV_APP_SCOPE_LOCAL "!", getpid (),
- vcm->cfg.app_scope_local);
+ VPPCOM_ENV_APP_SCOPE_LOCAL
+ "!", getpid (), vcm->cfg.app_scope_local);
}
if (getenv (VPPCOM_ENV_APP_SCOPE_GLOBAL))
{
vcm->cfg.app_scope_global = 1;
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: configured app_scope_global (%u) from "
- VPPCOM_ENV_APP_SCOPE_GLOBAL "!", getpid (),
- vcm->cfg.app_scope_global);
+ VPPCOM_ENV_APP_SCOPE_GLOBAL
+ "!", getpid (), vcm->cfg.app_scope_global);
}
vcm->main_cpu = os_get_thread_index ();
}
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* */
}
if (is_listen)
{
- if (state == STATE_LISTEN)
+ if (state & STATE_LISTEN)
{
rv = vppcom_session_unbind (session_index);
if (PREDICT_FALSE (rv < 0))
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;
{
if (session->lcl_addr.is_ip4)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "bind local:%s:%d.%d.%d.%d:%d ",
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;
if (client_session->lcl_addr.is_ip4)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e2) =
{
.format = "accept cut-thru: S:%d %d.%d.%d.%d:%d ",
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;
if (PREDICT_FALSE (!(state & (SERVER_STATE_OPEN | CLIENT_STATE_OPEN))))
{
clib_spinlock_unlock (&vcm->sessions_lockp);
- rv = ((state == STATE_DISCONNECT) ?
- VPPCOM_ECONNRESET : VPPCOM_ENOTCONN);
+ rv = ((state & STATE_DISCONNECT) ? VPPCOM_ECONNRESET : VPPCOM_ENOTCONN);
if (VPPCOM_DEBUG > 0)
clib_warning ("VCL<%d>: vpp handle 0x%llx, sid %u: %s session is "
if (poll_et)
session->vep.et_mask |= EPOLLIN;
- if (state == STATE_CLOSE_ON_EMPTY)
+ if (state & STATE_CLOSE_ON_EMPTY)
{
session_state_t new_state = STATE_DISCONNECT;
rv = VPPCOM_ECONNRESET;
{
if (!(state & (SERVER_STATE_OPEN | CLIENT_STATE_OPEN | STATE_LISTEN)))
{
- rv = ((state == STATE_DISCONNECT) ? VPPCOM_ECONNRESET :
+ rv = ((state & STATE_DISCONNECT) ? VPPCOM_ECONNRESET :
VPPCOM_ENOTCONN);
if (VPPCOM_DEBUG > 1)
if (poll_et)
session->vep.et_mask |= EPOLLIN;
- if (state == STATE_CLOSE_ON_EMPTY)
+ if (state & STATE_CLOSE_ON_EMPTY)
{
rv = VPPCOM_ECONNRESET;
session_state_t new_state = STATE_DISCONNECT;
state = session->state;
if (!(state & (SERVER_STATE_OPEN | CLIENT_STATE_OPEN)))
{
- rv = ((state == STATE_DISCONNECT) ? VPPCOM_ECONNRESET :
- VPPCOM_ENOTCONN);
+ rv = ((state & STATE_DISCONNECT) ? VPPCOM_ECONNRESET : VPPCOM_ENOTCONN);
clib_spinlock_unlock (&vcm->sessions_lockp);
if (VPPCOM_DEBUG > 1)
if (poll_et)
session->vep.et_mask |= EPOLLOUT;
- if (state == STATE_CLOSE_ON_EMPTY)
+ if (state & STATE_CLOSE_ON_EMPTY)
{
session_state_t new_state = STATE_DISCONNECT;
rv = VPPCOM_ECONNRESET;
{
session_state_t state = session->state;
- rv = ((state == STATE_DISCONNECT) ? VPPCOM_ECONNRESET :
- VPPCOM_ENOTCONN);
+ rv = ((state & STATE_DISCONNECT) ? VPPCOM_ECONNRESET : VPPCOM_ENOTCONN);
clib_warning ("VCL<%d>: ERROR: vpp handle 0x%llx, sid %u: "
"%s session is not open! state 0x%x (%s), "
if (poll_et)
session->vep.et_mask |= EPOLLOUT;
- if (state == STATE_CLOSE_ON_EMPTY)
+ if (state & STATE_CLOSE_ON_EMPTY)
{
rv = VPPCOM_ECONNRESET;
session_state_t new_state = STATE_DISCONNECT;
event->events, event->data.u64);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "epoll_ctladd: events:%x data:%x",
getpid (), vep_idx, session_index);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "epoll_ctldel: vep:%d",
getpid (), vep_idx);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "WRN: vep_idx:%d empty",
getpid (), vep_idx);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "ERR:vep_idx:%d is vep",
"a vep session!", getpid (), sid);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "ERR:SID:%d not vep",
getpid (), rv);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_NREAD: nread=%d",
getpid (), session_index, rv);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_NWRITE: nwrite=%d",
session_index, *flags, session->is_nonblocking);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_FLAGS: flags=%x is_nonblk=%d",
session->is_nonblocking);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_FLAGS: flags=%x is_nonblk=%d",
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)
{
if (ep->is_ip4)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_PEER_ADDR: addr:%d.%d.%d.%d:%d",
}
else
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_PEER_ADDR: addr:IP6:%d",
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)
{
if (ep->is_ip4)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_LCL_ADDR: addr:%d.%d.%d.%d:%d",
}
else
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_LCL_ADDR: addr:IP6:%d",
getpid (), rv);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_LIBC_EPFD: libc_epfd=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_LIBC_EPFD: libc_epfd=%s%d buflen=%d",
*(int *) buffer ? "UDP" : "TCP", *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_PROTOCOL: %s buflen=%d",
"buflen %d", getpid (), *(int *) buffer, *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_LISTEN: %d buflen=%d",
*(int *) buffer, *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_ERROR: %d buflen=%d",
*(size_t *) buffer, *(size_t *) buffer, *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_TX_FIFO_LEN: 0x%x buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_TX_FIFO_LEN: 0x%x buflen=%d",
*(size_t *) buffer, *(size_t *) buffer, *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_RX_FIFO_LEN: 0x%x buflen=%d",
/* 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* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
- .format = "VPPCOM_ATTR_SET_TX_FIFO_LEN: 0x%x buflen=%d",
+ .format = "VPPCOM_ATTR_SET_RX_FIFO_LEN: 0x%x buflen=%d",
.format_args = "i4i4",
};
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_REUSEADDR: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_REUSEADDR: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_REUSEPORT: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_REUSEPORT: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_BROADCAST: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_BROADCAST: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_V6ONLY: %d buflen=%d",
VCL_SESS_ATTR_V6ONLY), *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_V6ONLY: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_KEEPALIVE: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_KEEPALIVE: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_TCP_NODELAY: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_TCP_NODELAY: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_TCP_KEEPIDLE: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_TCP_KEEPIDLE: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_TCP_KEEPIDLE: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_TCP_KEEPINTVL: %d buflen=%d",
*buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_GET_TCP_USER_MSS: %d buflen=%d",
session->user_mss, *buflen);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "VPPCOM_ATTR_SET_TCP_USER_MSS: %d buflen=%d",
getpid (), session_index);
if (VPPCOM_DEBUG > 0)
{
- /* *INDENT-OFF* */
+ /* *INDENT-OFF* */
ELOG_TYPE_DECLARE (e) =
{
.format = "invalid session: %d closed",
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)