Lines Matching refs:kr6

527 	struct kroute6	*kr6;  in kr6_change()  local
537 if ((kr6 = kroute6_find(kt, &kf->prefix, kf->prefixlen, in kr6_change()
542 memcpy(&kr6->nexthop, &kf->nexthop.v6, sizeof(struct in6_addr)); in kr6_change()
543 kr6->nexthop_scope_id = kf->nexthop.scope_id; in kr6_change()
544 rtlabel_unref(kr6->labelid); in kr6_change()
545 kr6->labelid = rtlabel_name2id(kf->label); in kr6_change()
547 kr6->flags |= F_BLACKHOLE; in kr6_change()
549 kr6->flags &= ~F_BLACKHOLE; in kr6_change()
551 kr6->flags |= F_REJECT; in kr6_change()
553 kr6->flags &= ~F_REJECT; in kr6_change()
555 if (kr6->flags & F_NEXTHOP) in kr6_change()
559 kr6->flags |= F_BGPD_INSERTED; in kr6_change()
624 struct kroute6 *kr6; in krVPN6_change() local
650 if ((kr6 = kroute6_find(kt, &kf->prefix, kf->prefixlen, in krVPN6_change()
655 kr6->mplslabel = mplslabel; in krVPN6_change()
656 kr6->flags |= F_MPLS; in krVPN6_change()
657 kr6->ifindex = kf->ifindex; in krVPN6_change()
658 memcpy(&kr6->nexthop, &kf->nexthop.v6, sizeof(struct in6_addr)); in krVPN6_change()
659 kr6->nexthop_scope_id = kf->nexthop.scope_id; in krVPN6_change()
660 rtlabel_unref(kr6->labelid); in krVPN6_change()
661 kr6->labelid = rtlabel_name2id(kf->label); in krVPN6_change()
663 kr6->flags |= F_BLACKHOLE; in krVPN6_change()
665 kr6->flags &= ~F_BLACKHOLE; in krVPN6_change()
667 kr6->flags |= F_REJECT; in krVPN6_change()
669 kr6->flags &= ~F_REJECT; in krVPN6_change()
672 kr6->flags |= F_BGPD_INSERTED; in krVPN6_change()
696 struct kroute6 *kr6, *next6; in kr_flush() local
707 RB_FOREACH_SAFE(kr6, kroute6_tree, &kt->krt6, next6) in kr_flush()
708 if ((kr6->flags & F_BGPD_INSERTED)) { in kr_flush()
709 if (kroute_remove(kt, kr6_tofull(kr6), 1) == -1) in kr_flush()
733 struct kroute6 *kr6; in kr_fib_couple() local
748 RB_FOREACH(kr6, kroute6_tree, &kt->krt6) in kr_fib_couple()
749 if (kr6->flags & F_BGPD) { in kr_fib_couple()
750 if (send_rtmsg(RTM_ADD, kt, kr6_tofull(kr6))) in kr_fib_couple()
751 kr6->flags |= F_BGPD_INSERTED; in kr_fib_couple()
771 struct kroute6 *kr6; in kr_fib_decouple() local
784 RB_FOREACH(kr6, kroute6_tree, &kt->krt6) in kr_fib_decouple()
785 if ((kr6->flags & F_BGPD_INSERTED)) { in kr_fib_decouple()
786 if (send_rtmsg(RTM_DELETE, kt, kr6_tofull(kr6))) in kr_fib_decouple()
787 kr6->flags &= ~F_BGPD_INSERTED; in kr_fib_decouple()
890 struct kroute6 *kr6, *kn6; in kr_show_route() local
929 RB_FOREACH(kr6, kroute6_tree, &kt->krt6) { in kr_show_route()
930 if (req.flags && (kr6->flags & req.flags) == 0) in kr_show_route()
932 kn6 = kr6; in kr_show_route()
964 kr6 = kroute6_match(kt, &addr, 1); in kr_show_route()
965 if (kr6 != NULL) { in kr_show_route()
966 kf = kr6_tofull(kr6); in kr_show_route()
994 kr6 = h->kroute; in kr_show_route()
995 snh.valid = kroute6_validate(kr6); in kr_show_route()
997 snh.kr = *kr6_tofull(kr6); in kr_show_route()
998 ifindex = kr6->ifindex; in kr_show_route()
1358 struct kroute6 *kr6; in kr_reload() local
1385 RB_FOREACH(kr6, kroute6_tree, &kt->krt6) in kr_reload()
1387 kr6_tofull(kr6)); in kr_reload()
1424 kr6_tofull(struct kroute6 *kr6) in kr6_tofull() argument
1431 kf.prefix.v6 = kr6->prefix; in kr6_tofull()
1432 kf.prefix.scope_id = kr6->prefix_scope_id; in kr6_tofull()
1434 kf.nexthop.v6 = kr6->nexthop; in kr6_tofull()
1435 kf.nexthop.scope_id = kr6->nexthop_scope_id; in kr6_tofull()
1436 strlcpy(kf.label, rtlabel_id2name(kr6->labelid), sizeof(kf.label)); in kr6_tofull()
1437 kf.flags = kr6->flags; in kr6_tofull()
1438 kf.ifindex = kr6->ifindex; in kr6_tofull()
1439 kf.prefixlen = kr6->prefixlen; in kr6_tofull()
1440 kf.priority = kr6->priority; in kr6_tofull()
1441 kf.mplslabel = kr6->mplslabel; in kr6_tofull()
1637 struct kroute6 *kr6, *kr6m; in kroute_insert() local
1691 if ((kr6 = calloc(1, sizeof(*kr6))) == NULL) { in kroute_insert()
1695 kr6->flags = kf->flags; in kroute_insert()
1696 kr6->prefix = kf->prefix.v6; in kroute_insert()
1697 kr6->prefix_scope_id = kf->prefix.scope_id; in kroute_insert()
1698 kr6->prefixlen = kf->prefixlen; in kroute_insert()
1700 kr6->nexthop = kf->nexthop.v6; in kroute_insert()
1701 kr6->nexthop_scope_id = kf->nexthop.scope_id; in kroute_insert()
1703 kr6->nexthop = in6addr_any; in kroute_insert()
1706 kr6->flags |= F_MPLS; in kroute_insert()
1707 kr6->mplslabel = htonl(mplslabel); in kroute_insert()
1710 kr6->ifindex = kf->ifindex; in kroute_insert()
1711 kr6->priority = kf->priority; in kroute_insert()
1712 kr6->labelid = rtlabel_name2id(kf->label); in kroute_insert()
1714 if ((kr6m = RB_INSERT(kroute6_tree, &kt->krt6, kr6)) != NULL) { in kroute_insert()
1718 kr6m->next = kr6; in kroute_insert()
1724 kr6->flags |= F_BGPD_INSERTED; in kroute_insert()
2168 struct kroute6 *kr6; in knexthop_true_nexthop() local
2198 kr6 = kn->kroute; in knexthop_true_nexthop()
2199 if (kr6->flags & F_CONNECTED) in knexthop_true_nexthop()
2202 gateway.v6 = kr6->nexthop; in knexthop_true_nexthop()
2203 gateway.scope_id = kr6->nexthop_scope_id; in knexthop_true_nexthop()
2216 struct kroute6 *kr6; in knexthop_validate() local
2243 kr6 = kroute6_match(kt, &kn->nexthop, 0); in knexthop_validate()
2245 if (kr6 != NULL) { in knexthop_validate()
2246 kn->kroute = kr6; in knexthop_validate()
2247 kn->ifindex = kr6->ifindex; in knexthop_validate()
2248 kr6->flags |= F_NEXTHOP; in knexthop_validate()
2251 if (kr6 != oldk) in knexthop_validate()
2289 struct kroute6 *kr6; in knexthop_send_update() local
2316 kr6 = kn->kroute; in knexthop_send_update()
2317 n.valid = kroute6_validate(kr6); in knexthop_send_update()
2318 n.connected = kr6->flags & F_CONNECTED; in knexthop_send_update()
2321 n.gateway.v6 = kr6->nexthop; in knexthop_send_update()
2322 n.gateway.scope_id = kr6->nexthop_scope_id; in knexthop_send_update()
2326 n.net.v6 = kr6->prefix; in knexthop_send_update()
2327 n.net.scope_id = kr6->prefix_scope_id; in knexthop_send_update()
2328 n.netlen = kr6->prefixlen; in knexthop_send_update()
2356 struct kroute6 *kr6; in kroute6_match() local
2361 if ((kr6 = kroute6_find(kt, &masked, i, RTP_ANY)) != NULL) in kroute6_match()
2362 if (matchany || bgpd_oknexthop(kr6_tofull(kr6))) in kroute6_match()
2363 return (kr6); in kroute6_match()
3155 struct kroute6 *kr6; in kr_fib_change() local
3228 if ((kr6 = kroute6_find(kt, &kf->prefix, kf->prefixlen, in kr_fib_change()
3233 (kr6 = kroute6_matchgw(kr6, kf)) == NULL) { in kr_fib_change()
3241 if (memcmp(&kr6->nexthop, in kr_fib_change()
3244 kr6->nexthop_scope_id != in kr_fib_change()
3247 kr6->nexthop = kf->nexthop.v6; in kr_fib_change()
3248 kr6->nexthop_scope_id = in kr_fib_change()
3250 kr6->ifindex = kf->ifindex; in kr_fib_change()
3252 if (memcmp(&kr6->nexthop, in kr_fib_change()
3256 kr6->nexthop = in6addr_any; in kr_fib_change()
3257 kr6->nexthop_scope_id = 0; in kr_fib_change()
3258 kr6->ifindex = kf->ifindex; in kr_fib_change()
3261 if (kr6->flags & F_NEXTHOP) in kr_fib_change()
3265 if (kr6->labelid != new_labelid) { in kr_fib_change()
3266 rtlabel_unref(kr6->labelid); in kr_fib_change()
3267 kr6->labelid = new_labelid; in kr_fib_change()
3271 oflags = kr6->flags; in kr_fib_change()
3274 kr6->flags = flags; in kr_fib_change()
3278 kt, kr6_tofull(kr6)); in kr_fib_change()
3283 kt, kr6_tofull(kr6)); in kr_fib_change()
3287 kt, kr6_tofull(kr6)); in kr_fib_change()
3289 if (kr6->flags & F_NEXTHOP && changed) in kr_fib_change()
3292 kr6->flags &= ~F_BGPD_INSERTED; in kr_fib_change()