Lines Matching refs:ifa

1213 sctp_asconf_queue_mgmt(struct sctp_tcb *stcb, struct sctp_ifa *ifa,  in sctp_asconf_queue_mgmt()  argument
1221 if (sctp_asconf_addr_match(aa, &ifa->address.sa) == 0) in sctp_asconf_queue_mgmt()
1239 sctp_del_local_addr_restricted(stcb, ifa); in sctp_asconf_queue_mgmt()
1250 sctp_del_local_addr_restricted(stcb, aa->ifa); in sctp_asconf_queue_mgmt()
1270 aa->ifa = ifa; in sctp_asconf_queue_mgmt()
1271 atomic_add_int(&ifa->refcount, 1); in sctp_asconf_queue_mgmt()
1273 switch (ifa->address.sa.sa_family) { in sctp_asconf_queue_mgmt()
1279 sin6 = &ifa->address.sin6; in sctp_asconf_queue_mgmt()
1294 sin = &ifa->address.sin; in sctp_asconf_queue_mgmt()
1307 sctp_free_ifa(ifa); in sctp_asconf_queue_mgmt()
1317 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa); in sctp_asconf_queue_mgmt()
1320 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa); in sctp_asconf_queue_mgmt()
1323 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa); in sctp_asconf_queue_mgmt()
1338 sctp_asconf_queue_add(struct sctp_tcb *stcb, struct sctp_ifa *ifa, in sctp_asconf_queue_add() argument
1363 stcb->asoc.asconf_addr_del_pending = ifa; in sctp_asconf_queue_add()
1364 atomic_add_int(&ifa->refcount, 1); in sctp_asconf_queue_add()
1372 status = sctp_asconf_queue_mgmt(stcb, ifa, type); in sctp_asconf_queue_add()
1419 (void)sctp_asconf_queue_mgmt(stcb, ifa, SCTP_SET_PRIM_ADDR); in sctp_asconf_queue_add()
1438 struct sctp_ifa *ifa; in sctp_asconf_queue_sa_delete() local
1463 sctp_del_local_addr_restricted(stcb, aa->ifa); in sctp_asconf_queue_sa_delete()
1471 ifa = sctp_find_ifa_by_addr(sa, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED); in sctp_asconf_queue_sa_delete()
1486 aa->ifa = ifa; in sctp_asconf_queue_sa_delete()
1487 if (ifa) in sctp_asconf_queue_sa_delete()
1488 atomic_add_int(&ifa->refcount, 1); in sctp_asconf_queue_sa_delete()
1523 if (ifa) in sctp_asconf_queue_sa_delete()
1524 sctp_free_ifa(ifa); in sctp_asconf_queue_sa_delete()
1623 sctp_asconf_addr_mgmt_ack(stcb, aparam->ifa, flag); in sctp_asconf_process_param_ack()
1642 if (aparam->ifa) in sctp_asconf_process_param_ack()
1643 sctp_free_ifa(aparam->ifa); in sctp_asconf_process_param_ack()
1886 struct sctp_ifa *ifa, uint16_t type, int addr_locked) in sctp_addr_mgmt_assoc() argument
1901 switch (ifa->address.sa.sa_family) { in sctp_addr_mgmt_assoc()
1905 &ifa->address.sin6.sin6_addr) != 0) { in sctp_addr_mgmt_assoc()
1913 &ifa->address.sin.sin_addr) != 0) { in sctp_addr_mgmt_assoc()
1923 if (ifa->address.sa.sa_family == AF_INET6) { in sctp_addr_mgmt_assoc()
1928 if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) { in sctp_addr_mgmt_assoc()
1934 sctp_add_local_addr_restricted(stcb, ifa); in sctp_addr_mgmt_assoc()
1940 switch (ifa->address.sa.sa_family) { in sctp_addr_mgmt_assoc()
1946 sin6 = &ifa->address.sin6; in sctp_addr_mgmt_assoc()
1956 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) { in sctp_addr_mgmt_assoc()
1977 sin = &ifa->address.sin; in sctp_addr_mgmt_assoc()
1999 status = sctp_asconf_queue_add(stcb, ifa, type); in sctp_addr_mgmt_assoc()
2024 struct sctp_ifa *ifa; in sctp_asconf_iterator_ep() local
2030 ifa = l->ifa; in sctp_asconf_iterator_ep()
2031 switch (ifa->address.sa.sa_family) { in sctp_asconf_iterator_ep()
2068 struct sctp_ifa *ifa; in sctp_asconf_iterator_ep_end() local
2075 ifa = l->ifa; in sctp_asconf_iterator_ep_end()
2079 if (laddr->ifa == ifa) { in sctp_asconf_iterator_ep_end()
2087 if (laddr->ifa == ifa) { in sctp_asconf_iterator_ep_end()
2088 sctp_del_local_addr_ep(inp, ifa); in sctp_asconf_iterator_ep_end()
2101 struct sctp_ifa *ifa; in sctp_asconf_iterator_stcb() local
2109 ifa = l->ifa; in sctp_asconf_iterator_stcb()
2113 if (ifa->vrf_id != stcb->asoc.vrf_id) { in sctp_asconf_iterator_stcb()
2118 switch (ifa->address.sa.sa_family) { in sctp_asconf_iterator_stcb()
2132 sin6 = &ifa->address.sin6; in sctp_asconf_iterator_stcb()
2146 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) { in sctp_asconf_iterator_stcb()
2164 sin = &ifa->address.sin; in sctp_asconf_iterator_stcb()
2199 sctp_add_local_addr_restricted(stcb, ifa); in sctp_asconf_iterator_stcb()
2205 if (net->ro._s_addr == ifa) { in sctp_asconf_iterator_stcb()
2223 if (sctp_is_addr_in_ep(stcb->sctp_ep, ifa) == 0) { in sctp_asconf_iterator_stcb()
2228 if (sctp_is_address_in_scope(ifa, &stcb->asoc.scope, 0) == 0) { in sctp_asconf_iterator_stcb()
2237 status = sctp_asconf_queue_add(stcb, ifa, type); in sctp_asconf_iterator_stcb()
2263 struct sctp_ifa *ifa; in sctp_asconf_iterator_end() local
2268 ifa = l->ifa; in sctp_asconf_iterator_end()
2271 ifa->localifa_flags &= ~SCTP_ADDR_DEFER_USE; in sctp_asconf_iterator_end()
2273 sctp_free_ifa(ifa); in sctp_asconf_iterator_end()
2288 struct sctp_ifa *ifa; in sctp_set_primary_ip_address_sa() local
2292 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED); in sctp_set_primary_ip_address_sa()
2293 if (ifa == NULL) { in sctp_set_primary_ip_address_sa()
2299 if (!sctp_asconf_queue_add(stcb, ifa, SCTP_SET_PRIM_ADDR)) { in sctp_set_primary_ip_address_sa()
2534 if (laddr->ifa == NULL) { in sctp_find_valid_localaddr_ep()
2538 if (sctp_is_addr_restricted(stcb, laddr->ifa) && in sctp_find_valid_localaddr_ep()
2539 (!sctp_is_addr_pending(stcb, laddr->ifa))) in sctp_find_valid_localaddr_ep()
2543 return (&laddr->ifa->address.sa); in sctp_find_valid_localaddr_ep()
3028 if (laddr->ifa == NULL) { in sctp_check_address_list_ep()
3034 if (sctp_cmpaddr(&laddr->ifa->address.sa, init_addr)) { in sctp_check_address_list_ep()
3038 if (!sctp_addr_in_initack(m, offset, length, &laddr->ifa->address.sa)) { in sctp_check_address_list_ep()
3040 sctp_addr_mgmt_assoc(stcb->sctp_ep, stcb, laddr->ifa, in sctp_check_address_list_ep()
3177 struct sctp_ifa *ifa; in sctp_addr_mgmt_ep_sa() local
3186 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED); in sctp_addr_mgmt_ep_sa()
3189 ifa = sctp_find_ifa_in_ep(inp, sa, SCTP_ADDR_NOT_LOCKED); in sctp_addr_mgmt_ep_sa()
3191 ifa = NULL; in sctp_addr_mgmt_ep_sa()
3193 if (ifa != NULL) { in sctp_addr_mgmt_ep_sa()
3195 sctp_add_local_addr_ep(inp, ifa, type); in sctp_addr_mgmt_ep_sa()
3204 if (ifa == laddr->ifa) { in sctp_addr_mgmt_ep_sa()
3217 if (laddr->ifa == ifa) { in sctp_addr_mgmt_ep_sa()
3218 sctp_del_local_addr_ep(inp, ifa); in sctp_addr_mgmt_ep_sa()
3243 wi->ifa = ifa; in sctp_addr_mgmt_ep_sa()
3245 atomic_add_int(&ifa->refcount, 1); in sctp_addr_mgmt_ep_sa()
3318 aa_vtag->ifa = NULL; in sctp_asconf_send_nat_state_update()
3424 if (laddr->ifa == NULL) { in sctp_asconf_send_nat_state_update()
3427 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) in sctp_asconf_send_nat_state_update()
3440 sctp_ifap = laddr->ifa; in sctp_asconf_send_nat_state_update()