Lines Matching refs:ipsapp
2545 ipsap_t ipsapp; in sadb_delget_sa() local
2558 error = get_ipsa_pair(&sq, &ipsapp, diagnostic); in sadb_delget_sa()
2563 echo_target = ipsapp.ipsap_sa_ptr; in sadb_delget_sa()
2565 echo_target = ipsapp.ipsap_psa_ptr; in sadb_delget_sa()
2574 if (ipsapp.in_inbound_table) { in sadb_delget_sa()
2575 mutex_enter(&ipsapp.ipsap_pbucket->isaf_lock); in sadb_delget_sa()
2576 mutex_enter(&ipsapp.ipsap_bucket->isaf_lock); in sadb_delget_sa()
2578 mutex_enter(&ipsapp.ipsap_bucket->isaf_lock); in sadb_delget_sa()
2579 mutex_enter(&ipsapp.ipsap_pbucket->isaf_lock); in sadb_delget_sa()
2582 if (ipsapp.ipsap_sa_ptr != NULL) { in sadb_delget_sa()
2583 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock); in sadb_delget_sa()
2584 if (ipsapp.ipsap_sa_ptr->ipsa_flags & IPSA_F_INBOUND) { in sadb_delget_sa()
2585 sadb_delete_cluster(ipsapp.ipsap_sa_ptr); in sadb_delget_sa()
2587 ipsapp.ipsap_sa_ptr->ipsa_state = IPSA_STATE_DEAD; in sadb_delget_sa()
2588 (void) sadb_torch_assoc(ipsapp.ipsap_bucket, in sadb_delget_sa()
2589 ipsapp.ipsap_sa_ptr); in sadb_delget_sa()
2596 if (ipsapp.ipsap_psa_ptr != NULL) { in sadb_delget_sa()
2597 mutex_enter(&ipsapp.ipsap_psa_ptr->ipsa_lock); in sadb_delget_sa()
2599 ipsapp.ipsap_psa_ptr->ipsa_haspeer) { in sadb_delget_sa()
2600 if (ipsapp.ipsap_psa_ptr->ipsa_flags & in sadb_delget_sa()
2603 (ipsapp.ipsap_psa_ptr); in sadb_delget_sa()
2605 ipsapp.ipsap_psa_ptr->ipsa_state = in sadb_delget_sa()
2607 (void) sadb_torch_assoc(ipsapp.ipsap_pbucket, in sadb_delget_sa()
2608 ipsapp.ipsap_psa_ptr); in sadb_delget_sa()
2615 ipsapp.ipsap_psa_ptr->ipsa_otherspi = 0; in sadb_delget_sa()
2616 ipsapp.ipsap_psa_ptr->ipsa_flags &= in sadb_delget_sa()
2618 mutex_exit(&ipsapp.ipsap_psa_ptr->ipsa_lock); in sadb_delget_sa()
2624 mutex_exit(&ipsapp.ipsap_bucket->isaf_lock); in sadb_delget_sa()
2625 mutex_exit(&ipsapp.ipsap_pbucket->isaf_lock); in sadb_delget_sa()
2634 destroy_ipsa_pair(&ipsapp); in sadb_delget_sa()
2666 get_ipsa_pair(ipsa_query_t *sq, ipsap_t *ipsapp, int *diagnostic) in get_ipsa_pair() argument
2672 init_ipsa_pair(ipsapp); in get_ipsa_pair()
2674 ipsapp->in_inbound_table = B_FALSE; in get_ipsa_pair()
2681 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->inbound, in get_ipsa_pair()
2683 if (ipsapp->ipsap_sa_ptr != NULL) { in get_ipsa_pair()
2684 ipsapp->ipsap_bucket = sq->inbound; in get_ipsa_pair()
2685 ipsapp->ipsap_pbucket = sq->outbound; in get_ipsa_pair()
2686 ipsapp->in_inbound_table = B_TRUE; in get_ipsa_pair()
2688 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->outbound, in get_ipsa_pair()
2691 ipsapp->ipsap_bucket = sq->outbound; in get_ipsa_pair()
2692 ipsapp->ipsap_pbucket = sq->inbound; in get_ipsa_pair()
2696 ipsapp->ipsap_sa_ptr = in get_ipsa_pair()
2699 if (ipsapp->ipsap_sa_ptr != NULL) { in get_ipsa_pair()
2700 ipsapp->ipsap_bucket = sq->outbound; in get_ipsa_pair()
2701 ipsapp->ipsap_pbucket = sq->inbound; in get_ipsa_pair()
2703 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->inbound, in get_ipsa_pair()
2706 ipsapp->ipsap_bucket = sq->inbound; in get_ipsa_pair()
2707 ipsapp->ipsap_pbucket = sq->outbound; in get_ipsa_pair()
2708 if (ipsapp->ipsap_sa_ptr != NULL) in get_ipsa_pair()
2709 ipsapp->in_inbound_table = B_TRUE; in get_ipsa_pair()
2713 if (ipsapp->ipsap_sa_ptr == NULL) { in get_ipsa_pair()
2720 if ((ipsapp->ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) && in get_ipsa_pair()
2721 ipsapp->in_inbound_table) { in get_ipsa_pair()
2727 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock); in get_ipsa_pair()
2728 if (ipsapp->ipsap_sa_ptr->ipsa_haspeer) { in get_ipsa_pair()
2733 ipsapp->ipsap_psa_ptr = in get_ipsa_pair()
2734 ipsec_getassocbyspi(ipsapp->ipsap_pbucket, in get_ipsa_pair()
2736 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock); in get_ipsa_pair()
2741 pair_spi = ipsapp->ipsap_sa_ptr->ipsa_otherspi; in get_ipsa_pair()
2743 ipsapp->ipsap_sa_ptr->ipsa_srcaddr, sq->af); in get_ipsa_pair()
2745 ipsapp->ipsap_sa_ptr->ipsa_dstaddr, sq->af); in get_ipsa_pair()
2746 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock); in get_ipsa_pair()
2751 ASSERT(ipsapp->ipsap_bucket != NULL); in get_ipsa_pair()
2752 ASSERT(ipsapp->ipsap_pbucket != NULL); in get_ipsa_pair()
2758 if (ipsapp->in_inbound_table) { in get_ipsa_pair()
2761 ipsapp->ipsap_pbucket = OUTBOUND_BUCKET_V6(sq->sp, in get_ipsa_pair()
2764 ipsapp->ipsap_pbucket = OUTBOUND_BUCKET_V4(sq->sp, in get_ipsa_pair()
2768 ipsapp->ipsap_pbucket = INBOUND_BUCKET(sq->sp, pair_spi); in get_ipsa_pair()
2770 mutex_enter(&ipsapp->ipsap_pbucket->isaf_lock); in get_ipsa_pair()
2771 ipsapp->ipsap_psa_ptr = ipsec_getassocbyspi(ipsapp->ipsap_pbucket, in get_ipsa_pair()
2773 mutex_exit(&ipsapp->ipsap_pbucket->isaf_lock); in get_ipsa_pair()
2774 ASSERT(ipsapp->ipsap_bucket != NULL); in get_ipsa_pair()
2775 ASSERT(ipsapp->ipsap_pbucket != NULL); in get_ipsa_pair()
2896 ipsap_t ipsapp; local
2940 init_ipsa_pair(&ipsapp);
3642 error = get_ipsa_pair(&sq, &ipsapp, diagnostic);
3647 if (ipsapp.ipsap_psa_ptr != NULL) {
3652 error = update_pairing(&ipsapp, &sq, ksi, diagnostic);
3683 destroy_ipsa_pair(&ipsapp);
4498 ipsap_t ipsapp; local
4510 error = get_ipsa_pair(&sq, &ipsapp, diagnostic);
4514 if (ipsapp.ipsap_psa_ptr == NULL && ipsapp.ipsap_sa_ptr != NULL) {
4515 if (ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) {
4520 destroy_ipsa_pair(&ipsapp);
4541 if (ipsapp.ipsap_sa_ptr != NULL &&
4542 ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_IDLE) {
4543 if ((error = sadb_update_state(ipsapp.ipsap_sa_ptr,
4549 if (ipsapp.ipsap_psa_ptr != NULL &&
4550 ipsapp.ipsap_psa_ptr->ipsa_state == IPSA_STATE_IDLE) {
4551 if ((error = sadb_update_state(ipsapp.ipsap_psa_ptr,
4559 if (ipsapp.ipsap_sa_ptr != NULL) {
4560 error = sadb_update_state(ipsapp.ipsap_sa_ptr,
4562 (ipsapp.ipsap_sa_ptr->ipsa_flags &
4569 if (ipsapp.ipsap_psa_ptr != NULL) {
4570 error = sadb_update_state(ipsapp.ipsap_psa_ptr,
4572 (ipsapp.ipsap_psa_ptr->ipsa_flags &
4616 error = sadb_check_kmc(&sq, ipsapp.ipsap_sa_ptr, diagnostic);
4620 error = sadb_check_kmc(&sq, ipsapp.ipsap_psa_ptr, diagnostic);
4625 if (ipsapp.ipsap_sa_ptr != NULL) {
4631 ((ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) ||
4632 (ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_MATURE))) {
4640 if (ipsapp.ipsap_sa_ptr != NULL) {
4641 sadb_update_lifetimes(ipsapp.ipsap_sa_ptr, hard, soft,
4643 sadb_update_kmc(&sq, ipsapp.ipsap_sa_ptr);
4645 (ipsapp.ipsap_sa_ptr->ipsa_replay_wsize != 0)) {
4651 if (!sadb_replay_check(ipsapp.ipsap_sa_ptr,
4658 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4659 ipsapp.ipsap_sa_ptr->ipsa_idleexpiretime =
4661 ipsapp.ipsap_sa_ptr->ipsa_idletime;
4662 mutex_exit(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4664 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4665 ipsapp.ipsap_sa_ptr->ipsa_replay =
4667 ipsapp.ipsap_sa_ptr->ipsa_idleexpiretime =
4669 ipsapp.ipsap_sa_ptr->ipsa_idletime;
4670 mutex_exit(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4676 if (ipsapp.ipsap_psa_ptr != NULL) {
4677 sadb_update_lifetimes(ipsapp.ipsap_psa_ptr, hard, soft,
4679 sadb_update_kmc(&sq, ipsapp.ipsap_psa_ptr);
4688 error = update_pairing(&ipsapp, &sq, ksi, diagnostic);
4695 destroy_ipsa_pair(&ipsapp);
4702 update_pairing(ipsap_t *ipsapp, ipsa_query_t *sq, keysock_in_t *ksi, argument
4726 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock);
4727 ipsapp->ipsap_sa_ptr->ipsa_flags |= IPSA_F_PAIRED;
4728 ipsapp->ipsap_sa_ptr->ipsa_otherspi = pair_ext->sadb_x_pair_spi;
4729 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock);
4773 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock);
4774 ipsapp->ipsap_sa_ptr->ipsa_flags &= ~IPSA_F_PAIRED;
4775 ipsapp->ipsap_sa_ptr->ipsa_otherspi = 0;
4776 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock);
7554 destroy_ipsa_pair(ipsap_t *ipsapp) argument
7560 if (ipsapp->ipsap_sa_ptr != NULL) {
7561 IPSA_REFRELE(ipsapp->ipsap_sa_ptr);
7563 if (ipsapp->ipsap_psa_ptr != NULL) {
7564 IPSA_REFRELE(ipsapp->ipsap_psa_ptr);
7566 init_ipsa_pair(ipsapp);
7570 init_ipsa_pair(ipsap_t *ipsapp) argument
7572 ipsapp->ipsap_bucket = NULL;
7573 ipsapp->ipsap_sa_ptr = NULL;
7574 ipsapp->ipsap_pbucket = NULL;
7575 ipsapp->ipsap_psa_ptr = NULL;