X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fvnet%2Fcrypto%2Fformat.c;h=3210ab9eac0b85e51f23b6676a6a7242cc39d4b3;hb=efcad1a9d22c4a664f3004cafe09d9c3a68e1620;hp=88c7c0fe7f166a63932eeb6e91bf4670a76b94b6;hpb=91f17dc7c4e79343b8fba924e7cea6380a0e6653;p=vpp.git diff --git a/src/vnet/crypto/format.c b/src/vnet/crypto/format.c index 88c7c0fe7f1..3210ab9eac0 100644 --- a/src/vnet/crypto/format.c +++ b/src/vnet/crypto/format.c @@ -26,14 +26,69 @@ format_vnet_crypto_alg (u8 * s, va_list * args) return format (s, "%s", d->name); } +uword +unformat_vnet_crypto_alg (unformat_input_t * input, va_list * args) +{ + vnet_crypto_main_t *cm = &crypto_main; + vnet_crypto_alg_t *alg = va_arg (*args, vnet_crypto_alg_t *); + uword *p; + u8 *name; + + if (!unformat (input, "%s", &name)) + return 0; + + p = hash_get_mem (cm->alg_index_by_name, name); + vec_free (name); + if (p == 0) + return 0; + + *alg = p[0]; + + return 1; +} + u8 * format_vnet_crypto_op (u8 * s, va_list * args) { vnet_crypto_main_t *cm = &crypto_main; - vnet_crypto_op_type_t op = va_arg (*args, vnet_crypto_op_type_t); - vnet_crypto_op_type_data_t *otd = cm->opt_data + op; + vnet_crypto_op_id_t op = va_arg (*args, int); // vnet_crypto_op_id_t); + vnet_crypto_op_data_t *otd = cm->opt_data + op; + + return format (s, "%U-%U", format_vnet_crypto_op_type, otd->type, 0, + format_vnet_crypto_alg, otd->alg); +} + +u8 * +format_vnet_crypto_op_type (u8 * s, va_list * args) +{ + vnet_crypto_op_type_t opt = va_arg (*args, vnet_crypto_op_type_t); + int is_chained = va_arg (*args, int); + char *strings[] = { +#define _(n, s) [VNET_CRYPTO_OP_TYPE_##n] = s, + foreach_crypto_op_type +#undef _ + }; + + if (opt >= VNET_CRYPTO_OP_N_TYPES) + return format (s, "unknown"); + + return format (s, "%s%s", strings[opt], is_chained ? "-chained" : ""); +} + +u8 * +format_vnet_crypto_op_status (u8 * s, va_list * args) +{ + vnet_crypto_op_status_t st = va_arg (*args, vnet_crypto_op_status_t); + char *strings[] = { +#define _(n, s) [VNET_CRYPTO_OP_STATUS_##n] = s, + foreach_crypto_op_status +#undef _ + }; + + if (st >= VNET_CRYPTO_OP_N_STATUS) + return format (s, "unknown"); - return format (s, "%s-%U", otd->desc, format_vnet_crypto_alg, otd->alg); + return format (s, "%s", strings[st]); } u8 *