Lines Matching refs:ifa

1225 sctp_asconf_queue_mgmt(struct sctp_tcb *stcb, struct sctp_ifa *ifa,
1233 if (sctp_asconf_addr_match(aa, &ifa->address.sa) == 0)
1250 /* remove the ifa from the restricted list */
1251 sctp_del_local_addr_restricted(stcb, ifa);
1261 /* remove the aa->ifa from the restricted list */
1262 sctp_del_local_addr_restricted(stcb, aa->ifa);
1282 aa->ifa = ifa;
1283 atomic_add_int(&ifa->refcount, 1);
1285 switch (ifa->address.sa.sa_family) {
1291 sin6 = &ifa->address.sin6;
1306 sin = &ifa->address.sin;
1319 sctp_free_ifa(ifa);
1329 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
1332 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
1335 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
1345 * add an asconf operation for the given ifa and type.
1351 sctp_asconf_queue_add(struct sctp_tcb *stcb, struct sctp_ifa *ifa,
1376 stcb->asoc.asconf_addr_del_pending = ifa;
1377 atomic_add_int(&ifa->refcount, 1);
1385 status = sctp_asconf_queue_mgmt(stcb, ifa, type);
1432 (void)sctp_asconf_queue_mgmt(stcb, ifa, SCTP_SET_PRIM_ADDR);
1451 struct sctp_ifa *ifa;
1476 sctp_del_local_addr_restricted(stcb, aa->ifa);
1483 /* find any existing ifa-- NOTE ifa CAN be allowed to be NULL */
1484 ifa = sctp_find_ifa_by_addr(sa, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED);
1499 aa->ifa = ifa;
1500 if (ifa)
1501 atomic_add_int(&ifa->refcount, 1);
1536 if (ifa)
1537 sctp_free_ifa(ifa);
1636 sctp_asconf_addr_mgmt_ack(stcb, aparam->ifa, flag);
1655 if (aparam->ifa)
1656 sctp_free_ifa(aparam->ifa);
1900 struct sctp_ifa *ifa, uint16_t type, int addr_locked)
1915 switch (ifa->address.sa.sa_family) {
1919 &ifa->address.sin6.sin6_addr) != 0) {
1927 &ifa->address.sin.sin_addr) != 0) {
1937 if (ifa->address.sa.sa_family == AF_INET6) {
1942 if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) {
1948 sctp_add_local_addr_restricted(stcb, ifa);
1954 switch (ifa->address.sa.sa_family) {
1960 sin6 = &ifa->address.sin6;
1970 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) {
1993 sin = &ifa->address.sin;
2015 status = sctp_asconf_queue_add(stcb, ifa, type);
2041 struct sctp_ifa *ifa;
2047 ifa = l->ifa;
2048 switch (ifa->address.sa.sa_family) {
2088 struct sctp_ifa *ifa;
2095 ifa = l->ifa;
2099 if (laddr->ifa == ifa) {
2108 if (laddr->ifa == ifa) {
2109 sctp_del_local_addr_ep(inp, ifa);
2122 struct sctp_ifa *ifa;
2130 ifa = l->ifa;
2134 if (ifa->vrf_id != stcb->asoc.vrf_id) {
2139 switch (ifa->address.sa.sa_family) {
2153 sin6 = &ifa->address.sin6;
2167 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) {
2187 sin = &ifa->address.sin;
2223 sctp_add_local_addr_restricted(stcb, ifa);
2231 if (net->ro._s_addr == ifa) {
2253 /* must validate the ifa is in the ep */
2254 if (sctp_is_addr_in_ep(stcb->sctp_ep, ifa) == 0) {
2259 if (sctp_is_address_in_scope(ifa, &stcb->asoc.scope, 0) == 0) {
2268 status = sctp_asconf_queue_add(stcb, ifa, type);
2294 struct sctp_ifa *ifa;
2299 ifa = l->ifa;
2302 ifa->localifa_flags &= ~SCTP_ADDR_DEFER_USE;
2304 sctp_free_ifa(ifa);
2319 struct sctp_ifa *ifa;
2321 /* find the ifa for the desired set primary */
2323 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
2324 if (ifa == NULL) {
2330 if (!sctp_asconf_queue_add(stcb, ifa, SCTP_SET_PRIM_ADDR)) {
2562 if (laddr->ifa == NULL) {
2566 if (sctp_is_addr_restricted(stcb, laddr->ifa) &&
2567 (!sctp_is_addr_pending(stcb, laddr->ifa)))
2571 return (&laddr->ifa->address.sa);
3042 if (laddr->ifa == NULL) {
3044 "check_addr_list_ep: laddr->ifa is NULL");
3048 if (sctp_cmpaddr(&laddr->ifa->address.sa, init_addr)) {
3052 if (!sctp_addr_in_initack(m, offset, length, &laddr->ifa->address.sa)) {
3054 sctp_addr_mgmt_assoc(stcb->sctp_ep, stcb, laddr->ifa,
3146 } /* end foreach ifa */
3191 struct sctp_ifa *ifa;
3199 ifa = sctp_ifap;
3202 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
3205 ifa = sctp_find_ifa_in_ep(inp, sa, SCTP_ADDR_NOT_LOCKED);
3207 ifa = NULL;
3209 if (ifa != NULL) {
3211 sctp_add_local_addr_ep(inp, ifa, type);
3220 if (ifa == laddr->ifa) {
3233 if (laddr->ifa == ifa) {
3234 sctp_del_local_addr_ep(inp, ifa);
3259 wi->ifa = ifa;
3261 atomic_add_int(&ifa->refcount, 1);
3322 aa->ifa = NULL;
3464 if (laddr->ifa == NULL) {
3467 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED)
3480 sctp_ifap = laddr->ifa;