Lines Matching defs:kif
69 struct kif k;
89 struct kif *kif_update(u_short, int, struct if_data *,
515 struct kif_node *kif;
517 RB_FOREACH(kif, kif_tree, &kit)
518 if (ifname == NULL || !strcmp(ifname, kif->k.ifname)) {
520 pid, &kif->k, sizeof(kif->k));
848 struct kif *
851 struct kif_node *kif;
854 RB_FOREACH(kif, kif_tree, &kit)
855 if (!strcmp(ifname, kif->k.ifname)) {
856 ka = TAILQ_FIRST(&kif->addrs);
858 TAILQ_FOREACH(ka, &kif->addrs, entry) {
865 return (&kif->k);
874 struct kif_node *kif;
876 if ((kif = calloc(1, sizeof(struct kif_node))) == NULL)
879 kif->k.ifindex = ifindex;
880 TAILQ_INIT(&kif->addrs);
882 if (RB_INSERT(kif_tree, &kit, kif) != NULL)
885 return (kif);
889 kif_remove(struct kif_node *kif)
893 if (RB_REMOVE(kif_tree, &kit, kif) == NULL) {
894 log_warnx("RB_REMOVE(kif_tree, &kit, kif)");
898 while ((ka = TAILQ_FIRST(&kif->addrs)) != NULL) {
899 TAILQ_REMOVE(&kif->addrs, ka, entry);
902 free(kif);
909 struct kif_node *kif;
911 while ((kif = RB_MIN(kif_tree, &kit)) != NULL)
912 kif_remove(kif);
915 struct kif *
919 struct kif_node *kif;
921 if ((kif = kif_find(ifindex)) == NULL) {
922 if ((kif = kif_insert(ifindex)) == NULL)
924 kif->k.nh_reachable = (flags & IFF_UP) &&
928 kif->k.flags = flags;
929 kif->k.link_state = ifd->ifi_link_state;
930 kif->k.if_type = ifd->ifi_type;
931 kif->k.baudrate = ifd->ifi_baudrate;
932 kif->k.mtu = ifd->ifi_mtu;
933 kif->k.rdomain = ifd->ifi_rdomain;
936 if (sdl->sdl_nlen >= sizeof(kif->k.ifname))
937 memcpy(kif->k.ifname, sdl->sdl_data,
938 sizeof(kif->k.ifname) - 1);
940 memcpy(kif->k.ifname, sdl->sdl_data,
945 return (&kif->k);
951 struct kif_node *kif;
953 if ((kif = kif_find(ifindex)) == NULL) {
958 return (kif->k.nh_reachable);
1059 struct kif *kif;
1062 if ((kif = kif_update(ifindex, flags, ifd, sdl)) == NULL) {
1068 main_imsg_compose_ospfe(IMSG_IFINFO, 0, kif, sizeof(struct kif));
1070 reachable = (kif->flags & IFF_UP) &&
1071 LINK_STATE_IS_UP(kif->link_state);
1073 if (reachable == kif->nh_reachable)
1076 kif->nh_reachable = reachable;
1097 struct kif_node *kif;
1103 if ((kif = kif_find(ifindex)) == NULL) {
1119 TAILQ_INSERT_TAIL(&kif->addrs, ka, entry);
1132 struct kif_node *kif;
1138 if ((kif = kif_find(ifindex)) == NULL) {
1143 for (ka = TAILQ_FIRST(&kif->addrs); ka != NULL; ka = nka) {
1147 TAILQ_REMOVE(&kif->addrs, ka, entry);
1162 struct kif_node *kif;
1168 kif = kif_insert(ifan->ifan_index);
1169 strlcpy(kif->k.ifname, ifan->ifan_name, sizeof(kif->k.ifname));
1172 kif = kif_find(ifan->ifan_index);
1173 if (kif != NULL)
1174 kif_remove(kif);