Lines Matching refs:ipsapp

2545 	ipsap_t ipsapp;
2558 error = get_ipsa_pair(&sq, &ipsapp, diagnostic);
2563 echo_target = ipsapp.ipsap_sa_ptr;
2565 echo_target = ipsapp.ipsap_psa_ptr;
2574 if (ipsapp.in_inbound_table) {
2575 mutex_enter(&ipsapp.ipsap_pbucket->isaf_lock);
2576 mutex_enter(&ipsapp.ipsap_bucket->isaf_lock);
2578 mutex_enter(&ipsapp.ipsap_bucket->isaf_lock);
2579 mutex_enter(&ipsapp.ipsap_pbucket->isaf_lock);
2582 if (ipsapp.ipsap_sa_ptr != NULL) {
2583 mutex_enter(&ipsapp.ipsap_sa_ptr->ipsa_lock);
2584 if (ipsapp.ipsap_sa_ptr->ipsa_flags & IPSA_F_INBOUND) {
2585 sadb_delete_cluster(ipsapp.ipsap_sa_ptr);
2587 ipsapp.ipsap_sa_ptr->ipsa_state = IPSA_STATE_DEAD;
2588 (void) sadb_torch_assoc(ipsapp.ipsap_bucket,
2589 ipsapp.ipsap_sa_ptr);
2596 if (ipsapp.ipsap_psa_ptr != NULL) {
2597 mutex_enter(&ipsapp.ipsap_psa_ptr->ipsa_lock);
2599 ipsapp.ipsap_psa_ptr->ipsa_haspeer) {
2600 if (ipsapp.ipsap_psa_ptr->ipsa_flags &
2603 (ipsapp.ipsap_psa_ptr);
2605 ipsapp.ipsap_psa_ptr->ipsa_state =
2607 (void) sadb_torch_assoc(ipsapp.ipsap_pbucket,
2608 ipsapp.ipsap_psa_ptr);
2615 ipsapp.ipsap_psa_ptr->ipsa_otherspi = 0;
2616 ipsapp.ipsap_psa_ptr->ipsa_flags &=
2618 mutex_exit(&ipsapp.ipsap_psa_ptr->ipsa_lock);
2624 mutex_exit(&ipsapp.ipsap_bucket->isaf_lock);
2625 mutex_exit(&ipsapp.ipsap_pbucket->isaf_lock);
2634 destroy_ipsa_pair(&ipsapp);
2666 get_ipsa_pair(ipsa_query_t *sq, ipsap_t *ipsapp, int *diagnostic)
2672 init_ipsa_pair(ipsapp);
2674 ipsapp->in_inbound_table = B_FALSE;
2681 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->inbound,
2683 if (ipsapp->ipsap_sa_ptr != NULL) {
2684 ipsapp->ipsap_bucket = sq->inbound;
2685 ipsapp->ipsap_pbucket = sq->outbound;
2686 ipsapp->in_inbound_table = B_TRUE;
2688 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->outbound,
2691 ipsapp->ipsap_bucket = sq->outbound;
2692 ipsapp->ipsap_pbucket = sq->inbound;
2696 ipsapp->ipsap_sa_ptr =
2699 if (ipsapp->ipsap_sa_ptr != NULL) {
2700 ipsapp->ipsap_bucket = sq->outbound;
2701 ipsapp->ipsap_pbucket = sq->inbound;
2703 ipsapp->ipsap_sa_ptr = ipsec_getassocbyspi(sq->inbound,
2706 ipsapp->ipsap_bucket = sq->inbound;
2707 ipsapp->ipsap_pbucket = sq->outbound;
2708 if (ipsapp->ipsap_sa_ptr != NULL)
2709 ipsapp->in_inbound_table = B_TRUE;
2713 if (ipsapp->ipsap_sa_ptr == NULL) {
2720 if ((ipsapp->ipsap_sa_ptr->ipsa_state == IPSA_STATE_LARVAL) &&
2721 ipsapp->in_inbound_table) {
2727 mutex_enter(&ipsapp->ipsap_sa_ptr->ipsa_lock);
2728 if (ipsapp->ipsap_sa_ptr->ipsa_haspeer) {
2733 ipsapp->ipsap_psa_ptr =
2734 ipsec_getassocbyspi(ipsapp->ipsap_pbucket,
2736 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock);
2741 pair_spi = ipsapp->ipsap_sa_ptr->ipsa_otherspi;
2743 ipsapp->ipsap_sa_ptr->ipsa_srcaddr, sq->af);
2745 ipsapp->ipsap_sa_ptr->ipsa_dstaddr, sq->af);
2746 mutex_exit(&ipsapp->ipsap_sa_ptr->ipsa_lock);
2751 ASSERT(ipsapp->ipsap_bucket != NULL);
2752 ASSERT(ipsapp->ipsap_pbucket != NULL);
2758 if (ipsapp->in_inbound_table) {
2761 ipsapp->ipsap_pbucket = OUTBOUND_BUCKET_V6(sq->sp,
2764 ipsapp->ipsap_pbucket = OUTBOUND_BUCKET_V4(sq->sp,
2768 ipsapp->ipsap_pbucket = INBOUND_BUCKET(sq->sp, pair_spi);
2770 mutex_enter(&ipsapp->ipsap_pbucket->isaf_lock);
2771 ipsapp->ipsap_psa_ptr = ipsec_getassocbyspi(ipsapp->ipsap_pbucket,
2773 mutex_exit(&ipsapp->ipsap_pbucket->isaf_lock);
2774 ASSERT(ipsapp->ipsap_bucket != NULL);
2775 ASSERT(ipsapp->ipsap_pbucket != NULL);
2896 ipsap_t ipsapp;
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;
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,
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)
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)
7572 ipsapp->ipsap_bucket = NULL;
7573 ipsapp->ipsap_sa_ptr = NULL;
7574 ipsapp->ipsap_pbucket = NULL;
7575 ipsapp->ipsap_psa_ptr = NULL;