Lines Matching refs:act
732 spd_convert_type(uint32_t type, ipsec_act_t *act) in spd_convert_type() argument
736 act->ipa_type = IPSEC_ACT_DISCARD; in spd_convert_type()
740 act->ipa_type = IPSEC_ACT_CLEAR; in spd_convert_type()
744 act->ipa_type = IPSEC_ACT_APPLY; in spd_convert_type()
751 spd_convert_flags(uint32_t flags, ipsec_act_t *act) in spd_convert_flags() argument
756 act->ipa_apply.ipp_use_ah = !!(flags & SPD_APPLY_AH); in spd_convert_flags()
757 act->ipa_apply.ipp_use_esp = !!(flags & SPD_APPLY_ESP); in spd_convert_flags()
758 act->ipa_apply.ipp_use_espa = !!(flags & SPD_APPLY_ESPA); in spd_convert_flags()
759 act->ipa_apply.ipp_use_se = !!(flags & SPD_APPLY_SE); in spd_convert_flags()
760 act->ipa_apply.ipp_use_unique = !!(flags & SPD_APPLY_UNIQUE); in spd_convert_flags()
765 spdsock_reset_act(ipsec_act_t *act) in spdsock_reset_act() argument
767 bzero(act, sizeof (*act)); in spdsock_reset_act()
768 act->ipa_apply.ipp_espe_maxbits = IPSEC_MAX_KEYBITS; in spdsock_reset_act()
769 act->ipa_apply.ipp_espa_maxbits = IPSEC_MAX_KEYBITS; in spdsock_reset_act()
770 act->ipa_apply.ipp_ah_maxbits = IPSEC_MAX_KEYBITS; in spdsock_reset_act()
777 spdsock_check_action(ipsec_act_t *act, boolean_t tunnel_polhead, int *diag, in spdsock_check_action() argument
780 if (tunnel_polhead && act->ipa_apply.ipp_use_unique) { in spdsock_check_action()
784 if ((act->ipa_type != IPSEC_ACT_APPLY) && in spdsock_check_action()
785 (act->ipa_apply.ipp_use_ah || in spdsock_check_action()
786 act->ipa_apply.ipp_use_esp || in spdsock_check_action()
787 act->ipa_apply.ipp_use_espa || in spdsock_check_action()
788 act->ipa_apply.ipp_use_se || in spdsock_check_action()
789 act->ipa_apply.ipp_use_unique)) { in spdsock_check_action()
793 if ((act->ipa_type == IPSEC_ACT_APPLY) && in spdsock_check_action()
794 !act->ipa_apply.ipp_use_ah && in spdsock_check_action()
795 !act->ipa_apply.ipp_use_esp) { in spdsock_check_action()
799 return (ipsec_check_action(act, diag, spds->spds_netstack)); in spdsock_check_action()
811 ipsec_act_t act, *actp, *endactp; in spdsock_ext_to_actvec() local
848 spdsock_reset_act(&act); in spdsock_ext_to_actvec()
857 spdsock_reset_act(&act); in spdsock_ext_to_actvec()
868 if (!spdsock_check_action(&act, tunnel_polhead, in spdsock_ext_to_actvec()
871 *actp++ = act; in spdsock_ext_to_actvec()
872 spdsock_reset_act(&act); in spdsock_ext_to_actvec()
876 if (!spd_convert_type(attrp->spd_attr_value, &act)) { in spdsock_ext_to_actvec()
890 if (!spd_convert_flags(attrp->spd_attr_value, &act)) { in spdsock_ext_to_actvec()
901 act.ipa_apply.ipp_auth_alg = attrp->spd_attr_value; in spdsock_ext_to_actvec()
909 act.ipa_apply.ipp_encr_alg = attrp->spd_attr_value; in spdsock_ext_to_actvec()
917 act.ipa_apply.ipp_esp_auth_alg = attrp->spd_attr_value; in spdsock_ext_to_actvec()
921 act.ipa_apply.ipp_espe_minbits = attrp->spd_attr_value; in spdsock_ext_to_actvec()
925 act.ipa_apply.ipp_espe_maxbits = attrp->spd_attr_value; in spdsock_ext_to_actvec()
929 act.ipa_apply.ipp_ah_minbits = attrp->spd_attr_value; in spdsock_ext_to_actvec()
933 act.ipa_apply.ipp_ah_maxbits = attrp->spd_attr_value; in spdsock_ext_to_actvec()
937 act.ipa_apply.ipp_espa_minbits = attrp->spd_attr_value; in spdsock_ext_to_actvec()
941 act.ipa_apply.ipp_espa_maxbits = attrp->spd_attr_value; in spdsock_ext_to_actvec()
951 act.ipa_apply.ipp_km_proto = attrp->spd_attr_value; in spdsock_ext_to_actvec()
955 act.ipa_apply.ipp_km_cookie = attrp->spd_attr_value; in spdsock_ext_to_actvec()
959 act.ipa_apply.ipp_replay_depth = attrp->spd_attr_value; in spdsock_ext_to_actvec()
1633 const struct ipsec_act *act = &(ap->ipa_act); in spdsock_encode_action() local
1637 switch (act->ipa_type) { in spdsock_encode_action()
1650 if (act->ipa_apply.ipp_use_ah) in spdsock_encode_action()
1652 if (act->ipa_apply.ipp_use_esp) in spdsock_encode_action()
1654 if (act->ipa_apply.ipp_use_espa) in spdsock_encode_action()
1656 if (act->ipa_apply.ipp_use_se) in spdsock_encode_action()
1658 if (act->ipa_apply.ipp_use_unique) in spdsock_encode_action()
1662 EMIT(SPD_ATTR_AH_AUTH, act->ipa_apply.ipp_auth_alg); in spdsock_encode_action()
1664 act->ipa_apply.ipp_ah_minbits); in spdsock_encode_action()
1666 act->ipa_apply.ipp_ah_maxbits); in spdsock_encode_action()
1669 EMIT(SPD_ATTR_ESP_ENCR, act->ipa_apply.ipp_encr_alg); in spdsock_encode_action()
1671 act->ipa_apply.ipp_espe_minbits); in spdsock_encode_action()
1673 act->ipa_apply.ipp_espe_maxbits); in spdsock_encode_action()
1676 act->ipa_apply.ipp_esp_auth_alg); in spdsock_encode_action()
1678 act->ipa_apply.ipp_espa_minbits); in spdsock_encode_action()
1680 act->ipa_apply.ipp_espa_maxbits); in spdsock_encode_action()
1683 if (act->ipa_apply.ipp_km_proto != 0) in spdsock_encode_action()
1684 EMIT(SPD_ATTR_KM_PROTO, act->ipa_apply.ipp_km_proto); in spdsock_encode_action()
1685 if (act->ipa_apply.ipp_km_cookie != 0) in spdsock_encode_action()
1686 EMIT(SPD_ATTR_KM_PROTO, act->ipa_apply.ipp_km_cookie); in spdsock_encode_action()
1687 if (act->ipa_apply.ipp_replay_depth != 0) in spdsock_encode_action()
1689 act->ipa_apply.ipp_replay_depth); in spdsock_encode_action()
1701 struct spd_ext_actions *act; in spdsock_encode_action_list() local
1708 act = (struct spd_ext_actions *)(base + offset); in spdsock_encode_action_list()
1709 act->spd_actions_len = 0; in spdsock_encode_action_list()
1710 act->spd_actions_exttype = SPD_EXT_ACTION; in spdsock_encode_action_list()
1711 act->spd_actions_count = 0; in spdsock_encode_action_list()
1712 act->spd_actions_reserved = 0; in spdsock_encode_action_list()
1715 offset += sizeof (*act); in spdsock_encode_action_list()
1732 act->spd_actions_count = nact; in spdsock_encode_action_list()
1733 act->spd_actions_len = SPD_8TO64(offset - start); in spdsock_encode_action_list()
2266 struct spd_ext_actions *act; in spdsock_alglist() local
2316 act = (struct spd_ext_actions *)cur; in spdsock_alglist()
2317 cur += sizeof (*act); in spdsock_alglist()
2319 act->spd_actions_len = SPD_8TO64(size - sizeof (spd_msg_t)); in spdsock_alglist()
2320 act->spd_actions_exttype = SPD_EXT_ACTION; in spdsock_alglist()
2321 act->spd_actions_count = algcount; in spdsock_alglist()
2322 act->spd_actions_reserved = 0; in spdsock_alglist()
2398 struct spd_ext_actions *act; in spdsock_dumpalgs() local
2459 act = (struct spd_ext_actions *)cur; in spdsock_dumpalgs()
2460 cur += sizeof (*act); in spdsock_dumpalgs()
2462 act->spd_actions_len = SPD_8TO64(size - sizeof (spd_msg_t)); in spdsock_dumpalgs()
2463 act->spd_actions_exttype = SPD_EXT_ACTION; in spdsock_dumpalgs()
2464 act->spd_actions_count = ipss->ipsec_nalgs[IPSEC_ALG_AUTH] + in spdsock_dumpalgs()
2466 act->spd_actions_reserved = 0; in spdsock_dumpalgs()
2472 if (act->spd_actions_count == 0) { in spdsock_dumpalgs()
2473 act->spd_actions_len = 0; in spdsock_dumpalgs()