X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fvnet%2Fipsec%2Fipsec_cli.c;h=13f9efdf566b7fa990bc6c6618fa7b39d99a36a0;hb=f539578bac8b64886b57c460c9d74273e6613f8b;hp=1ab8bd99db3cda889ef8f2a4d0e0d79268e3048d;hpb=282872127bbeee6ae59ab3f885c09bad601ee0cc;p=vpp.git diff --git a/src/vnet/ipsec/ipsec_cli.c b/src/vnet/ipsec/ipsec_cli.c index 1ab8bd99db3..13f9efdf566 100644 --- a/src/vnet/ipsec/ipsec_cli.c +++ b/src/vnet/ipsec/ipsec_cli.c @@ -149,7 +149,8 @@ ipsec_sa_add_del_command_fn (vlib_main_t * vm, rv = ipsec_sa_add_and_lock (id, spi, proto, crypto_alg, &ck, integ_alg, &ik, flags, 0, clib_host_to_net_u32 (salt), - &tun_src, &tun_dst, NULL); + &tun_src, &tun_dst, NULL, + IPSEC_UDP_PORT_NONE); else rv = ipsec_sa_unlock_id (id); @@ -413,6 +414,9 @@ show_ipsec_command_fn (vlib_main_t * vm, ipsec_spd_bindings_show_all (vm, im); ipsec_tun_protect_walk (ipsec_tun_protect_show_one, vm); + vlib_cli_output (vm, "IPSec async mode: %s", + (im->async_mode ? "on" : "off")); + return 0; } @@ -729,8 +733,8 @@ create_ipsec_tunnel_command_fn (vlib_main_t * vm, ip46_address_t local_ip = ip46_address_initializer; ip46_address_t remote_ip = ip46_address_initializer; ip_address_t nh = IP_ADDRESS_V4_ALL_0S; - ipsec_crypto_alg_t crypto_alg; - ipsec_integ_alg_t integ_alg; + ipsec_crypto_alg_t crypto_alg = IPSEC_CRYPTO_ALG_NONE; + ipsec_integ_alg_t integ_alg = IPSEC_INTEG_ALG_NONE; ipsec_sa_flags_t flags; u32 local_spi, remote_spi, salt, table_id, fib_index; u32 instance = ~0; @@ -852,14 +856,14 @@ create_ipsec_tunnel_command_fn (vlib_main_t * vm, local_spi, IPSEC_PROTOCOL_ESP, crypto_alg, &lck, integ_alg, &lik, flags, table_id, clib_host_to_net_u32 (salt), &local_ip, - &remote_ip, NULL); + &remote_ip, NULL, IPSEC_UDP_PORT_NONE); rv |= ipsec_sa_add_and_lock (ipsec_tun_mk_remote_sa_id (sw_if_index), remote_spi, IPSEC_PROTOCOL_ESP, crypto_alg, &rck, integ_alg, &rik, (flags | IPSEC_SA_FLAG_IS_INBOUND), table_id, clib_host_to_net_u32 (salt), &remote_ip, - &local_ip, NULL); + &local_ip, NULL, IPSEC_UDP_PORT_NONE); rv |= ipsec_tun_protect_update_one (sw_if_index, &nh, ipsec_tun_mk_local_sa_id (sw_if_index), @@ -1037,6 +1041,41 @@ ipsec_cli_init (vlib_main_t * vm) VLIB_INIT_FUNCTION (ipsec_cli_init); +static clib_error_t * +set_async_mode_command_fn (vlib_main_t * vm, unformat_input_t * input, + vlib_cli_command_t * cmd) +{ + unformat_input_t _line_input, *line_input = &_line_input; + int async_enable = 0; + + if (!unformat_user (input, unformat_line_input, line_input)) + return 0; + + while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) + { + if (unformat (line_input, "on")) + async_enable = 1; + else if (unformat (line_input, "off")) + async_enable = 0; + else + return (clib_error_return (0, "unknown input '%U'", + format_unformat_error, line_input)); + } + + vnet_crypto_request_async_mode (async_enable); + ipsec_set_async_mode (async_enable); + + unformat_free (line_input); + return (NULL); +} + +/* *INDENT-OFF* */ +VLIB_CLI_COMMAND (set_async_mode_command, static) = { + .path = "set ipsec async mode", + .short_help = "set ipsec async mode on|off", + .function = set_async_mode_command_fn, +}; +/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON