aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/arping/arping.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/arping/arping.c')
-rw-r--r--src/plugins/arping/arping.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/arping/arping.c b/src/plugins/arping/arping.c
index 14f92589ea7..11fb0704dd3 100644
--- a/src/plugins/arping/arping.c
+++ b/src/plugins/arping/arping.c
@@ -500,6 +500,7 @@ arping_neighbor_advertisement (vlib_main_t *vm, arping_args_t *args)
vlib_cli_output (vm, "Sending %u GARP to %U", send_count,
format_ip4_address, &args->address.ip.ip4);
ip4_neighbor_advertise (vm, vnm, args->sw_if_index,
+ vlib_get_thread_index (),
&args->address.ip.ip4);
}
else
@@ -509,6 +510,7 @@ arping_neighbor_advertisement (vlib_main_t *vm, arping_args_t *args)
send_count, format_ip6_address,
&args->address.ip.ip6);
ip6_neighbor_advertise (vm, vnm, args->sw_if_index,
+ vlib_get_thread_index (),
&args->address.ip.ip6);
}
args->repeat--;
@@ -554,7 +556,8 @@ arping_neighbor_probe_dst (vlib_main_t *vm, arping_args_t *args)
arping_intf_t aif;
/* Disallow multiple sends on the same interface for now. Who needs it? */
- if (am->interfaces && (am->interfaces[args->sw_if_index] != 0))
+ if ((vec_len (am->interfaces) > args->sw_if_index) &&
+ (am->interfaces[args->sw_if_index] != 0))
{
error = clib_error_return (
0, "arping command is in progress for the same interface. "
@@ -586,7 +589,8 @@ arping_neighbor_probe_dst (vlib_main_t *vm, arping_args_t *args)
if (args->silence == 0)
vlib_cli_output (vm, "Sending %u ARP Request to %U", send_count,
format_ip4_address, &args->address.ip.ip4);
- ip4_neighbor_probe_dst (args->sw_if_index, &args->address.ip.ip4);
+ ip4_neighbor_probe_dst (args->sw_if_index, vlib_get_thread_index (),
+ &args->address.ip.ip4);
}
else
{
@@ -594,7 +598,8 @@ arping_neighbor_probe_dst (vlib_main_t *vm, arping_args_t *args)
vlib_cli_output (vm, "Sending %u Neighbor Solicitation to %U",
send_count, format_ip6_address,
&args->address.ip.ip6);
- ip6_neighbor_probe_dst (args->sw_if_index, &args->address.ip.ip6);
+ ip6_neighbor_probe_dst (args->sw_if_index, vlib_get_thread_index (),
+ &args->address.ip.ip6);
}
args->repeat--;
if ((args->interval > 0.0) && (args->repeat > 0))