Lines Matching refs:sctp_ifnp
192 struct sctp_ifn *sctp_ifnp; in sctp_find_ifn() local
198 LIST_FOREACH(sctp_ifnp, hash_ifn_head, next_bucket) { in sctp_find_ifn()
199 if (sctp_ifnp->ifn_index == ifn_index && in sctp_find_ifn()
200 sctp_ifnp->ifn_p == ifn) { in sctp_find_ifn()
204 return (sctp_ifnp); in sctp_find_ifn()
238 sctp_free_ifn(struct sctp_ifn *sctp_ifnp) in sctp_free_ifn() argument
240 if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&sctp_ifnp->refcount)) { in sctp_free_ifn()
242 if (sctp_ifnp->vrf) { in sctp_free_ifn()
243 sctp_free_vrf(sctp_ifnp->vrf); in sctp_free_ifn()
245 SCTP_FREE(sctp_ifnp, SCTP_M_IFN); in sctp_free_ifn()
264 sctp_delete_ifn(struct sctp_ifn *sctp_ifnp) in sctp_delete_ifn() argument
268 if (sctp_find_ifn(sctp_ifnp->ifn_p, sctp_ifnp->ifn_index) == NULL) { in sctp_delete_ifn()
272 LIST_REMOVE(sctp_ifnp, next_bucket); in sctp_delete_ifn()
273 LIST_REMOVE(sctp_ifnp, next_ifn); in sctp_delete_ifn()
275 sctp_free_ifn(sctp_ifnp); in sctp_delete_ifn()
283 sctp_add_ifa_to_ifn(struct sctp_ifn *sctp_ifnp, struct sctp_ifa *sctp_ifap) in sctp_add_ifa_to_ifn() argument
288 LIST_INSERT_HEAD(&sctp_ifnp->ifalist, sctp_ifap, next_ifa); in sctp_add_ifa_to_ifn()
289 sctp_ifap->ifn_p = sctp_ifnp; in sctp_add_ifa_to_ifn()
292 sctp_ifnp->ifa_count++; in sctp_add_ifa_to_ifn()
297 sctp_ifnp->num_v4++; in sctp_add_ifa_to_ifn()
302 sctp_ifnp->num_v6++; in sctp_add_ifa_to_ifn()
308 if (sctp_ifnp->ifa_count == 1) { in sctp_add_ifa_to_ifn()
310 sctp_ifnp->registered_af = ifa_af; in sctp_add_ifa_to_ifn()
368 struct sctp_ifn *sctp_ifnp, *new_sctp_ifnp; in sctp_add_addr_to_vrf() local
396 sctp_ifnp = sctp_find_ifn(ifn, ifn_index); in sctp_add_addr_to_vrf()
397 if (sctp_ifnp) { in sctp_add_addr_to_vrf()
398 vrf = sctp_ifnp->vrf; in sctp_add_addr_to_vrf()
411 if (sctp_ifnp == NULL) { in sctp_add_addr_to_vrf()
416 sctp_ifnp = new_sctp_ifnp; in sctp_add_addr_to_vrf()
418 memset(sctp_ifnp, 0, sizeof(struct sctp_ifn)); in sctp_add_addr_to_vrf()
419 sctp_ifnp->ifn_index = ifn_index; in sctp_add_addr_to_vrf()
420 sctp_ifnp->ifn_p = ifn; in sctp_add_addr_to_vrf()
421 sctp_ifnp->ifn_type = ifn_type; in sctp_add_addr_to_vrf()
422 sctp_ifnp->refcount = 0; in sctp_add_addr_to_vrf()
423 sctp_ifnp->vrf = vrf; in sctp_add_addr_to_vrf()
425 sctp_ifnp->ifn_mtu = SCTP_GATHER_MTU_FROM_IFN_INFO(ifn, ifn_index); in sctp_add_addr_to_vrf()
427 SCTP_SNPRINTF(sctp_ifnp->ifn_name, SCTP_IFNAMSIZ, "%s", if_name); in sctp_add_addr_to_vrf()
429 SCTP_SNPRINTF(sctp_ifnp->ifn_name, SCTP_IFNAMSIZ, "%s", "unknown"); in sctp_add_addr_to_vrf()
432 LIST_INIT(&sctp_ifnp->ifalist); in sctp_add_addr_to_vrf()
433 LIST_INSERT_HEAD(hash_ifn_head, sctp_ifnp, next_bucket); in sctp_add_addr_to_vrf()
434 LIST_INSERT_HEAD(&vrf->ifnlist, sctp_ifnp, next_ifn); in sctp_add_addr_to_vrf()
449 sctp_delete_ifn(sctp_ifnp); in sctp_add_addr_to_vrf()
461 sctp_ifap->ifn_p = sctp_ifnp; in sctp_add_addr_to_vrf()
478 sctp_add_ifa_to_ifn(sctp_ifnp, sctp_ifap); in sctp_add_addr_to_vrf()
490 (void *)sctp_ifnp, (void *)sctp_ifap); in sctp_add_addr_to_vrf()
491 sctp_add_ifa_to_ifn(sctp_ifnp, sctp_ifap); in sctp_add_addr_to_vrf()
500 KASSERT(sctp_ifnp != NULL, in sctp_add_addr_to_vrf()
506 sctp_ifap->ifn_p = sctp_ifnp; in sctp_add_addr_to_vrf()
507 atomic_add_int(&sctp_ifnp->refcount, 1); in sctp_add_addr_to_vrf()
533 sctp_ifnp->num_v4++; in sctp_add_addr_to_vrf()
535 sctp_ifnp->registered_af = AF_INET; in sctp_add_addr_to_vrf()
553 sctp_ifnp->num_v6++; in sctp_add_addr_to_vrf()
555 sctp_ifnp->registered_af = AF_INET6; in sctp_add_addr_to_vrf()
571 LIST_INSERT_HEAD(&sctp_ifnp->ifalist, sctp_ifap, next_ifa); in sctp_add_addr_to_vrf()
572 sctp_ifnp->ifa_count++; in sctp_add_addr_to_vrf()