Lines Matching refs:ipsapp

2561 	ipsap_t ipsapp;  in sadb_delget_sa()  local
2574 error = get_ipsa_pair(&sq, &ipsapp, diagnostic); in sadb_delget_sa()
2579 echo_target = ipsapp.ipsap_sa_ptr; in sadb_delget_sa()
2581 echo_target = ipsapp.ipsap_psa_ptr; in sadb_delget_sa()
2590 if (ipsapp.in_inbound_table) { in sadb_delget_sa()
2591 mutex_enter(&ipsapp.ipsap_pbucket->isaf_lock); in sadb_delget_sa()
2592 mutex_enter(&ipsapp.ipsap_bucket->isaf_lock); in sadb_delget_sa()
2594 mutex_enter(&ipsapp.ipsap_bucket->isaf_lock); in sadb_delget_sa()
2595 mutex_enter(&ipsapp.ipsap_pbucket->isaf_lock); in sadb_delget_sa()
2598 if (ipsapp.ipsap_sa_ptr != NULL) { in sadb_delget_sa()
2599 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock); in sadb_delget_sa()
2600 if (ipsapp.ipsap_sa_ptr->ipsa_flags & IPSA_F_INBOUND) { in sadb_delget_sa()
2601 sadb_delete_cluster(ipsapp.ipsap_sa_ptr); in sadb_delget_sa()
2603 ipsapp.ipsap_sa_ptr->ipsa_state = IPSA_STATE_DEAD; in sadb_delget_sa()
2604 (void) sadb_torch_assoc(ipsapp.ipsap_bucket, in sadb_delget_sa()
2605 ipsapp.ipsap_sa_ptr); in sadb_delget_sa()
2612 if (ipsapp.ipsap_psa_ptr != NULL) { in sadb_delget_sa()
2613 mutex_enter(&ipsapp.ipsap_psa_ptr->ipsa_lock); in sadb_delget_sa()
2615 ipsapp.ipsap_psa_ptr->ipsa_haspeer) { in sadb_delget_sa()
2616 if (ipsapp.ipsap_psa_ptr->ipsa_flags & in sadb_delget_sa()
2619 (ipsapp.ipsap_psa_ptr); in sadb_delget_sa()
2621 ipsapp.ipsap_psa_ptr->ipsa_state = in sadb_delget_sa()
2623 (void) sadb_torch_assoc(ipsapp.ipsap_pbucket, in sadb_delget_sa()
2624 ipsapp.ipsap_psa_ptr); in sadb_delget_sa()
2631 ipsapp.ipsap_psa_ptr->ipsa_otherspi = 0; in sadb_delget_sa()
2632 ipsapp.ipsap_psa_ptr->ipsa_flags &= in sadb_delget_sa()
2634 mutex_exit(&ipsapp.ipsap_psa_ptr->ipsa_lock); in sadb_delget_sa()
2640 mutex_exit(&ipsapp.ipsap_bucket->isaf_lock); in sadb_delget_sa()
2641 mutex_exit(&ipsapp.ipsap_pbucket->isaf_lock); in sadb_delget_sa()
2650 destroy_ipsa_pair(&ipsapp); in sadb_delget_sa()
2682 get_ipsa_pair(ipsa_query_t *sq, ipsap_t *ipsapp, int *diagnostic) in get_ipsa_pair() argument
2688 init_ipsa_pair(ipsapp); in get_ipsa_pair()
2690 ipsapp->in_inbound_table = B_FALSE; in get_ipsa_pair()
2697 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->inbound, in get_ipsa_pair()
2699 if (ipsapp->ipsap_sa_ptr != NULL) { in get_ipsa_pair()
2700 ipsapp->ipsap_bucket = sq->inbound; in get_ipsa_pair()
2701 ipsapp->ipsap_pbucket = sq->outbound; in get_ipsa_pair()
2702 ipsapp->in_inbound_table = B_TRUE; in get_ipsa_pair()
2704 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->outbound, in get_ipsa_pair()
2707 ipsapp->ipsap_bucket = sq->outbound; in get_ipsa_pair()
2708 ipsapp->ipsap_pbucket = sq->inbound; in get_ipsa_pair()
2712 ipsapp->ipsap_sa_ptr = in get_ipsa_pair()
2715 if (ipsapp->ipsap_sa_ptr != NULL) { in get_ipsa_pair()
2716 ipsapp->ipsap_bucket = sq->outbound; in get_ipsa_pair()
2717 ipsapp->ipsap_pbucket = sq->inbound; in get_ipsa_pair()
2719 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->inbound, in get_ipsa_pair()
2722 ipsapp->ipsap_bucket = sq->inbound; in get_ipsa_pair()
2723 ipsapp->ipsap_pbucket = sq->outbound; in get_ipsa_pair()
2724 if (ipsapp->ipsap_sa_ptr != NULL) in get_ipsa_pair()
2725 ipsapp->in_inbound_table = B_TRUE; in get_ipsa_pair()
2729 if (ipsapp->ipsap_sa_ptr == NULL) { in get_ipsa_pair()
2736 if ((ipsapp->ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) && in get_ipsa_pair()
2737 ipsapp->in_inbound_table) { in get_ipsa_pair()
2743 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock); in get_ipsa_pair()
2744 if (ipsapp->ipsap_sa_ptr->ipsa_haspeer) { in get_ipsa_pair()
2749 ipsapp->ipsap_psa_ptr = in get_ipsa_pair()
2750 ipsec_getassocbyspi(ipsapp->ipsap_pbucket, in get_ipsa_pair()
2752 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock); in get_ipsa_pair()
2757 pair_spi = ipsapp->ipsap_sa_ptr->ipsa_otherspi; in get_ipsa_pair()
2759 ipsapp->ipsap_sa_ptr->ipsa_srcaddr, sq->af); in get_ipsa_pair()
2761 ipsapp->ipsap_sa_ptr->ipsa_dstaddr, sq->af); in get_ipsa_pair()
2762 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock); in get_ipsa_pair()
2767 ASSERT(ipsapp->ipsap_bucket != NULL); in get_ipsa_pair()
2768 ASSERT(ipsapp->ipsap_pbucket != NULL); in get_ipsa_pair()
2774 if (ipsapp->in_inbound_table) { in get_ipsa_pair()
2777 ipsapp->ipsap_pbucket = OUTBOUND_BUCKET_V6(sq->sp, in get_ipsa_pair()
2780 ipsapp->ipsap_pbucket = OUTBOUND_BUCKET_V4(sq->sp, in get_ipsa_pair()
2784 ipsapp->ipsap_pbucket = INBOUND_BUCKET(sq->sp, pair_spi); in get_ipsa_pair()
2786 mutex_enter(&ipsapp->ipsap_pbucket->isaf_lock); in get_ipsa_pair()
2787 ipsapp->ipsap_psa_ptr = ipsec_getassocbyspi(ipsapp->ipsap_pbucket, in get_ipsa_pair()
2789 mutex_exit(&ipsapp->ipsap_pbucket->isaf_lock); in get_ipsa_pair()
2790 ASSERT(ipsapp->ipsap_bucket != NULL); in get_ipsa_pair()
2791 ASSERT(ipsapp->ipsap_pbucket != NULL); in get_ipsa_pair()
2912 ipsap_t ipsapp; local
2956 init_ipsa_pair(&ipsapp);
3668 error = get_ipsa_pair(&sq, &ipsapp, diagnostic);
3673 if (ipsapp.ipsap_psa_ptr != NULL) {
3678 error = update_pairing(&ipsapp, &sq, ksi, diagnostic);
3709 destroy_ipsa_pair(&ipsapp);
4531 ipsap_t ipsapp; local
4544 error = get_ipsa_pair(&sq, &ipsapp, diagnostic);
4548 if (ipsapp.ipsap_psa_ptr == NULL && ipsapp.ipsap_sa_ptr != NULL) {
4549 if (ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) {
4554 destroy_ipsa_pair(&ipsapp);
4575 if (ipsapp.ipsap_sa_ptr != NULL &&
4576 ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_IDLE) {
4577 if ((error = sadb_update_state(ipsapp.ipsap_sa_ptr,
4583 if (ipsapp.ipsap_psa_ptr != NULL &&
4584 ipsapp.ipsap_psa_ptr->ipsa_state == IPSA_STATE_IDLE) {
4585 if ((error = sadb_update_state(ipsapp.ipsap_psa_ptr,
4593 if (ipsapp.ipsap_sa_ptr != NULL) {
4594 error = sadb_update_state(ipsapp.ipsap_sa_ptr,
4596 (ipsapp.ipsap_sa_ptr->ipsa_flags &
4603 if (ipsapp.ipsap_psa_ptr != NULL) {
4604 error = sadb_update_state(ipsapp.ipsap_psa_ptr,
4606 (ipsapp.ipsap_psa_ptr->ipsa_flags &
4650 error = sadb_check_kmc(&sq, ipsapp.ipsap_sa_ptr, diagnostic);
4654 error = sadb_check_kmc(&sq, ipsapp.ipsap_psa_ptr, diagnostic);
4659 if (ipsapp.ipsap_sa_ptr != NULL) {
4665 ((ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) ||
4666 (ipsapp.ipsap_sa_ptr->ipsa_state == IPSA_STATE_MATURE))) {
4674 if (ipsapp.ipsap_sa_ptr != NULL) {
4675 sadb_update_lifetimes(ipsapp.ipsap_sa_ptr, hard, soft,
4677 sadb_update_kmc(&sq, ipsapp.ipsap_sa_ptr);
4679 (ipsapp.ipsap_sa_ptr->ipsa_replay_wsize != 0)) {
4685 if (!sadb_replay_check(ipsapp.ipsap_sa_ptr,
4692 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4693 ipsapp.ipsap_sa_ptr->ipsa_idleexpiretime =
4695 ipsapp.ipsap_sa_ptr->ipsa_idletime;
4696 mutex_exit(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4698 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4699 ipsapp.ipsap_sa_ptr->ipsa_replay =
4701 ipsapp.ipsap_sa_ptr->ipsa_idleexpiretime =
4703 ipsapp.ipsap_sa_ptr->ipsa_idletime;
4704 mutex_exit(&ipsapp.ipsap_sa_ptr->ipsa_lock);
4710 if (ipsapp.ipsap_psa_ptr != NULL) {
4711 sadb_update_lifetimes(ipsapp.ipsap_psa_ptr, hard, soft,
4713 sadb_update_kmc(&sq, ipsapp.ipsap_psa_ptr);
4722 error = update_pairing(&ipsapp, &sq, ksi, diagnostic);
4729 destroy_ipsa_pair(&ipsapp);
4736 update_pairing(ipsap_t *ipsapp, ipsa_query_t *sq, keysock_in_t *ksi, argument
4760 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock);
4761 ipsapp->ipsap_sa_ptr->ipsa_flags |= IPSA_F_PAIRED;
4762 ipsapp->ipsap_sa_ptr->ipsa_otherspi = pair_ext->sadb_x_pair_spi;
4763 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock);
4807 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock);
4808 ipsapp->ipsap_sa_ptr->ipsa_flags &= ~IPSA_F_PAIRED;
4809 ipsapp->ipsap_sa_ptr->ipsa_otherspi = 0;
4810 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock);
7835 destroy_ipsa_pair(ipsap_t *ipsapp) argument
7841 if (ipsapp->ipsap_sa_ptr != NULL) {
7842 IPSA_REFRELE(ipsapp->ipsap_sa_ptr);
7844 if (ipsapp->ipsap_psa_ptr != NULL) {
7845 IPSA_REFRELE(ipsapp->ipsap_psa_ptr);
7847 init_ipsa_pair(ipsapp);
7851 init_ipsa_pair(ipsap_t *ipsapp) argument
7853 ipsapp->ipsap_bucket = NULL;
7854 ipsapp->ipsap_sa_ptr = NULL;
7855 ipsapp->ipsap_pbucket = NULL;
7856 ipsapp->ipsap_psa_ptr = NULL;