Home | History | Annotate | Download | only in rtadvd

Lines Matching defs:rai

105 free_rainfo(struct rainfo *rai)
115 rtadvd_remove_timer(&rai->timer);
116 rtadvd_remove_timer(&rai->timer_sol);
118 while ((sol = TAILQ_FIRST(&rai->soliciter))) {
119 TAILQ_REMOVE(&rai->soliciter, sol, next);
123 while ((pfx = TAILQ_FIRST(&rai->prefix))) {
124 TAILQ_REMOVE(&rai->prefix, pfx, next);
128 while ((rti = TAILQ_FIRST(&rai->route))) {
129 TAILQ_REMOVE(&rai->route, rti, next);
133 while ((rdnss = TAILQ_FIRST(&rai->rdnss))) {
134 TAILQ_REMOVE(&rai->rdnss, rdnss, next);
142 while ((dnssl = TAILQ_FIRST(&rai->dnssl))) {
143 TAILQ_REMOVE(&rai->dnssl, dnssl, next);
151 free(rai->sdl);
152 free(rai->ra_data);
153 free(rai);
161 struct rainfo *tmp, *rai;
720 TAILQ_FOREACH(rai, &ralist, next) {
721 if (rai->ifindex == tmp->ifindex) {
722 TAILQ_REMOVE(&ralist, rai, next);
724 free_rainfo(rai);
725 rai = NULL;
730 if (rai->leaving) {
731 tmp->leaving = rai->leaving;
732 free_rainfo(rai);
733 rai = tmp->leaving;
734 rai->leaving_for = tmp;
737 rai->lifetime = 0;
738 TAILQ_FOREACH(rdnss, &rai->rdnss, next)
740 TAILQ_FOREACH(dnssl, &rai->dnssl, next)
742 rai->leaving_for = tmp;
743 tmp->leaving = rai;
744 rai->initcounter = MAX_INITIAL_RTR_ADVERTISEMENTS;
745 rai->mininterval = MIN_DELAY_BETWEEN_RAS;
746 rai->maxinterval = MIN_DELAY_BETWEEN_RAS;
747 rai->leaving_adv = MAX_FINAL_RTR_ADVERTISEMENTS;
748 if (rai->timer == NULL)
749 rai->timer = rtadvd_add_timer(ra_timeout,
751 rai, rai);
752 ra_timer_update((void *)rai, &rai->timer->tm);
753 rtadvd_set_timer(&rai->timer->tm, rai->timer);
765 if (rai)
781 get_prefix(struct rainfo *rai)
799 if (strcmp(ifa->ifa_name, rai->ifname) != 0)
818 if (find_prefix(rai, a, plen)) {
850 __func__, ntopbuf, pp->prefixlen, rai->ifname);
858 pp->rainfo = rai;
861 TAILQ_INSERT_TAIL(&rai->prefix, pp, next);
862 rai->pfxs++;
887 struct rainfo *rai = prefix->rainfo;
889 TAILQ_REMOVE(&rai->prefix, prefix, next);
890 rai->pfxs--;
894 prefix->prefixlen, rai->ifname);
904 struct rainfo *rai = prefix->rainfo;
916 prefix->prefixlen, rai->ifname, (long)prefix_timo);
944 struct rainfo *rai = prefix->rainfo;
955 INET6_ADDRSTRLEN), prefix->prefixlen, rai->ifname);
969 add_prefix(struct rainfo *rai, int ifindex, const struct in6_addr *addr,
988 prefix->rainfo = rai;
989 TAILQ_INSERT_TAIL(&rai->prefix, prefix, next);
990 rai->pfxs++;
994 plen, rai->ifname);
997 free(rai->ra_data);
998 rai->ra_data = NULL;
1001 make_packet(rai);