void olsr_init_niit(void) { if (olsr_cnf->ip_version == AF_INET) { olsr_cnf->use_niit = false; return; } olsr_cnf->niit4to6_if_index = if_nametoindex(DEF_NIIT4TO6_IFNAME); if (olsr_cnf->niit4to6_if_index <= 0) { OLSR_PRINTF(1, "Warning, %s device is not available, deactivating NIIT\n", DEF_NIIT4TO6_IFNAME); olsr_cnf->use_niit = false; return; } olsr_cnf->niit6to4_if_index = if_nametoindex(DEF_NIIT6TO4_IFNAME); if (olsr_cnf->niit6to4_if_index <= 0) { OLSR_PRINTF(1, "Warning, %s device is not available, deactivating NIIT\n", DEF_NIIT6TO4_IFNAME); olsr_cnf->use_niit = false; return; } niit4to6_active = olsr_if_isup(DEF_NIIT4TO6_IFNAME); niit6to4_active = olsr_if_isup(DEF_NIIT6TO4_IFNAME); olsr_add_ifchange_handler(&handle_niit_ifchange); olsr_add_ifchange_handler(&handle_niit_ifchange); return; }
int olsr_os_init_iptunnel(const char * dev) { tunnel_cookie = olsr_alloc_cookie("iptunnel", OLSR_COOKIE_TYPE_MEMORY); olsr_cookie_set_memory_size(tunnel_cookie, sizeof(struct olsr_iptunnel_entry)); avl_init(&tunnel_tree, avl_comp_default); store_iptunnel_state = olsr_if_isup(dev); if (store_iptunnel_state) { return 0; } if (olsr_if_set_state(dev, true)) { return -1; } return olsr_os_ifip(if_nametoindex(dev), &olsr_cnf->main_addr, true); }