Lines Matching defs:kif

102 struct kif {
103 RB_ENTRY(kif) entry;
135 int kif_compare(struct kif *, struct kif *);
154 struct kif *kif_find(int);
155 int kif_insert(struct kif *);
156 int kif_remove(struct kif *);
198 RB_HEAD(kif_tree, kif) kit;
199 RB_PROTOTYPE(kif_tree, kif, entry, kif_compare)
200 RB_GENERATE(kif_tree, kif, entry, kif_compare)
865 kr_show_interface(struct kif *kif)
871 strlcpy(iface.ifname, kif->ifname, sizeof(iface.ifname));
874 "%s", get_linkstate(kif->if_type, kif->link_state));
876 if ((ifms_type = ift2ifm(kif->if_type)) != 0)
880 iface.baudrate = kif->baudrate;
881 iface.rdomain = kif->rdomain;
882 iface.nh_reachable = kif->nh_reachable;
883 iface.is_up = (kif->flags & IFF_UP) == IFF_UP;
899 struct kif *kif;
1005 if ((kif = kif_find(ifindex)) != NULL)
1007 kr_show_interface(kif),
1015 RB_FOREACH(kif, kif_tree, &kit)
1017 pid, kr_show_interface(kif),
1046 kr_send_dependon(struct kif *kif)
1050 strlcpy(sdon.ifname, kif->ifname, sizeof(sdon.ifname));
1051 sdon.depend_state = kif->depend_state;
1058 struct kif *kif;
1060 RB_FOREACH(kif, kif_tree, &kit)
1061 if (!strcmp(ifname, kif->ifname)) {
1062 kr_send_dependon(kif);
1582 kif_compare(struct kif *a, struct kif *b)
2040 struct kif *
2043 struct kif s;
2052 kif_insert(struct kif *kif)
2054 if (RB_INSERT(kif_tree, &kit, kif) != NULL) {
2055 log_warnx("RB_INSERT(kif_tree, &kit, kif)");
2056 free(kif);
2064 kif_remove(struct kif *kif)
2068 kif->flags &= ~IFF_UP;
2076 if ((kt = ktable_get(kif->rdomain)) != NULL)
2077 knexthop_track(kt, kif->ifindex);
2079 RB_REMOVE(kif_tree, &kit, kif);
2080 free(kif);
2087 struct kif *kif;
2089 while ((kif = RB_MIN(kif_tree, &kit)) != NULL)
2090 kif_remove(kif);
2098 kif_validate(struct kif *kif)
2100 if (!(kif->flags & IFF_UP))
2109 if (kif->link_state == LINK_STATE_DOWN)
2121 kif_depend_state(struct kif *kif)
2123 if (!(kif->flags & IFF_UP))
2126 if (kif->if_type == IFT_CARP &&
2127 kif->link_state == LINK_STATE_UNKNOWN)
2130 return LINK_STATE_IS_UP(kif->link_state);
2136 struct kif *kif;
2141 if ((kif = kif_find(kr->ifindex)) == NULL) {
2150 return (kif->nh_reachable);
2156 struct kif *kif;
2161 if ((kif = kif_find(kr->ifindex)) == NULL) {
2170 return (kif->nh_reachable);
2583 struct kif *kif;
2586 if ((kif = kif_find(ifindex)) == NULL) {
2593 __func__, kif->ifname, ifd->ifi_rdomain,
2599 kif->flags = flags;
2600 kif->link_state = ifd->ifi_link_state;
2601 kif->if_type = ifd->ifi_type;
2602 kif->rdomain = ifd->ifi_rdomain;
2603 kif->baudrate = ifd->ifi_baudrate;
2604 kif->depend_state = kif_depend_state(kif);
2606 kr_send_dependon(kif);
2608 if ((reachable = kif_validate(kif)) == kif->nh_reachable)
2611 kif->nh_reachable = reachable;
2613 kt = ktable_get(kif->rdomain);
2624 struct kif *kif;
2630 if ((kif = calloc(1, sizeof(*kif))) == NULL) {
2635 kif->ifindex = ifan->ifan_index;
2636 strlcpy(kif->ifname, ifan->ifan_name, sizeof(kif->ifname));
2637 kif_insert(kif);
2640 kif = kif_find(ifan->ifan_index);
2641 if (kif != NULL)
2642 kif_remove(kif);
2916 struct kif *kif;
2952 if ((kif = calloc(1, sizeof(*kif))) == NULL) {
2958 kif->ifindex = ifm.ifm_index;
2959 kif->flags = ifm.ifm_flags;
2960 kif->link_state = ifm.ifm_data.ifi_link_state;
2961 kif->if_type = ifm.ifm_data.ifi_type;
2962 kif->rdomain = ifm.ifm_data.ifi_rdomain;
2963 kif->baudrate = ifm.ifm_data.ifi_baudrate;
2964 kif->nh_reachable = kif_validate(kif);
2965 kif->depend_state = kif_depend_state(kif);
2970 if (sdl->sdl_nlen >= sizeof(kif->ifname))
2971 memcpy(kif->ifname, sdl->sdl_data,
2972 sizeof(kif->ifname) - 1);
2974 memcpy(kif->ifname, sdl->sdl_data,
2979 kif_insert(kif);