Lines Matching defs:ifa

1214 sctp_asconf_queue_mgmt(struct sctp_tcb *stcb, struct sctp_ifa *ifa,
1222 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);
1333 * add an asconf operation for the given ifa and type.
1339 sctp_asconf_queue_add(struct sctp_tcb *stcb, struct sctp_ifa *ifa,
1358 stcb->asoc.asconf_addr_del_pending = ifa;
1359 atomic_add_int(&ifa->refcount, 1);
1366 status = sctp_asconf_queue_mgmt(stcb, ifa, type);
1411 (void)sctp_asconf_queue_mgmt(stcb, ifa, SCTP_SET_PRIM_ADDR);
1430 struct sctp_ifa *ifa;
1456 sctp_del_local_addr_restricted(stcb, aa->ifa);
1463 /* find any existing ifa-- NOTE ifa CAN be allowed to be NULL */
1469 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
1484 aa->ifa = ifa;
1485 if (ifa)
1486 atomic_add_int(&ifa->refcount, 1);
1521 if (ifa)
1522 sctp_free_ifa(ifa);
1621 sctp_asconf_addr_mgmt_ack(stcb, aparam->ifa, flag);
1640 if (aparam->ifa)
1641 sctp_free_ifa(aparam->ifa);
1879 struct sctp_ifa *ifa, uint16_t type, int addr_locked)
1894 switch (ifa->address.sa.sa_family) {
1899 &ifa->address.sin6.sin6_addr) != 0) {
1909 &ifa->address.sin.sin_addr) != 0) {
1920 if (ifa->address.sa.sa_family == AF_INET6) {
1925 if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) {
1931 sctp_add_local_addr_restricted(stcb, ifa);
1937 switch (ifa->address.sa.sa_family) {
1943 sin6 = &ifa->address.sin6;
1953 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) {
1976 sin = &ifa->address.sin;
1998 status = sctp_asconf_queue_add(stcb, ifa, type);
2023 struct sctp_ifa *ifa;
2029 ifa = l->ifa;
2030 switch (ifa->address.sa.sa_family) {
2069 struct sctp_ifa *ifa;
2076 ifa = l->ifa;
2080 if (laddr->ifa == ifa) {
2089 if (laddr->ifa == ifa) {
2090 sctp_del_local_addr_ep(inp, ifa);
2103 struct sctp_ifa *ifa;
2111 ifa = l->ifa;
2115 if (ifa->vrf_id != stcb->asoc.vrf_id) {
2120 switch (ifa->address.sa.sa_family) {
2134 sin6 = &ifa->address.sin6;
2150 if (sctp_is_scopeid_in_nets(stcb, &ifa->address.sa) == 0) {
2170 sin = &ifa->address.sin;
2208 sctp_add_local_addr_restricted(stcb, ifa);
2215 if (net->ro._s_addr == ifa) {
2237 /* must validate the ifa is in the ep */
2238 if (sctp_is_addr_in_ep(stcb->sctp_ep, ifa) == 0) {
2243 if (sctp_is_address_in_scope(ifa, &stcb->asoc.scope, 0) == 0) {
2252 status = sctp_asconf_queue_add(stcb, ifa, type);
2277 struct sctp_ifa *ifa;
2282 ifa = l->ifa;
2285 ifa->localifa_flags &= ~SCTP_ADDR_DEFER_USE;
2287 sctp_free_ifa(ifa);
2302 struct sctp_ifa *ifa;
2304 /* find the ifa for the desired set primary */
2306 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
2307 if (ifa == NULL) {
2313 if (!sctp_asconf_queue_add(stcb, ifa, SCTP_SET_PRIM_ADDR)) {
2338 sctp_set_primary_ip_address(struct sctp_ifa *ifa)
2349 if (!sctp_asconf_queue_add(stcb, ifa,
2354 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &ifa->address.sa);
2568 if (laddr->ifa == NULL) {
2572 if (sctp_is_addr_restricted(stcb, laddr->ifa) &&
2573 (!sctp_is_addr_pending(stcb, laddr->ifa)))
2577 return (&laddr->ifa->address.sa);
3063 if (laddr->ifa == NULL) {
3065 "check_addr_list_ep: laddr->ifa is NULL");
3068 if (laddr->ifa == NULL) {
3069 SCTPDBG(SCTP_DEBUG_ASCONF1, "check_addr_list_ep: laddr->ifa->ifa_addr is NULL");
3073 if (sctp_cmpaddr(&laddr->ifa->address.sa, init_addr)) {
3077 if (!sctp_addr_in_initack(m, offset, length, &laddr->ifa->address.sa)) {
3079 sctp_addr_mgmt_assoc(stcb->sctp_ep, stcb, laddr->ifa,
3175 } /* end foreach ifa */
3220 struct sctp_ifa *ifa;
3230 ifa = sctp_ifap;
3233 ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
3236 ifa = sctp_find_ifa_in_ep(inp, sa, SCTP_ADDR_NOT_LOCKED);
3238 ifa = NULL;
3240 if (ifa != NULL) {
3242 sctp_add_local_addr_ep(inp, ifa, type);
3251 if (ifa == laddr->ifa) {
3264 if (laddr->ifa == ifa) {
3265 sctp_del_local_addr_ep(inp, ifa);
3289 wi->ifa = ifa;
3291 atomic_add_int(&ifa->refcount, 1);
3348 aa->ifa = NULL;
3484 if (laddr->ifa == NULL) {
3487 if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED)
3498 sctp_ifap = laddr->ifa;