vcl_bapi_cleanup ();
vlibapi_set_main (&wrk->bapi_api_ctx);
- vlibapi_set_memory_client_main (&wrk->bapi_shm_ctx);
vcl_bapi_hookup ();
- if (vcl_cfg->vpp_bapi_socket_name)
+ if (!vcl_cfg->vpp_bapi_socket_name)
{
- if (vl_socket_client_connect2 (&wrk->bapi_sock_ctx,
- (char *) vcl_cfg->vpp_bapi_socket_name,
- (char *) wrk_name,
- 0 /* default rx/tx buffer */ ))
- {
- VERR ("app (%s) socket connect failed!", wrk_name);
- rv = VPPCOM_ECONNREFUSED;
- goto error;
- }
-
- if (vl_socket_client_init_shm2 (&wrk->bapi_sock_ctx, 0,
- 1 /* want_pthread */ ))
- {
- VERR ("app (%s) init shm failed!", wrk_name);
- rv = VPPCOM_ECONNREFUSED;
- goto error;
- }
+ rv = VPPCOM_EINVAL;
+ goto error;
}
- else
- {
- if (!vcl_cfg->vpp_bapi_filename)
- vcl_cfg->vpp_bapi_filename = format (0, "/vpe-api%c", 0);
-
- vl_set_memory_root_path ((char *) vcl_cfg->vpp_bapi_chroot);
- VDBG (0, "app (%s) connecting to VPP api (%s)...",
- wrk_name, vcl_cfg->vpp_bapi_filename);
+ if (vl_socket_client_connect2 (&wrk->bapi_sock_ctx,
+ (char *) vcl_cfg->vpp_bapi_socket_name,
+ (char *) wrk_name,
+ 0 /* default rx/tx buffer */ ))
+ {
+ VERR ("app (%s) socket connect failed!", wrk_name);
+ rv = VPPCOM_ECONNREFUSED;
+ goto error;
+ }
- if (vl_client_connect_to_vlib ((char *) vcl_cfg->vpp_bapi_filename,
- (char *) wrk_name,
- vcm->cfg.vpp_api_q_length) < 0)
- {
- VERR ("app (%s) connect failed!", wrk_name);
- rv = VPPCOM_ECONNREFUSED;
- goto error;
- }
+ if (vl_socket_client_init_shm2 (&wrk->bapi_sock_ctx, 0,
+ 1 /* want_pthread */ ))
+ {
+ VERR ("app (%s) init shm failed!", wrk_name);
+ rv = VPPCOM_ECONNREFUSED;
+ goto error;
}
am = vlibapi_get_main ();
VCFG_DBG (0, "VCL<%d>: configured max-workers %u", getpid (),
vcl_cfg->max_workers);
}
- else if (unformat (line_input, "api-prefix %s",
- &vcl_cfg->vpp_bapi_chroot))
- {
- vec_terminate_c_string (vcl_cfg->vpp_bapi_chroot);
- VCFG_DBG (0, "VCL<%d>: configured api-prefix (%s) ", getpid (),
- vcl_cfg->vpp_bapi_chroot);
- }
else if (unformat (line_input, "api-socket-name %s",
&vcl_cfg->vpp_bapi_socket_name))
{
/* Regrab cfg after heap initialization */
vcl_cfg = &vcm->cfg;
- env_var_str = getenv (VPPCOM_ENV_API_PREFIX);
- if (env_var_str)
- {
- vcl_cfg->vpp_bapi_chroot = format (0, "%s", env_var_str);
- vec_terminate_c_string (vcl_cfg->vpp_bapi_chroot);
- VCFG_DBG (0, "VCL<%d>: configured api prefix (%s) from "
- VPPCOM_ENV_API_PREFIX "!", getpid (), env_var_str);
- }
env_var_str = getenv (VPPCOM_ENV_APP_NAMESPACE_ID);
if (env_var_str)
{
VCFG_DBG (0, "VCL<%d>: configured api-socket-name (%s)", getpid (),
vcl_cfg->vpp_bapi_socket_name);
}
+ env_var_str = getenv (VPPCOM_ENV_VPP_SAPI_SOCKET);
+ if (env_var_str)
+ {
+ vcm->cfg.vpp_app_socket_api = format (0, "%s%c", env_var_str, 0);
+ VCFG_DBG (0, "VCL<%d>: configured app-socket-api (%s)", getpid (),
+ vcl_cfg->vpp_app_socket_api);
+ }
}
/*
u32 event_ring_size;
char *event_log_path;
u8 *vpp_app_socket_api; /**< app socket api socket file name */
- u8 *vpp_bapi_filename; /**< bapi shm transport file name */
u8 *vpp_bapi_socket_name; /**< bapi socket transport socket name */
- u8 *vpp_bapi_chroot;
u32 tls_engine;
u8 mt_wrk_supported;
} vppcom_cfg_t;
clib_socket_t app_api_sock;
socket_client_main_t bapi_sock_ctx;
- memory_client_main_t bapi_shm_ctx;
api_main_t bapi_api_ctx;
/** vcl needs next epoll_create to go to libc_epoll */
#define VPPCOM_CONF_DEFAULT "/etc/vpp/vcl.conf"
#define VPPCOM_ENV_CONF "VCL_CONFIG"
#define VPPCOM_ENV_DEBUG "VCL_DEBUG"
-#define VPPCOM_ENV_API_PREFIX "VCL_API_PREFIX"
#define VPPCOM_ENV_APP_PROXY_TRANSPORT_TCP "VCL_APP_PROXY_TRANSPORT_TCP"
#define VPPCOM_ENV_APP_PROXY_TRANSPORT_UDP "VCL_APP_PROXY_TRANSPORT_UDP"
#define VPPCOM_ENV_APP_NAMESPACE_ID "VCL_APP_NAMESPACE_ID"
#define VPPCOM_ENV_APP_SCOPE_LOCAL "VCL_APP_SCOPE_LOCAL"
#define VPPCOM_ENV_APP_SCOPE_GLOBAL "VCL_APP_SCOPE_GLOBAL"
#define VPPCOM_ENV_VPP_API_SOCKET "VCL_VPP_API_SOCKET"
+#define VPPCOM_ENV_VPP_SAPI_SOCKET "VCL_VPP_SAPI_SOCKET"
typedef enum
{