vcl: add config option for preferred tls engine 65/22865/4
authorFlorin Coras <fcoras@cisco.com>
Mon, 21 Oct 2019 02:55:56 +0000 (19:55 -0700)
committerDave Wallace <dwallacelf@gmail.com>
Tue, 22 Oct 2019 16:58:43 +0000 (16:58 +0000)
Type: feature

Change-Id: If6c095c9b737cb524a9232dcfa9be0f93f04d114
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/vcl/vcl_bapi.c
src/vcl/vcl_cfg.c
src/vcl/vcl_private.h

index 7e745c1..be7ce6b 100644 (file)
@@ -360,11 +360,14 @@ void
 vppcom_app_send_attach (void)
 {
   vcl_worker_t *wrk = vcl_worker_get_current ();
+  u8 tls_engine = CRYPTO_ENGINE_OPENSSL;
   vl_api_app_attach_t *bmp;
   u8 nsid_len = vec_len (vcm->cfg.namespace_id);
   u8 app_is_proxy = (vcm->cfg.app_proxy_transport_tcp ||
                     vcm->cfg.app_proxy_transport_udp);
 
+  tls_engine = vcm->cfg.tls_engine ? vcm->cfg.tls_engine : tls_engine;
+
   bmp = vl_msg_api_alloc (sizeof (*bmp));
   memset (bmp, 0, sizeof (*bmp));
 
@@ -387,7 +390,7 @@ vppcom_app_send_attach (void)
   bmp->options[APP_OPTIONS_PREALLOC_FIFO_PAIRS] =
     vcm->cfg.preallocated_fifo_pairs;
   bmp->options[APP_OPTIONS_EVT_QUEUE_SIZE] = vcm->cfg.event_queue_size;
-  bmp->options[APP_OPTIONS_TLS_ENGINE] = CRYPTO_ENGINE_OPENSSL;
+  bmp->options[APP_OPTIONS_TLS_ENGINE] = tls_engine;
   if (nsid_len)
     {
       bmp->namespace_id_len = nsid_len;
index 21fa0fa..cce60ba 100644 (file)
@@ -499,6 +499,12 @@ vppcom_cfg_read_file (char *conf_fname)
              VCFG_DBG (0, "VCL<%d>: configured with mq with eventfd",
                        getpid ());
            }
+         else if (unformat (line_input, "tls-engine %u",
+                            &vcl_cfg->tls_engine))
+           {
+             VCFG_DBG (0, "VCL<%d>: configured tls-engine %u (0x%x)",
+                       getpid (), vcl_cfg->tls_engine, vcl_cfg->tls_engine);
+           }
          else if (unformat (line_input, "}"))
            {
              vc_cfg_input = 0;
index 7746862..8fdf755 100644 (file)
@@ -211,6 +211,7 @@ typedef struct vppcom_cfg_t_
   char *event_log_path;
   u8 *vpp_api_filename;
   u8 *vpp_api_socket_name;
+  u32 tls_engine;
 } vppcom_cfg_t;
 
 void vppcom_cfg (vppcom_cfg_t * vcl_cfg);