diff options
author | Neale Ranns <neale.ranns@cisco.com> | 2018-02-24 02:11:19 -0800 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2018-03-05 18:41:12 +0000 |
commit | 53da221b13225695516ec7469ca29d82bb10e594 (patch) | |
tree | 10f31c7fd4acd536cef4793b5c542938da7f09dc /src/vnet/ip/ping.c | |
parent | 0e7fe4fddb493350cf78c8126e9cc93d55490c42 (diff) |
IP6 link-local table
- IPv6 link local table is a per-SW interface array of IPv6 unicast FIBs
- the per-interface ocst is sizeof(fib_table_t) which is small,
w.r.t. the cost of an interface
- FE80::/10 in the 'global' table points to a DPO that performs a lookup in the
input interface's LL fib.
Change-Id: Ice834b25ebeeacb2e929d7c864d7ec8c09918cbe
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
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; |