Lines Matching refs:kp

58 	struct kroute_prefix		*kp;		/* back pointer */  member
232 struct kroute_prefix *kp; in kr_change() local
237 kp = kroute_find_prefix(kr->af, &kr->prefix, kr->prefixlen); in kr_change()
238 if (kp == NULL) in kr_change()
241 kprio = kroute_find_prio(kp, kr->priority); in kr_change()
278 struct kroute_prefix *kp; in kr_delete() local
283 kp = kroute_find_prefix(kr->af, &kr->prefix, kr->prefixlen); in kr_delete()
284 if (kp == NULL) in kr_delete()
286 kprio = kroute_find_prio(kp, kr->priority); in kr_delete()
325 struct kroute_prefix *kp; in kr_fib_couple() local
335 RB_FOREACH(kp, kroute_tree, &krt) { in kr_fib_couple()
336 kprio = TAILQ_FIRST(&kp->priorities); in kr_fib_couple()
364 struct kroute_prefix *kp; in kr_fib_decouple() local
373 RB_FOREACH(kp, kroute_tree, &krt) { in kr_fib_decouple()
374 kprio = TAILQ_FIRST(&kp->priorities); in kr_fib_decouple()
407 struct kroute_prefix *kp; in kr_change_egress_label() local
411 RB_FOREACH(kp, kroute_tree, &krt) { in kr_change_egress_label()
412 if (kp->af != af) in kr_change_egress_label()
415 TAILQ_FOREACH(kprio, &kp->priorities, entry) { in kr_change_egress_label()
450 struct kroute_prefix *kp; in kr_show_route() local
464 RB_FOREACH(kp, kroute_tree, &krt) in kr_show_route()
465 TAILQ_FOREACH(kprio, &kp->priorities, entry) in kr_show_route()
573 kr_redistribute(struct kroute_prefix *kp) in kr_redistribute() argument
578 TAILQ_FOREACH_REVERSE(kprio, &kp->priorities, plist, entry) { in kr_redistribute()
579 if (kprio == TAILQ_FIRST(&kp->priorities)) { in kr_redistribute()
626 kroute_find_prio(struct kroute_prefix *kp, uint8_t prio) in kroute_find_prio() argument
632 return (TAILQ_FIRST(&kp->priorities)); in kroute_find_prio()
634 TAILQ_FOREACH(kprio, &kp->priorities, entry) in kroute_find_prio()
647 if (ldp_addrcmp(kprio->kp->af, &kn->r.nexthop, nh) == 0) in kroute_find_gw()
656 struct kroute_prefix *kp; in kroute_insert() local
660 kp = kroute_find_prefix(kr->af, &kr->prefix, kr->prefixlen); in kroute_insert()
661 if (kp == NULL) { in kroute_insert()
662 kp = calloc(1, sizeof((*kp))); in kroute_insert()
663 if (kp == NULL) in kroute_insert()
665 kp->af = kr->af; in kroute_insert()
666 kp->prefix = kr->prefix; in kroute_insert()
667 kp->prefixlen = kr->prefixlen; in kroute_insert()
668 TAILQ_INIT(&kp->priorities); in kroute_insert()
669 RB_INSERT(kroute_tree, &krt, kp); in kroute_insert()
672 kprio = kroute_find_prio(kp, kr->priority); in kroute_insert()
677 kprio->kp = kp; in kroute_insert()
682 TAILQ_FOREACH(tmp, &kp->priorities, entry) in kroute_insert()
688 TAILQ_INSERT_TAIL(&kp->priorities, kprio, entry); in kroute_insert()
701 kr_redistribute(kp); in kroute_insert()
719 struct kroute_prefix *kp; in kroute_remove() local
723 kp = kroute_find_prefix(kr->af, &kr->prefix, kr->prefixlen); in kroute_remove()
724 if (kp == NULL) in kroute_remove()
726 kprio = kroute_find_prio(kp, kr->priority); in kroute_remove()
740 TAILQ_REMOVE(&kp->priorities, kprio, entry); in kroute_remove()
744 if (TAILQ_EMPTY(&kp->priorities)) { in kroute_remove()
745 if (RB_REMOVE(kroute_tree, &krt, kp) == NULL) { in kroute_remove()
747 log_addr(kr->af, &kr->prefix), kp->prefixlen); in kroute_remove()
750 free(kp); in kroute_remove()
752 kr_redistribute(kp); in kroute_remove()
765 struct kroute_prefix *kp; in kroute_clear() local
769 while ((kp = RB_MIN(kroute_tree, &krt)) != NULL) { in kroute_clear()
770 while ((kprio = TAILQ_FIRST(&kp->priorities)) != NULL) { in kroute_clear()
777 TAILQ_REMOVE(&kp->priorities, kprio, entry); in kroute_clear()
780 RB_REMOVE(kroute_tree, &krt, kp); in kroute_clear()
781 free(kp); in kroute_clear()
899 struct kroute_prefix *kp; in kroute_match() local
918 kp = kroute_find_prefix(af, &addr, i); in kroute_match()
919 if (kp == NULL) in kroute_match()
922 kprio = kroute_find_prio(kp, RTP_ANY); in kroute_match()
1643 struct kroute_prefix *kp; in rtmsg_process_route() local
1720 kp = kroute_find_prefix(kr.af, &kr.prefix, kr.prefixlen); in rtmsg_process_route()
1721 if (kp) { in rtmsg_process_route()
1722 kprio = kroute_find_prio(kp, kr.priority); in rtmsg_process_route()
1732 kp = kroute_find_prefix(kr.af, &kr.prefix, kr.prefixlen); in rtmsg_process_route()
1733 if (kp) { in rtmsg_process_route()
1734 kprio = kroute_find_prio(kp, kr.priority); in rtmsg_process_route()
1754 kr_redistribute(kp); in rtmsg_process_route()