Exemple #1
0
int main(int argc, char const* argv[]) {
	Input default_gateway_input;
	Input address;
	const Entry* entry;

	RouterTrie rt;
	// default_gateway_input = rt_create_default_gateway_input(
	// 		rt_convert_string_to_address("2001::1"), 0);

	rt_setup(&rt);
	// rt_default_gateway(&rt, &default_gateway_input);


	address.prefix_length = 64;
	address.interface = 1;
	address.next_hop = rt_convert_string_to_address("::1");
	address.address = rt_convert_string_to_address("2a00:1450:4001:817::0");
	rt_insert(&rt, &address);

	address.prefix_length = 64;
	address.interface = 2;
	address.next_hop = rt_convert_string_to_address("::2");
	address.address = rt_convert_string_to_address("2aff:1450:4001:817::0");
	rt_insert(&rt, &address);

	address.address = rt_convert_string_to_address("2aff:1450:4001:817::0");

	entry = rt_match(&rt, &address.address);
	printf("%d\n", entry ? entry->interface : 0);

	rt_destroy(&rt);
	return 0;
}
Exemple #2
0
void node_destroy(net_node_t ** node_ref)
{
  if (*node_ref != NULL) {
    rt_destroy(&(*node_ref)->rt);
    protocols_destroy(&(*node_ref)->protocols);
    net_links_destroy(&(*node_ref)->ifaces);

#ifdef OSPF_SUPPORT
    _array_destroy((array_t **)(&(*node_ref)->pOSPFAreas));
    OSPF_rt_destroy(&(*node_ref)->pOspfRT);
#endif

    uint16_array_destroy(&(*node_ref)->domains);
    if ((*node_ref)->name)
      str_destroy(&(*node_ref)->name);
    spt_destroy(&((*node_ref)->spt));
    FREE(*node_ref);
    *node_ref= NULL;
  }
}