diff options
Diffstat (limited to 'src/vnet/ip/ping.c')
-rwxr-xr-x | src/vnet/ip/ping.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/vnet/ip/ping.c b/src/vnet/ip/ping.c index a142754bdf7..a929a0cdf00 100755 --- a/src/vnet/ip/ping.c +++ b/src/vnet/ip/ping.c @@ -314,13 +314,14 @@ send_ip6_ping (vlib_main_t * vm, ip6_main_t * im, h0->ip6.src_address = *pa6; /* Fill in the correct source now */ - ip6_address_t *a = ip6_interface_first_address (im, sw_if_index); - if (!a) + if (!ip6_src_address_for_packet (&im->lookup_main, + sw_if_index, + &h0->ip6.dst_address, + &h0->ip6.src_address)) { vlib_buffer_free (vm, &bi0, 1); return SEND_PING_NO_SRC_ADDRESS; } - h0->ip6.src_address = a[0]; /* Fill in icmp fields */ h0->icmp.type = ICMP6_echo_request; |