ospf6_asbr_terminate();
ospf6_lsa_terminate();
- ospf6_serv_close();
/* reverse access_list_init */
access_list_reset();
/* add next read thread */
sockfd = THREAD_FD(thread);
- thread_add_read(master, ospf6_receive, NULL, sockfd, NULL);
+ thread_add_read(master, ospf6_receive, NULL, sockfd, &ospf6->t_ospf6_receive);
/* initialize */
memset(&src, 0, sizeof(src));
#include "ospf6_area.h"
#include "ospf6_interface.h"
#include "ospf6_neighbor.h"
+#include "ospf6_network.h"
#include "ospf6_flood.h"
#include "ospf6_asbr.h"
QOBJ_REG(o, ospf6);
+ ospf6_serv_sock();
+
+ thread_add_read(master, ospf6_receive, NULL, ospf6_sock, &o->t_ospf6_receive);
+
return o;
}
ospf6_flush_self_originated_lsas_now();
ospf6_disable(ospf6);
+ ospf6_serv_close();
+
for (ALL_LIST_ELEMENTS(o->area_list, node, nnode, oa))
ospf6_area_delete(oa);
THREAD_OFF(o->t_spf_calc);
THREAD_OFF(o->t_ase_calc);
THREAD_OFF(o->t_distribute_update);
+ THREAD_OFF(o->t_ospf6_receive);
}
}
struct thread *t_ase_calc; /* ASE calculation timer. */
struct thread *maxage_remover;
struct thread *t_distribute_update; /* Distirbute update timer. */
+ struct thread *t_ospf6_receive; /* OSPF6 receive timer */
uint32_t ref_bandwidth;
VIEW_NODE,
&show_ipv6_ospf6_database_type_self_originated_linkstate_id_cmd);
install_element(VIEW_NODE, &show_ipv6_ospf6_database_aggr_router_cmd);
-
- /* Make ospf protocol socket. */
- ospf6_serv_sock();
- thread_add_read(master, ospf6_receive, NULL, ospf6_sock, NULL);
}
void ospf6_clean(void)