Lines Matching defs:nbr

256 	struct rde_nbr		 rn, *nbr;
312 nbr = rde_nbr_find(imsg.hdr.peerid);
313 if (nbr == NULL)
316 nbr->addr.s_addr = addr.s_addr;
323 nbr = rde_nbr_find(imsg.hdr.peerid);
324 if (nbr == NULL)
327 nbr->state = state;
328 if (nbr->state & NBR_STA_FULL)
329 rde_req_list_free(nbr);
334 nbr = rde_nbr_find(imsg.hdr.peerid);
335 if (nbr == NULL)
337 nbr->capa_options = *(u_int8_t *)imsg.data;
353 nbr = rde_nbr_find(imsg.hdr.peerid);
354 if (nbr == NULL)
357 lsa_snap(nbr);
363 nbr = rde_nbr_find(imsg.hdr.peerid);
364 if (nbr == NULL)
375 nbr->area->stub) {
379 v = lsa_find(nbr->iface, lsa_hdr.type,
391 rde_req_list_add(nbr, &lsa_hdr);
410 nbr = rde_nbr_find(imsg.hdr.peerid);
411 if (nbr == NULL)
420 if ((v = lsa_find(nbr->iface,
440 nbr = rde_nbr_find(imsg.hdr.peerid);
441 if (nbr == NULL)
449 if (!lsa_check(nbr, lsa,
455 v = lsa_find(nbr->iface, lsa->hdr.type, lsa->hdr.ls_id,
462 if (nbr->self) {
463 lsa_merge(nbr, lsa, v);
477 rde_req_list_del(nbr, &lsa->hdr);
479 if (!(self = lsa_self(nbr, lsa, v)))
480 if (lsa_add(nbr, lsa))
506 if (rde_req_list_exists(nbr, &lsa->hdr)) {
539 nbr = rde_nbr_find(imsg.hdr.peerid);
540 if (nbr == NULL)
548 if (rde_nbr_loading(nbr->area))
551 v = lsa_find(nbr->iface, lsa_hdr.type, lsa_hdr.ls_id,
562 lsa_del(nbr, &lsa_hdr);
883 struct rde_nbr *nbr;
895 LIST_FOREACH(nbr, &area->nbr_list, entry)
896 if (nbr->state == NBR_STA_FULL && !nbr->self)
957 struct rde_nbr *nbr;
961 LIST_FOREACH(nbr, head, hash) {
962 if (nbr->peerid == peerid)
963 return (nbr);
973 struct rde_nbr *nbr;
989 if ((nbr = calloc(1, sizeof(*nbr))) == NULL)
992 memcpy(nbr, new, sizeof(*nbr));
993 nbr->peerid = peerid;
994 nbr->area = area;
995 nbr->iface = iface;
997 TAILQ_INIT(&nbr->req_list);
1000 LIST_INSERT_HEAD(head, nbr, hash);
1001 LIST_INSERT_HEAD(&area->nbr_list, nbr, entry);
1003 return (nbr);
1010 struct rde_nbr *nbr, *xnbr;
1015 LIST_FOREACH_SAFE(nbr, head, hash, xnbr) {
1016 if (nbr->iface == iface)
1017 rde_nbr_del(nbr);
1023 rde_nbr_del(struct rde_nbr *nbr)
1025 if (nbr == NULL)
1028 rde_req_list_free(nbr);
1030 LIST_REMOVE(nbr, entry);
1031 LIST_REMOVE(nbr, hash);
1033 free(nbr);
1039 struct rde_nbr *nbr;
1048 LIST_FOREACH(nbr, &area->nbr_list, entry) {
1049 if (nbr->self)
1051 if (nbr->state & NBR_STA_XCHNG ||
1052 nbr->state & NBR_STA_LOAD)
1066 struct rde_nbr *nbr;
1068 LIST_FOREACH(nbr, &area->nbr_list, entry)
1069 if (nbr->self)
1070 return (nbr);
1081 rde_req_list_add(struct rde_nbr *nbr, struct lsa_hdr *lsa)
1088 TAILQ_INSERT_TAIL(&nbr->req_list, le, entry);
1095 rde_req_list_exists(struct rde_nbr *nbr, struct lsa_hdr *lsa_hdr)
1099 TAILQ_FOREACH(le, &nbr->req_list, entry) {
1109 rde_req_list_del(struct rde_nbr *nbr, struct lsa_hdr *lsa_hdr)
1113 TAILQ_FOREACH(le, &nbr->req_list, entry) {
1117 TAILQ_REMOVE(&nbr->req_list, le, entry);
1125 rde_req_list_free(struct rde_nbr *nbr)
1129 while ((le = TAILQ_FIRST(&nbr->req_list)) != NULL) {
1130 TAILQ_REMOVE(&nbr->req_list, le, entry);