Lines Matching full:ifi
157 struct ifinfo *ifi;
162 TAILQ_FOREACH(ifi, &ifilist, ifi_next) {
165 strcmp(ifi->ifi_ifname, ifname) != 0)
168 if (!ifi->ifi_persist) {
172 ifi->ifi_ifname);
176 if (ifi->ifi_ifindex == 0) {
180 ifi->ifi_ifname);
183 if (getconfig(ifi) == NULL) {
187 ifi->ifi_ifname);
197 struct ifinfo *ifi;
199 ifi = if_indextoifinfo(idx);
200 if (ifi == NULL) {
206 return (rm_ifinfo(ifi));
210 rm_ifinfo(struct ifinfo *ifi)
214 syslog(LOG_DEBUG, "<%s> enter (%s).", __func__, ifi->ifi_ifname);
215 switch (ifi->ifi_state) {
220 ifi->ifi_state = IFI_STATE_UNCONFIGURED;
223 __func__, ifi->ifi_ifname);
228 rtadvd_remove_timer(ifi->ifi_ra_timer);
229 ifi->ifi_ra_timer = NULL;
233 /* clean up ifi */
234 if (!ifi->ifi_persist) {
235 TAILQ_REMOVE(&ifilist, ifi, ifi_next);
237 __func__, ifi->ifi_ifindex);
240 update_persist_ifinfo(&ifilist, ifi->ifi_ifname);
242 __func__, ifi->ifi_ifname);
246 switch (ifi->ifi_state) {
248 if (ifi->ifi_rainfo != NULL) {
249 error = rm_rainfo(ifi->ifi_rainfo);
252 ifi->ifi_rainfo = NULL;
256 if (ifi->ifi_rainfo == ifi->ifi_rainfo_trans) {
257 if (ifi->ifi_rainfo != NULL) {
258 error = rm_rainfo(ifi->ifi_rainfo);
261 ifi->ifi_rainfo = NULL;
262 ifi->ifi_rainfo_trans = NULL;
265 if (ifi->ifi_rainfo != NULL) {
266 error = rm_rainfo(ifi->ifi_rainfo);
269 ifi->ifi_rainfo = NULL;
271 if (ifi->ifi_rainfo_trans != NULL) {
272 error = rm_rainfo(ifi->ifi_rainfo_trans);
275 ifi->ifi_rainfo_trans = NULL;
280 syslog(LOG_DEBUG, "<%s> leave (%s).", __func__, ifi->ifi_ifname);
281 if (!ifi->ifi_persist)
282 free(ifi);
335 getconfig(struct ifinfo *ifi)
348 if (ifi == NULL) /* if does not exist */
351 if (ifi->ifi_state == IFI_STATE_TRANSITIVE &&
352 ifi->ifi_rainfo == NULL) {
354 __func__, ifi->ifi_ifname);
358 if ((stat = agetent(tbuf, ifi->ifi_ifname)) <= 0) {
364 __func__, ifi->ifi_ifname);
373 rai->rai_ifinfo = ifi;
387 if (ifi->ifi_sdl.sdl_type == 0) {
390 __func__, ifi->ifi_ifname);
403 ifi->ifi_ifname, MIN_MAXINTERVAL, MAX_MAXINTERVAL);
414 __func__, val, ifi->ifi_ifname, MIN_MININTERVAL,
455 __func__, rai->rai_rtpref, ifi->ifi_ifname);
468 __func__, val, ifi->ifi_ifname, rai->rai_maxinterval,
479 __func__, val, ifi->ifi_ifname, MAXREACHABLETIME);
487 __func__, val64, ifi->ifi_ifname);
532 __func__, addr, ifi->ifi_ifname);
539 __func__, addr, ifi->ifi_ifname);
546 __func__, val, addr, ifi->ifi_ifname);
571 addr, pfx->pfx_prefixlen, ifi->ifi_ifname);
592 addr, pfx->pfx_prefixlen, ifi->ifi_ifname);
619 __func__, val64, ifi->ifi_ifname);
628 rai->rai_linkmtu = ifi->ifi_phymtu;
631 rai->rai_linkmtu > ifi->ifi_phymtu) {
635 __func__, rai->rai_linkmtu, ifi->ifi_ifname,
636 IPV6_MMTU, ifi->ifi_phymtu);
651 strlcpy(ndi.ifname, ifi->ifi_ifname, sizeof(ndi.ifname));
654 __func__, ifi->ifi_ifname, strerror(errno));
662 __func__, ifi->ifi_ifname, strerror(errno));
705 __func__, addr, ifi->ifi_ifname);
712 __func__, addr, ifi->ifi_ifname);
732 __func__, val, addr, ifi->ifi_ifname);
768 rti->rti_prefixlen, ifi->ifi_ifname);
789 ifi->ifi_ifname);
797 ifi->ifi_ifname);
845 entbuf, val, ifi->ifi_ifname, rai->rai_maxinterval,
899 entbuf, val, ifi->ifi_ifname, rai->rai_maxinterval,
951 val64, ifi->ifi_ifname);
975 switch (ifi->ifi_state) {
979 error = sock_mc_join(&sock, ifi->ifi_ifindex);
983 ifi->ifi_state = IFI_STATE_TRANSITIVE;
984 ifi->ifi_burstcount = MAX_INITIAL_RTR_ADVERTISEMENTS;
985 ifi->ifi_burstinterval = MAX_INITIAL_RTR_ADVERT_INTERVAL;
988 ifi->ifi_rainfo = rai;
989 ifi->ifi_rainfo_trans = rai;
992 if (ifi->ifi_ra_timer == NULL)
993 ifi->ifi_ra_timer = rtadvd_add_timer(ra_timeout,
994 ra_timer_update, ifi, ifi);
995 ra_timer_update(ifi, &ifi->ifi_ra_timer->rat_tm);
996 rtadvd_set_timer(&ifi->ifi_ra_timer->rat_tm,
997 ifi->ifi_ra_timer);
1001 __func__, ifi->ifi_ifname);
1005 rai_old = ifi->ifi_rainfo;
1010 ifi = NULL;
1022 ifi->ifi_rainfo_trans = rai_old;
1023 ifi->ifi_state = IFI_STATE_TRANSITIVE;
1024 ifi->ifi_burstcount = MAX_FINAL_RTR_ADVERTISEMENTS;
1025 ifi->ifi_burstinterval = MIN_DELAY_BETWEEN_RAS;
1027 ra_timer_update(ifi, &ifi->ifi_ra_timer->rat_tm);
1028 rtadvd_set_timer(&ifi->ifi_ra_timer->rat_tm,
1029 ifi->ifi_ra_timer);
1034 __func__, ifi->ifi_ifname);
1036 ifi->ifi_rainfo = rai;
1040 if (ifi->ifi_rainfo != NULL) {
1041 if (ifi->ifi_rainfo == ifi->ifi_rainfo_trans) {
1043 rm_rainfo(ifi->ifi_rainfo);
1044 ifi->ifi_rainfo = rai;
1045 ifi->ifi_rainfo_trans = rai;
1046 ifi->ifi_burstcount =
1048 ifi->ifi_burstinterval =
1052 rm_rainfo(ifi->ifi_rainfo);
1053 ifi->ifi_rainfo = rai;
1057 ra_timer_update(ifi, &ifi->ifi_ra_timer->rat_tm);
1058 rtadvd_set_timer(&ifi->ifi_ra_timer->rat_tm,
1059 ifi->ifi_ra_timer);
1064 __func__, ifi->ifi_ifname);
1072 return (ifi);
1085 struct ifinfo *ifi;
1095 ifi = rai->rai_ifinfo;
1100 if (strcmp(ifa->ifa_name, ifi->ifi_ifname) != 0)
1144 __func__, ntopbuf, pfx->pfx_prefixlen, ifi->ifi_ifname);
1185 struct ifinfo *ifi;
1188 ifi = rai->rai_ifinfo;
1204 sizeof(ntopbuf)), ipr->ipr_plen, ifi->ifi_ifname);
1218 struct ifinfo *ifi;
1222 ifi = rai->rai_ifinfo;
1227 sizeof(ntopbuf)), pfx->pfx_prefixlen, ifi->ifi_ifname);
1240 struct ifinfo *ifi;
1244 ifi = rai->rai_ifinfo;
1255 pfx->pfx_prefixlen, ifi->ifi_ifname, (long)prefix_timo);
1282 struct ifinfo *ifi;
1286 ifi = rai->rai_ifinfo;
1296 sizeof(ntopbuf)), pfx->pfx_prefixlen, ifi->ifi_ifname);
1392 struct ifinfo *ifi;
1394 ifi = rai->rai_ifinfo;
1398 if ((lladdroptlen = lladdropt_length(&ifi->ifi_sdl)) == 0) {
1402 __func__, ifi->ifi_ifname);
1480 lladdropt_fill(&ifi->ifi_sdl, (struct nd_opt_hdr *)buf);