Lines Matching refs:retval

100 	ipsa_t *retval, *candidate;  in ipsec_getassocbyconn()  local
135 retval = ipr->ipsr_sa; in ipsec_getassocbyconn()
144 (retval->ipsa_state != IPSA_STATE_DEAD) && in ipsec_getassocbyconn()
145 !(retval->ipsa_flags & IPSA_F_CINVALID)) { in ipsec_getassocbyconn()
146 IPSA_REFHOLD(retval); in ipsec_getassocbyconn()
147 return (retval); in ipsec_getassocbyconn()
192 for (retval = bucket->isaf_ipsa; retval != NULL; in ipsec_getassocbyconn()
193 retval = retval->ipsa_next) { in ipsec_getassocbyconn()
204 mutex_enter(&retval->ipsa_lock); in ipsec_getassocbyconn()
209 if (!IPSA_ARE_ADDR_EQUAL(dst, retval->ipsa_dstaddr, af)) in ipsec_getassocbyconn()
213 if (!IPSA_ARE_ADDR_EQUAL(src, retval->ipsa_srcaddr, af) && in ipsec_getassocbyconn()
214 !IPSA_IS_ADDR_UNSPEC(retval->ipsa_srcaddr, af)) in ipsec_getassocbyconn()
219 if (!(retval->ipsa_flags & IPSA_F_TUNNEL)) in ipsec_getassocbyconn()
223 if (!IPSA_IS_ADDR_UNSPEC(retval->ipsa_innerdst, inaf)) { in ipsec_getassocbyconn()
225 min(indstpfx, retval->ipsa_innerdstpfx), in ipsec_getassocbyconn()
226 (in6_addr_t *)retval->ipsa_innerdst)) in ipsec_getassocbyconn()
231 if (!IPSA_IS_ADDR_UNSPEC(retval->ipsa_innersrc, inaf)) { in ipsec_getassocbyconn()
233 min(insrcpfx, retval->ipsa_innersrcpfx), in ipsec_getassocbyconn()
234 (in6_addr_t *)retval->ipsa_innersrc)) in ipsec_getassocbyconn()
239 if (retval->ipsa_flags & IPSA_F_TUNNEL) in ipsec_getassocbyconn()
265 retval->ipsa_auth_alg) in ipsec_getassocbyconn()
268 retval->ipsa_authkeybits) in ipsec_getassocbyconn()
275 retval->ipsa_encr_alg)) in ipsec_getassocbyconn()
279 retval->ipsa_encrkeybits) in ipsec_getassocbyconn()
284 retval->ipsa_auth_alg) in ipsec_getassocbyconn()
287 retval->ipsa_authkeybits) in ipsec_getassocbyconn()
296 (retval->ipsa_kmp != 0) && in ipsec_getassocbyconn()
297 (ap->ipa_apply.ipp_km_proto != retval->ipsa_kmp)) in ipsec_getassocbyconn()
301 (retval->ipsa_kmc != 0) && in ipsec_getassocbyconn()
302 (ap->ipa_apply.ipp_km_cookie != retval->ipsa_kmc)) in ipsec_getassocbyconn()
314 !ipsec_match_outbound_ids(ipl, retval)) in ipsec_getassocbyconn()
320 if (!ipsec_label_match(tsl, retval->ipsa_tsl)) in ipsec_getassocbyconn()
348 if ((retval->ipsa_flags & IPSA_F_UNIQUE) && in ipsec_getassocbyconn()
349 ((unique_id & retval->ipsa_unique_mask) == in ipsec_getassocbyconn()
350 retval->ipsa_unique_id)) in ipsec_getassocbyconn()
359 if (retval->ipsa_flags & excludeflags) in ipsec_getassocbyconn()
370 candidate = retval; in ipsec_getassocbyconn()
380 !IPSA_IS_ADDR_UNSPEC(retval->ipsa_srcaddr, af)) { in ipsec_getassocbyconn()
382 candidate = retval; in ipsec_getassocbyconn()
388 mutex_exit(&retval->ipsa_lock); in ipsec_getassocbyconn()
390 ASSERT((retval == NULL) || MUTEX_HELD(&retval->ipsa_lock)); in ipsec_getassocbyconn()
392 ASSERT((retval == NULL) || (act != NULL)); in ipsec_getassocbyconn()
396 if (retval == NULL && candidate == NULL) in ipsec_getassocbyconn()
399 if (retval == NULL) { in ipsec_getassocbyconn()
401 retval = candidate; in ipsec_getassocbyconn()
406 ASSERT(MUTEX_HELD(&retval->ipsa_lock)); in ipsec_getassocbyconn()
413 IPSA_REFHOLD(retval); in ipsec_getassocbyconn()
418 old_flags = retval->ipsa_flags; in ipsec_getassocbyconn()
419 retval->ipsa_flags |= IPSA_F_USED; in ipsec_getassocbyconn()
427 ipr->ipsr_sa = retval; in ipsec_getassocbyconn()
429 retval->ipsa_flags &= ~IPSA_F_CINVALID; in ipsec_getassocbyconn()
437 retval->ipsa_src_cid, retval->ipsa_dst_cid); in ipsec_getassocbyconn()
449 if (retval->ipsa_unique_id == 0) { in ipsec_getassocbyconn()
450 ASSERT((retval->ipsa_flags & IPSA_F_UNIQUE) == 0); in ipsec_getassocbyconn()
455 retval->ipsa_flags |= IPSA_F_UNIQUE; in ipsec_getassocbyconn()
456 retval->ipsa_unique_id = unique_id; in ipsec_getassocbyconn()
457 retval->ipsa_unique_mask = SA_UNIQUE_MASK( in ipsec_getassocbyconn()
466 if (IPSA_IS_ADDR_UNSPEC(retval->ipsa_srcaddr, af)) { in ipsec_getassocbyconn()
476 IPSA_REFHOLD(retval); in ipsec_getassocbyconn()
477 IPSA_COPY_ADDR(retval->ipsa_srcaddr, src, af); in ipsec_getassocbyconn()
478 mutex_exit(&retval->ipsa_lock); in ipsec_getassocbyconn()
479 sadb_unlinkassoc(retval); in ipsec_getassocbyconn()
485 if (sadb_insertassoc(retval, bucket) != 0) { in ipsec_getassocbyconn()
491 (void) sadb_insertassoc(retval, bucket); in ipsec_getassocbyconn()
493 return (retval); in ipsec_getassocbyconn()
496 mutex_exit(&retval->ipsa_lock); in ipsec_getassocbyconn()
498 return (retval); in ipsec_getassocbyconn()
513 ipsa_t *retval; in ipsec_getassocbyspi() local
527 for (retval = bucket->isaf_ipsa; retval != NULL; in ipsec_getassocbyspi()
528 retval = retval->ipsa_next) { in ipsec_getassocbyspi()
529 if (retval->ipsa_spi != spi) in ipsec_getassocbyspi()
531 if (!IPSA_ARE_ADDR_EQUAL(dst, retval->ipsa_dstaddr, af)) in ipsec_getassocbyspi()
550 if (IPSA_ARE_ADDR_EQUAL(src, retval->ipsa_srcaddr, af) || in ipsec_getassocbyspi()
551 IPSA_IS_ADDR_UNSPEC(retval->ipsa_srcaddr, af) || in ipsec_getassocbyspi()
556 if (retval != NULL) { in ipsec_getassocbyspi()
561 IPSA_REFHOLD(retval); in ipsec_getassocbyspi()
564 return (retval); in ipsec_getassocbyspi()