• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/usr.sbin/rtadvd/

Lines Matching defs:pfx

290 	struct prefix *pfx;
307 while ((pfx = TAILQ_FIRST(&rai->rai_prefix)) != NULL)
308 delete_prefix(pfx);
504 struct prefix *pfx;
512 ELM_MALLOC(pfx, exit(1));
513 pfx->pfx_rainfo = rai;
514 pfx->pfx_origin = PREFIX_FROM_CONFIG;
516 if (inet_pton(AF_INET6, addr, &pfx->pfx_prefix) != 1) {
522 if (IN6_IS_ADDR_MULTICAST(&pfx->pfx_prefix)) {
529 if (IN6_IS_ADDR_LINKLOCAL(&pfx->pfx_prefix))
543 pfx->pfx_prefixlen = (int)val;
556 pfx->pfx_onlinkflg = val & ND_OPT_PI_FLAG_ONLINK;
557 pfx->pfx_autoconfflg = val & ND_OPT_PI_FLAG_AUTO;
565 addr, pfx->pfx_prefixlen, ifi->ifi_ifname);
568 pfx->pfx_validlifetime = (uint32_t)val64;
575 pfx->pfx_vltimeexpire =
576 now.tv_sec + pfx->pfx_validlifetime;
586 addr, pfx->pfx_prefixlen, ifi->ifi_ifname);
589 pfx->pfx_preflifetime = (uint32_t)val64;
596 pfx->pfx_pltimeexpire =
597 now.tv_sec + pfx->pfx_preflifetime;
600 TAILQ_INSERT_TAIL(&rai->rai_prefix, pfx, pfx_next);
604 free(pfx);
1025 struct prefix *pfx;
1068 ELM_MALLOC(pfx, exit(1));
1071 pfx->pfx_prefixlen = plen;
1072 memcpy(&pfx->pfx_prefix, a, sizeof(*a));
1073 p = (char *)&pfx->pfx_prefix;
1074 ep = (char *)(&pfx->pfx_prefix + 1);
1079 if (!inet_ntop(AF_INET6, &pfx->pfx_prefix, ntopbuf,
1086 __func__, ntopbuf, pfx->pfx_prefixlen, ifi->ifi_ifname);
1089 pfx->pfx_validlifetime = DEF_ADVVALIDLIFETIME;
1090 pfx->pfx_preflifetime = DEF_ADVPREFERREDLIFETIME;
1091 pfx->pfx_onlinkflg = 1;
1092 pfx->pfx_autoconfflg = 1;
1093 pfx->pfx_origin = PREFIX_FROM_KERNEL;
1094 pfx->pfx_rainfo = rai;
1097 TAILQ_INSERT_TAIL(&rai->rai_prefix, pfx, pfx_next);
1126 struct prefix *pfx;
1131 ELM_MALLOC(pfx, return);
1132 pfx->pfx_prefix = ipr->ipr_prefix.sin6_addr;
1133 pfx->pfx_prefixlen = ipr->ipr_plen;
1134 pfx->pfx_validlifetime = ipr->ipr_vltime;
1135 pfx->pfx_preflifetime = ipr->ipr_pltime;
1136 pfx->pfx_onlinkflg = ipr->ipr_raf_onlink;
1137 pfx->pfx_autoconfflg = ipr->ipr_raf_auto;
1138 pfx->pfx_origin = PREFIX_FROM_DYNAMIC;
1139 pfx->pfx_rainfo = rai;
1141 TAILQ_INSERT_TAIL(&rai->rai_prefix, pfx, pfx_next);
1157 delete_prefix(struct prefix *pfx)
1163 rai = pfx->pfx_rainfo;
1165 TAILQ_REMOVE(&rai->rai_prefix, pfx, pfx_next);
1168 inet_ntop(AF_INET6, &pfx->pfx_prefix, ntopbuf,
1169 sizeof(ntopbuf)), pfx->pfx_prefixlen, ifi->ifi_ifname);
1170 if (pfx->pfx_timer)
1171 rtadvd_remove_timer(pfx->pfx_timer);
1172 free(pfx);
1178 invalidate_prefix(struct prefix *pfx)
1185 rai = pfx->pfx_rainfo;
1187 if (pfx->pfx_timer) { /* sanity check */
1196 inet_ntop(AF_INET6, &pfx->pfx_prefix, ntopbuf, sizeof(ntopbuf)),
1197 pfx->pfx_prefixlen, ifi->ifi_ifname, (long)prefix_timo);
1200 pfx->pfx_timer = rtadvd_add_timer(prefix_timeout, NULL, pfx, NULL);
1201 if (pfx->pfx_timer == NULL) {
1204 delete_prefix(pfx);
1208 rtadvd_set_timer(&timo, pfx->pfx_timer);
1221 update_prefix(struct prefix *pfx)
1227 rai = pfx->pfx_rainfo;
1229 if (pfx->pfx_timer == NULL) { /* sanity check */
1237 __func__, inet_ntop(AF_INET6, &pfx->pfx_prefix, ntopbuf,
1238 sizeof(ntopbuf)), pfx->pfx_prefixlen, ifi->ifi_ifname);
1241 rtadvd_remove_timer(pfx->pfx_timer);
1242 pfx->pfx_timer = NULL;
1332 struct prefix *pfx;
1428 TAILQ_FOREACH(pfx, &rai->rai_prefix, pfx_next) {
1435 ndopt_pi->nd_opt_pi_prefix_len = pfx->pfx_prefixlen;
1437 if (pfx->pfx_onlinkflg)
1440 if (pfx->pfx_autoconfflg)
1443 if (pfx->pfx_timer)
1446 if (pfx->pfx_vltimeexpire || pfx->pfx_pltimeexpire)
1448 if (pfx->pfx_vltimeexpire == 0)
1449 vltime = pfx->pfx_validlifetime;
1451 vltime = ((time_t)pfx->pfx_vltimeexpire > now.tv_sec) ?
1452 pfx->pfx_vltimeexpire - now.tv_sec : 0;
1454 if (pfx->pfx_timer)
1457 if (pfx->pfx_pltimeexpire == 0)
1458 pltime = pfx->pfx_preflifetime;
1460 pltime = ((time_t)pfx->pfx_pltimeexpire > now.tv_sec) ?
1461 pfx->pfx_pltimeexpire - now.tv_sec : 0;
1473 ndopt_pi->nd_opt_pi_prefix = pfx->pfx_prefix;