Lines Matching defs:ifa

1213 sctp_asconf_queue_mgmt(struct sctp_tcb *stcb, struct sctp_ifa *ifa,
1221 if (sctp_asconf_addr_match(aa, &ifa->address.sa) == 0)
1238 /* remove the ifa from the restricted list */
1239 sctp_del_local_addr_restricted(stcb, ifa);
1249 /* remove the aa->ifa from the restricted list */
1250 sctp_del_local_addr_restricted(stcb, aa->ifa);
1270 aa->ifa = ifa;
1271 atomic_add_int(&ifa->refcount, 1);
1273 switch (ifa->address.sa.sa_family) {
1279 sin6 = &ifa->address.sin6;
1294 sin = &ifa->address.sin;
1307 sctp_free_ifa(ifa);
1317 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
1320 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
1323 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
1332 * add an asconf operation for the given ifa and type.
1338 sctp_asconf_queue_add(struct sctp_tcb *stcb, struct sctp_ifa *ifa,
1363 stcb->asoc.asconf_addr_del_pending = ifa;
1364 atomic_add_int(&ifa->refcount, 1);
1372 status = sctp_asconf_queue_mgmt(stcb, ifa, type);
1419 (void)sctp_asconf_queue_mgmt(stcb, ifa, SCTP_SET_PRIM_ADDR);
1438 struct sctp_ifa *ifa;
1463 sctp_del_local_addr_restricted(stcb, aa->ifa);
1470 /* find any existing ifa-- NOTE ifa CAN be allowed to be NULL */
1471 ifa = sctp_find_ifa_by_addr(sa, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED);
1486 aa->ifa = ifa;
1487 if (ifa)
1488 atomic_add_int(&ifa->refcount, 1);
1523 if (ifa)
1524 sctp_free_ifa(ifa);
1623 sctp_asconf_addr_mgmt_ack(stcb, aparam->ifa, flag);
1642 if (aparam->ifa)
1643 sctp_free_ifa(aparam->ifa);
1886 struct sctp_ifa *ifa, uint16_t type, int addr_locked)
1901 switch (ifa->address.sa.sa_family) {
1905 &ifa->address.sin6.sin6_addr) != 0) {
1913 &ifa->address.sin.sin_addr) != 0) {
1923 if (ifa->address.sa.sa_family == AF_INET6) {
1928 if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) {
1934 sctp_add_local_addr_restricted(stcb, ifa);
1940 switch (ifa->address.sa.sa_family) {
1946 sin6 = &ifa->address.sin6;
1956 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) {
1977 sin = &ifa->address.sin;
1999 status = sctp_asconf_queue_add(stcb, ifa, type);
2024 struct sctp_ifa *ifa;
2030 ifa = l->ifa;
2031 switch (ifa->address.sa.sa_family) {
2068 struct sctp_ifa *ifa;
2075 ifa = l->ifa;
2079 if (laddr->ifa == ifa) {
2087 if (laddr->ifa == ifa) {
2088 sctp_del_local_addr_ep(inp, ifa);
2101 struct sctp_ifa *ifa;
2109 ifa = l->ifa;
2113 if (ifa->vrf_id != stcb->asoc.vrf_id) {
2118 switch (ifa->address.sa.sa_family) {
2132 sin6 = &ifa->address.sin6;
2146 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) {
2164 sin = &ifa->address.sin;
2199 sctp_add_local_addr_restricted(stcb, ifa);
2205 if (net->ro._s_addr == ifa) {
2222 /* must validate the ifa is in the ep */
2223 if (sctp_is_addr_in_ep(stcb->sctp_ep, ifa) == 0) {
2228 if (sctp_is_address_in_scope(ifa, &stcb->asoc.scope, 0) == 0) {
2237 status = sctp_asconf_queue_add(stcb, ifa, type);
2263 struct sctp_ifa *ifa;
2268 ifa = l->ifa;
2271 ifa->localifa_flags &= ~SCTP_ADDR_DEFER_USE;
2273 sctp_free_ifa(ifa);
2288 struct sctp_ifa *ifa;
2290 /* find the ifa for the desired set primary */
2292 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
2293 if (ifa == NULL) {
2299 if (!sctp_asconf_queue_add(stcb, ifa, SCTP_SET_PRIM_ADDR)) {
2534 if (laddr->ifa == NULL) {
2538 if (sctp_is_addr_restricted(stcb, laddr->ifa) &&
2539 (!sctp_is_addr_pending(stcb, laddr->ifa)))
2543 return (&laddr->ifa->address.sa);
3028 if (laddr->ifa == NULL) {
3030 "check_addr_list_ep: laddr->ifa is NULL");
3034 if (sctp_cmpaddr(&laddr->ifa->address.sa, init_addr)) {
3038 if (!sctp_addr_in_initack(m, offset, length, &laddr->ifa->address.sa)) {
3040 sctp_addr_mgmt_assoc(stcb->sctp_ep, stcb, laddr->ifa,
3132 } /* end foreach ifa */
3177 struct sctp_ifa *ifa;
3186 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
3189 ifa = sctp_find_ifa_in_ep(inp, sa, SCTP_ADDR_NOT_LOCKED);
3191 ifa = NULL;
3193 if (ifa != NULL) {
3195 sctp_add_local_addr_ep(inp, ifa, type);
3204 if (ifa == laddr->ifa) {
3217 if (laddr->ifa == ifa) {
3218 sctp_del_local_addr_ep(inp, ifa);
3243 wi->ifa = ifa;
3245 atomic_add_int(&ifa->refcount, 1);
3318 aa_vtag->ifa = NULL;
3424 if (laddr->ifa == NULL) {
3427 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED)
3440 sctp_ifap = laddr->ifa;