-static void
-vl_api_is_address_reachable_t_handler (vl_api_is_address_reachable_t * mp)
-{
-#if 0
- vpe_main_t *rm = &vpe_main;
- ip4_main_t *im4 = &ip4_main;
- ip6_main_t *im6 = &ip6_main;
- ip_lookup_main_t *lm;
- union
- {
- ip4_address_t ip4;
- ip6_address_t ip6;
- } addr;
- u32 adj_index, sw_if_index;
- vl_api_is_address_reachable_t *rmp;
- ip_adjacency_t *adj;
- unix_shared_memory_queue_t *q;
-
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
- {
- increment_missing_api_client_counter (rm->vlib_main);
- return;
- }
-
- rmp = vl_msg_api_alloc (sizeof (*rmp));
- clib_memcpy (rmp, mp, sizeof (*rmp));
-
- sw_if_index = mp->next_hop_sw_if_index;
- clib_memcpy (&addr, mp->address, sizeof (addr));
- if (mp->is_ipv6)
- {
- lm = &im6->lookup_main;
- adj_index = ip6_fib_lookup (im6, sw_if_index, &addr.ip6);
- }
- else
- {
- lm = &im4->lookup_main;
- // FIXME NOT an ADJ
- adj_index = ip4_fib_lookup (im4, sw_if_index, &addr.ip4);
- }
- if (adj_index == ~0)
- {
- rmp->is_error = 1;
- goto send;
- }
- adj = ip_get_adjacency (lm, adj_index);
-
- if (adj->lookup_next_index == IP_LOOKUP_NEXT_REWRITE
- && adj->rewrite_header.sw_if_index == sw_if_index)
- {
- rmp->is_known = 1;
- }
- else
- {
- if (adj->lookup_next_index == IP_LOOKUP_NEXT_ARP
- && adj->rewrite_header.sw_if_index == sw_if_index)
- {
- if (mp->is_ipv6)
- ip6_probe_neighbor (rm->vlib_main, &addr.ip6, sw_if_index);
- else
- ip4_probe_neighbor (rm->vlib_main, &addr.ip4, sw_if_index);
- }
- else if (adj->lookup_next_index == IP_LOOKUP_NEXT_DROP)
- {
- rmp->is_known = 1;
- goto send;
- }
- rmp->is_known = 0;
- }
-
-send:
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
-#endif
-}
-