diff options
author | Benoît Ganne <bganne@cisco.com> | 2023-01-06 09:58:53 +0100 |
---|---|---|
committer | Benoît Ganne <bganne@cisco.com> | 2023-01-06 11:20:30 +0100 |
commit | cfaf440202161f9cbe565c15f49a9fb877f639ce (patch) | |
tree | 2ac4d52f7849d2e863ca7fbe5d6a04934c838a79 /src/vnet/bfd | |
parent | 57f177d0b7ad3002ba0d05dc8180f4b342ce5384 (diff) |
bfd: fix ip address cli parsing
unformat_ip46_address() requires the address type as 2nd parameter.
Type: fix
Change-Id: Iaa1aebaebd1a947dab6c936c3b931854c0a3facc
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Diffstat (limited to 'src/vnet/bfd')
-rw-r--r-- | src/vnet/bfd/bfd_cli.c | 109 |
1 files changed, 58 insertions, 51 deletions
diff --git a/src/vnet/bfd/bfd_cli.c b/src/vnet/bfd/bfd_cli.c index 1d100b077eb..a5f2057e7d7 100644 --- a/src/vnet/bfd/bfd_cli.c +++ b/src/vnet/bfd/bfd_cli.c @@ -397,23 +397,30 @@ WARN_OFF(tautological-compare) \ goto out; \ } +static uword +bfd_cli_unformat_ip46_address (unformat_input_t *input, va_list *args) +{ + ip46_address_t *ip46 = va_arg (*args, ip46_address_t *); + return unformat_user (input, unformat_ip46_address, ip46, IP46_TYPE_ANY); +} + static clib_error_t * bfd_cli_udp_session_add (vlib_main_t * vm, unformat_input_t * input, CLIB_UNUSED (vlib_cli_command_t * lmd)) { clib_error_t *ret = NULL; unformat_input_t _line_input, *line_input = &_line_input; -#define foreach_bfd_cli_udp_session_add_cli_param(F) \ - F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ - unformat_vnet_sw_interface, &vnet_main) \ - F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (u32, desired_min_tx, DESIRED_MIN_TX_STR, mandatory, "%u") \ - F (u32, required_min_rx, REQUIRED_MIN_RX_STR, mandatory, "%u") \ - F (u32, detect_mult, DETECT_MULT_STR, mandatory, "%u") \ - F (u32, conf_key_id, CONF_KEY_ID_STR, optional, "%u") \ +#define foreach_bfd_cli_udp_session_add_cli_param(F) \ + F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ + unformat_vnet_sw_interface, &vnet_main) \ + F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (u32, desired_min_tx, DESIRED_MIN_TX_STR, mandatory, "%u") \ + F (u32, required_min_rx, REQUIRED_MIN_RX_STR, mandatory, "%u") \ + F (u32, detect_mult, DETECT_MULT_STR, mandatory, "%u") \ + F (u32, conf_key_id, CONF_KEY_ID_STR, optional, "%u") \ F (u32, bfd_key_id, BFD_KEY_ID_STR, optional, "%u") foreach_bfd_cli_udp_session_add_cli_param (DECLARE); @@ -501,15 +508,15 @@ bfd_cli_udp_session_mod (vlib_main_t * vm, unformat_input_t * input, { clib_error_t *ret = NULL; unformat_input_t _line_input, *line_input = &_line_input; -#define foreach_bfd_cli_udp_session_mod_cli_param(F) \ - F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ - unformat_vnet_sw_interface, &vnet_main) \ - F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (u32, desired_min_tx, DESIRED_MIN_TX_STR, mandatory, "%u") \ - F (u32, required_min_rx, REQUIRED_MIN_RX_STR, mandatory, "%u") \ +#define foreach_bfd_cli_udp_session_mod_cli_param(F) \ + F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ + unformat_vnet_sw_interface, &vnet_main) \ + F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (u32, desired_min_tx, DESIRED_MIN_TX_STR, mandatory, "%u") \ + F (u32, required_min_rx, REQUIRED_MIN_RX_STR, mandatory, "%u") \ F (u32, detect_mult, DETECT_MULT_STR, mandatory, "%u") foreach_bfd_cli_udp_session_mod_cli_param (DECLARE); @@ -576,13 +583,13 @@ bfd_cli_udp_session_del (vlib_main_t * vm, unformat_input_t * input, { clib_error_t *ret = NULL; unformat_input_t _line_input, *line_input = &_line_input; -#define foreach_bfd_cli_udp_session_del_cli_param(F) \ - F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ - unformat_vnet_sw_interface, &vnet_main) \ - F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) +#define foreach_bfd_cli_udp_session_del_cli_param(F) \ + F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ + unformat_vnet_sw_interface, &vnet_main) \ + F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) foreach_bfd_cli_udp_session_del_cli_param (DECLARE); @@ -637,14 +644,14 @@ bfd_cli_udp_session_set_flags (vlib_main_t * vm, unformat_input_t * input, { clib_error_t *ret = NULL; unformat_input_t _line_input, *line_input = &_line_input; -#define foreach_bfd_cli_udp_session_set_flags_cli_param(F) \ - F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ - unformat_vnet_sw_interface, &vnet_main) \ - F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (u8 *, admin_up_down_token, ADMIN_STR, mandatory, "%v", \ +#define foreach_bfd_cli_udp_session_set_flags_cli_param(F) \ + F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ + unformat_vnet_sw_interface, &vnet_main) \ + F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (u8 *, admin_up_down_token, ADMIN_STR, mandatory, "%v", \ &admin_up_down_token) foreach_bfd_cli_udp_session_set_flags_cli_param (DECLARE); @@ -721,15 +728,15 @@ bfd_cli_udp_session_auth_activate (vlib_main_t * vm, { clib_error_t *ret = NULL; unformat_input_t _line_input, *line_input = &_line_input; -#define foreach_bfd_cli_udp_session_auth_activate_cli_param(F) \ - F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ - unformat_vnet_sw_interface, &vnet_main) \ - F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (u8 *, delayed_token, DELAYED_STR, optional, "%v") \ - F (u32, conf_key_id, CONF_KEY_ID_STR, mandatory, "%u") \ +#define foreach_bfd_cli_udp_session_auth_activate_cli_param(F) \ + F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ + unformat_vnet_sw_interface, &vnet_main) \ + F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (u8 *, delayed_token, DELAYED_STR, optional, "%v") \ + F (u32, conf_key_id, CONF_KEY_ID_STR, mandatory, "%u") \ F (u32, bfd_key_id, BFD_KEY_ID_STR, mandatory, "%u") foreach_bfd_cli_udp_session_auth_activate_cli_param (DECLARE); @@ -818,13 +825,13 @@ bfd_cli_udp_session_auth_deactivate (vlib_main_t *vm, unformat_input_t *input, { clib_error_t *ret = NULL; unformat_input_t _line_input, *line_input = &_line_input; -#define foreach_bfd_cli_udp_session_auth_deactivate_cli_param(F) \ - F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ - unformat_vnet_sw_interface, &vnet_main) \ - F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ - F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ - unformat_ip46_address) \ +#define foreach_bfd_cli_udp_session_auth_deactivate_cli_param(F) \ + F (u32, sw_if_index, INTERFACE_STR, mandatory, "%U", \ + unformat_vnet_sw_interface, &vnet_main) \ + F (ip46_address_t, local_addr, LOCAL_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ + F (ip46_address_t, peer_addr, PEER_ADDR_STR, mandatory, "%U", \ + bfd_cli_unformat_ip46_address) \ F (u8 *, delayed_token, DELAYED_STR, optional, "%v") foreach_bfd_cli_udp_session_auth_deactivate_cli_param (DECLARE); |