LCOV - code coverage report
Current view: top level - vnet/crypto - format.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 16 58 27.6 %
Date: 2023-07-05 22:20:52 Functions: 3 9 33.3 %

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2019 Cisco and/or its affiliates.
       3             :  * Licensed under the Apache License, Version 2.0 (the "License");
       4             :  * you may not use this file except in compliance with the License.
       5             :  * You may obtain a copy of the License at:
       6             :  *
       7             :  *     http://www.apache.org/licenses/LICENSE-2.0
       8             :  *
       9             :  * Unless required by applicable law or agreed to in writing, software
      10             :  * distributed under the License is distributed on an "AS IS" BASIS,
      11             :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      12             :  * See the License for the specific language governing permissions and
      13             :  * limitations under the License.
      14             :  */
      15             : 
      16             : #include <stdbool.h>
      17             : #include <vlib/vlib.h>
      18             : #include <vnet/crypto/crypto.h>
      19             : 
      20             : u8 *
      21          98 : format_vnet_crypto_alg (u8 * s, va_list * args)
      22             : {
      23          98 :   vnet_crypto_alg_t alg = va_arg (*args, vnet_crypto_alg_t);
      24          98 :   vnet_crypto_main_t *cm = &crypto_main;
      25          98 :   vnet_crypto_alg_data_t *d = vec_elt_at_index (cm->algs, alg);
      26          98 :   return format (s, "%s", d->name);
      27             : }
      28             : 
      29             : uword
      30           0 : unformat_vnet_crypto_alg (unformat_input_t * input, va_list * args)
      31             : {
      32           0 :   vnet_crypto_main_t *cm = &crypto_main;
      33           0 :   vnet_crypto_alg_t *alg = va_arg (*args, vnet_crypto_alg_t *);
      34             :   uword *p;
      35             :   u8 *name;
      36             : 
      37           0 :   if (!unformat (input, "%s", &name))
      38           0 :     return 0;
      39             : 
      40           0 :   p = hash_get_mem (cm->alg_index_by_name, name);
      41           0 :   vec_free (name);
      42           0 :   if (p == 0)
      43           0 :     return 0;
      44             : 
      45           0 :   *alg = p[0];
      46             : 
      47           0 :   return 1;
      48             : }
      49             : 
      50             : u8 *
      51          98 : format_vnet_crypto_op (u8 * s, va_list * args)
      52             : {
      53          98 :   vnet_crypto_main_t *cm = &crypto_main;
      54          98 :   vnet_crypto_op_id_t op = va_arg (*args, int); // vnet_crypto_op_id_t);
      55          98 :   vnet_crypto_op_data_t *otd = cm->opt_data + op;
      56             : 
      57         196 :   return format (s, "%U-%U", format_vnet_crypto_op_type, otd->type,
      58          98 :                  format_vnet_crypto_alg, otd->alg);
      59             : }
      60             : 
      61             : u8 *
      62          98 : format_vnet_crypto_op_type (u8 * s, va_list * args)
      63             : {
      64          98 :   vnet_crypto_op_type_t opt = va_arg (*args, vnet_crypto_op_type_t);
      65          98 :   char *strings[] = {
      66             : #define _(n, s) [VNET_CRYPTO_OP_TYPE_##n] = s,
      67             :     foreach_crypto_op_type
      68             : #undef _
      69             :   };
      70             : 
      71          98 :   if (opt >= VNET_CRYPTO_OP_N_TYPES)
      72           0 :     return format (s, "unknown");
      73             : 
      74          98 :   return format (s, "%s", strings[opt]);
      75             : }
      76             : 
      77             : u8 *
      78           0 : format_vnet_crypto_op_status (u8 * s, va_list * args)
      79             : {
      80           0 :   vnet_crypto_op_status_t st = va_arg (*args, vnet_crypto_op_status_t);
      81           0 :   char *strings[] = {
      82             : #define _(n, s) [VNET_CRYPTO_OP_STATUS_##n] = s,
      83             :     foreach_crypto_op_status
      84             : #undef _
      85             :   };
      86             : 
      87           0 :   if (st >= VNET_CRYPTO_OP_N_STATUS)
      88           0 :     return format (s, "unknown");
      89             : 
      90           0 :   return format (s, "%s", strings[st]);
      91             : }
      92             : 
      93             : u8 *
      94           0 : format_vnet_crypto_engine (u8 * s, va_list * args)
      95             : {
      96           0 :   vnet_crypto_main_t *cm = &crypto_main;
      97           0 :   u32 crypto_engine_index = va_arg (*args, u32);
      98             :   vnet_crypto_engine_t *e;
      99             : 
     100           0 :   if (crypto_engine_index == ~0)
     101           0 :     return s;
     102             : 
     103           0 :   e = vec_elt_at_index (cm->engines, crypto_engine_index);
     104             : 
     105           0 :   return format (s, "%s", e->name);
     106             : }
     107             : 
     108             : u8 *
     109           0 : format_vnet_crypto_async_op_type (u8 * s, va_list * args)
     110             : {
     111           0 :   vnet_crypto_async_op_type_t opt =
     112             :     va_arg (*args, vnet_crypto_async_op_type_t);
     113           0 :   char *strings[] = {
     114             : #define _(n, s) [VNET_CRYPTO_ASYNC_OP_TYPE_##n] = s,
     115             :     foreach_crypto_async_op_type
     116             : #undef _
     117             :   };
     118             : 
     119           0 :   if (opt >= VNET_CRYPTO_ASYNC_OP_N_TYPES)
     120           0 :     return format (s, "unknown");
     121             : 
     122           0 :   return format (s, "%s", strings[opt]);
     123             : }
     124             : 
     125             : u8 *
     126           0 : format_vnet_crypto_async_alg (u8 * s, va_list * args)
     127             : {
     128           0 :   vnet_crypto_async_alg_t alg = va_arg (*args, vnet_crypto_async_alg_t);
     129           0 :   vnet_crypto_main_t *cm = &crypto_main;
     130           0 :   vnet_crypto_async_alg_data_t *d = vec_elt_at_index (cm->async_algs, alg);
     131           0 :   return format (s, "%s", d->name);
     132             : }
     133             : 
     134             : u8 *
     135           0 : format_vnet_crypto_async_op (u8 * s, va_list * args)
     136             : {
     137           0 :   vnet_crypto_main_t *cm = &crypto_main;
     138           0 :   vnet_crypto_async_op_id_t op = va_arg (*args, vnet_crypto_async_op_id_t);
     139           0 :   vnet_crypto_async_op_data_t *otd = cm->async_opt_data + op;
     140             : 
     141           0 :   return format (s, "%U-%U", format_vnet_crypto_async_op_type, otd->type,
     142           0 :                  format_vnet_crypto_async_alg, otd->alg);
     143             : }
     144             : 
     145             : /*
     146             :  * fd.io coding-style-patch-verification: ON
     147             :  *
     148             :  * Local Variables:
     149             :  * eval: (c-set-style "gnu")
     150             :  * End:
     151             :  */

Generated by: LCOV version 1.14