Line data Source code
1 : /* 2 : * Copyright (c) 2020 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 <stddef.h> 17 : 18 : #include <vnet/vnet.h> 19 : 20 : #include <vnet/ip/ip_types_api.h> 21 : #include <vpp/app/version.h> 22 : 23 : #include <vlibapi/api.h> 24 : #include <vlibmemory/api.h> 25 : 26 : #include <vnet/crypto/crypto.h> 27 : 28 : /* define message IDs */ 29 : #include <vnet/format_fns.h> 30 : #include <vnet/crypto/crypto.api_enum.h> 31 : #include <vnet/crypto/crypto.api_types.h> 32 : 33 : /** 34 : * Base message ID fot the plugin 35 : */ 36 : static u32 crypto_base_msg_id; 37 : 38 : #define REPLY_MSG_ID_BASE crypto_base_msg_id 39 : 40 : #include <vlibapi/api_helper_macros.h> 41 : 42 : static void 43 0 : vl_api_crypto_set_async_dispatch_t_handler (vl_api_crypto_set_async_dispatch_t 44 : * mp) 45 : { 46 : vl_api_crypto_set_async_dispatch_reply_t *rmp; 47 0 : int rv = 0; 48 : 49 0 : REPLY_MACRO (VL_API_CRYPTO_SET_ASYNC_DISPATCH_REPLY); 50 : } 51 : 52 : static void 53 0 : vl_api_crypto_set_handler_t_handler (vl_api_crypto_set_handler_t * mp) 54 : { 55 : vl_api_crypto_set_handler_reply_t *rmp; 56 0 : int rv = 0; 57 : char *engine; 58 : char *alg_name; 59 : crypto_op_class_type_t oct; 60 : 61 0 : engine = (char *) mp->engine; 62 0 : alg_name = (char *) mp->alg_name; 63 0 : oct = (crypto_op_class_type_t) mp->oct; 64 : 65 0 : if (mp->is_async) 66 0 : rv = vnet_crypto_set_async_handler2 (alg_name, engine); 67 : else 68 0 : rv = vnet_crypto_set_handler2 (alg_name, engine, oct); 69 : 70 0 : REPLY_MACRO (VL_API_CRYPTO_SET_HANDLER_REPLY); 71 : } 72 : 73 : #include <vnet/crypto/crypto.api.c> 74 : 75 : clib_error_t * 76 559 : crypto_api_hookup (vlib_main_t * vm) 77 : { 78 : /* Ask for a correctly-sized block of API message decode slots */ 79 559 : crypto_base_msg_id = setup_message_id_table (); 80 : 81 559 : return 0; 82 : } 83 : 84 7279 : VLIB_API_INIT_FUNCTION (crypto_api_hookup); 85 : 86 : /* 87 : * fd.io coding-style-patch-verification: ON 88 : * 89 : * Local Variables: 90 : * eval: (c-set-style "gnu") 91 : * End: 92 : */