Lines Matching refs:sa
805 print_one_sa_rule(const struct ipsec_sa *sa, int inbound) in print_one_sa_rule() argument
812 printf("\tspi_%s(%3u):", inbound?"in":"out", sa->spi); in print_one_sa_rule()
815 if (cipher_algos[i].algo == sa->cipher_algo && in print_one_sa_rule()
816 cipher_algos[i].key_len == sa->cipher_key_len) { in print_one_sa_rule()
823 if (auth_algos[i].algo == sa->auth_algo) { in print_one_sa_rule()
830 if (aead_algos[i].algo == sa->aead_algo && in print_one_sa_rule()
831 aead_algos[i].key_len-4 == sa->cipher_key_len) { in print_one_sa_rule()
839 switch (WITHOUT_TRANSPORT_VERSION(sa->flags)) { in print_one_sa_rule()
842 uint32_t_to_char(sa->src.ip.ip4, &a, &b, &c, &d); in print_one_sa_rule()
844 uint32_t_to_char(sa->dst.ip.ip4, &a, &b, &c, &d); in print_one_sa_rule()
851 printf("%.2x:", sa->src.ip.ip6.ip6_b[i]); in print_one_sa_rule()
853 printf("%.2x", sa->src.ip.ip6.ip6_b[i]); in print_one_sa_rule()
858 printf("%.2x:", sa->dst.ip.ip6.ip6_b[i]); in print_one_sa_rule()
860 printf("%.2x", sa->dst.ip.ip6.ip6_b[i]); in print_one_sa_rule()
868 ips = &sa->sessions[IPSEC_SESSION_PRIMARY]; in print_one_sa_rule()
888 fallback_ips = &sa->sessions[IPSEC_SESSION_FALLBACK]; in print_one_sa_rule()
889 if (fallback_ips != NULL && sa->fallback_sessions > 0) { in print_one_sa_rule()
903 if (sa->fdir_flag == 1) in print_one_sa_rule()
904 printf("flow-direction port %d queue %d", sa->portid, in print_one_sa_rule()
905 sa->fdir_qid); in print_one_sa_rule()
1024 sa_add_address_inline_crypto(struct ipsec_sa *sa) in sa_add_address_inline_crypto() argument
1030 protocol = get_spi_proto(sa->spi, sa->direction, ip_addr, mask); in sa_add_address_inline_crypto()
1034 sa->flags |= IP4_TRANSPORT; in sa_add_address_inline_crypto()
1040 sa->src.ip.ip4 = ip_addr[0].ip.ip4; in sa_add_address_inline_crypto()
1041 sa->dst.ip.ip4 = ip_addr[1].ip.ip4; in sa_add_address_inline_crypto()
1046 __func__, sa->spi); in sa_add_address_inline_crypto()
1050 sa->flags |= IP6_TRANSPORT; in sa_add_address_inline_crypto()
1058 sa->src.ip.ip6 = ip_addr[0].ip.ip6; in sa_add_address_inline_crypto()
1059 sa->dst.ip.ip6 = ip_addr[1].ip.ip6; in sa_add_address_inline_crypto()
1064 __func__, sa->spi); in sa_add_address_inline_crypto()
1076 struct ipsec_sa *sa; in sa_add_rules() local
1088 sa = &sa_ctx->sa[idx]; in sa_add_rules()
1089 if (sa->spi != 0) { in sa_add_rules()
1091 idx, sa->spi); in sa_add_rules()
1094 *sa = entries[i]; in sa_add_rules()
1097 rc = ipsec_sad_add(&sa_ctx->sad, sa); in sa_add_rules()
1102 sa->seq = 0; in sa_add_rules()
1103 ips = ipsec_get_primary_session(sa); in sa_add_rules()
1107 if (check_eth_dev_caps(sa->portid, inbound)) in sa_add_rules()
1111 switch (WITHOUT_TRANSPORT_VERSION(sa->flags)) { in sa_add_rules()
1113 sa->src.ip.ip4 = rte_cpu_to_be_32(sa->src.ip.ip4); in sa_add_rules()
1114 sa->dst.ip.ip4 = rte_cpu_to_be_32(sa->dst.ip.ip4); in sa_add_rules()
1120 sa_add_address_inline_crypto(sa); in sa_add_rules()
1127 if (sa->aead_algo == RTE_CRYPTO_AEAD_AES_GCM) { in sa_add_rules()
1131 sa_ctx->xf[idx].a.aead.algo = sa->aead_algo; in sa_add_rules()
1132 sa_ctx->xf[idx].a.aead.key.data = sa->cipher_key; in sa_add_rules()
1134 sa->cipher_key_len; in sa_add_rules()
1142 sa->aad_len + aad_length; in sa_add_rules()
1144 sa->digest_len; in sa_add_rules()
1146 sa->xforms = &sa_ctx->xf[idx].a; in sa_add_rules()
1148 switch (sa->cipher_algo) { in sa_add_rules()
1152 iv_length = sa->iv_len; in sa_add_rules()
1160 sa->cipher_algo); in sa_add_rules()
1166 sa_ctx->xf[idx].b.cipher.algo = sa->cipher_algo; in sa_add_rules()
1167 sa_ctx->xf[idx].b.cipher.key.data = sa->cipher_key; in sa_add_rules()
1169 sa->cipher_key_len; in sa_add_rules()
1177 sa_ctx->xf[idx].a.auth.algo = sa->auth_algo; in sa_add_rules()
1178 sa_ctx->xf[idx].a.auth.key.data = sa->auth_key; in sa_add_rules()
1180 sa->auth_key_len; in sa_add_rules()
1182 sa->digest_len; in sa_add_rules()
1187 sa_ctx->xf[idx].a.cipher.algo = sa->cipher_algo; in sa_add_rules()
1188 sa_ctx->xf[idx].a.cipher.key.data = sa->cipher_key; in sa_add_rules()
1190 sa->cipher_key_len; in sa_add_rules()
1198 sa_ctx->xf[idx].b.auth.algo = sa->auth_algo; in sa_add_rules()
1199 sa_ctx->xf[idx].b.auth.key.data = sa->auth_key; in sa_add_rules()
1201 sa->auth_key_len; in sa_add_rules()
1203 sa->digest_len; in sa_add_rules()
1210 sa->xforms = &sa_ctx->xf[idx].a; in sa_add_rules()
1217 rc = create_inline_session(skt_ctx, sa, ips); in sa_add_rules()
1225 if (sa->fdir_flag && inbound) { in sa_add_rules()
1226 rc = create_ipsec_esp_flow(sa); in sa_add_rules()
1231 print_one_sa_rule(sa, inbound); in sa_add_rules()
1315 fill_ipsec_session(struct rte_ipsec_session *ss, struct rte_ipsec_sa *sa) in fill_ipsec_session() argument
1319 ss->sa = sa; in fill_ipsec_session()
1337 ipsec_sa_init(struct ipsec_sa *lsa, struct rte_ipsec_sa *sa, uint32_t sa_size) in ipsec_sa_init() argument
1362 rc = rte_ipsec_sa_init(sa, &prm, sa_size); in ipsec_sa_init()
1368 rc = fill_ipsec_session(ips, sa); in ipsec_sa_init()
1374 rc = fill_ipsec_session(ipsec_get_fallback_session(lsa), sa); in ipsec_sa_init()
1389 struct rte_ipsec_sa *sa; in ipsec_satbl_init() local
1395 fill_ipsec_sa_prm(&prm, ctx->sa + idx, NULL, NULL); in ipsec_satbl_init()
1419 sa = (struct rte_ipsec_sa *)((uintptr_t)ctx->satbl + sz * i); in ipsec_satbl_init()
1420 lsa = ctx->sa + idx; in ipsec_satbl_init()
1422 rc = ipsec_sa_init(lsa, sa, sz); in ipsec_satbl_init()
1444 struct ipsec_sa *sa; in sa_spi_present() local
1448 sar = sa_ctx->sa; in sa_spi_present()
1456 sa = bsearch(&tmpl, sar, num, sizeof(struct ipsec_sa), sa_cmp); in sa_spi_present()
1457 if (sa != NULL) in sa_spi_present()
1458 return RTE_PTR_DIFF(sa, sar) / sizeof(struct ipsec_sa); in sa_spi_present()
1531 struct ipsec_sa *sa; in inbound_sa_check() local
1534 sa = priv->sa; in inbound_sa_check()
1535 if (sa != NULL) in inbound_sa_check()
1536 return (sa_ctx->sa[sa_idx].spi == sa->spi); in inbound_sa_check()
1548 struct ipsec_sa *sa; in inbound_sa_lookup() local
1565 result_sa = sa = sa_arr[i]; in inbound_sa_lookup()
1567 sa->fallback_sessions > 0) { in inbound_sa_lookup()
1568 uintptr_t intsa = (uintptr_t)sa; in inbound_sa_lookup()
1578 void *sa[], uint16_t nb_pkts) in outbound_sa_lookup() argument
1583 sa[i] = &sa_ctx->sa[sa_idx[i]]; in outbound_sa_lookup()