Lines Matching refs:prm
31 const struct rte_ipsec_sa_prm *prm) in fill_crypto_xform() argument
37 xf = prm->crypto_xform; in fill_crypto_xform()
169 fill_sa_type(const struct rte_ipsec_sa_prm *prm, uint64_t *type) in fill_sa_type() argument
175 if (prm->ipsec_xform.proto == RTE_SECURITY_IPSEC_SA_PROTO_AH) in fill_sa_type()
177 else if (prm->ipsec_xform.proto == RTE_SECURITY_IPSEC_SA_PROTO_ESP) in fill_sa_type()
182 if (prm->ipsec_xform.direction == RTE_SECURITY_IPSEC_SA_DIR_EGRESS) in fill_sa_type()
184 else if (prm->ipsec_xform.direction == in fill_sa_type()
190 if (prm->ipsec_xform.mode == RTE_SECURITY_IPSEC_SA_MODE_TUNNEL) { in fill_sa_type()
191 if (prm->ipsec_xform.tunnel.type == in fill_sa_type()
194 else if (prm->ipsec_xform.tunnel.type == in fill_sa_type()
200 if (prm->tun.next_proto == IPPROTO_IPIP) in fill_sa_type()
202 else if (prm->tun.next_proto == IPPROTO_IPV6) in fill_sa_type()
206 } else if (prm->ipsec_xform.mode == in fill_sa_type()
209 if (prm->trs.proto == IPPROTO_IPIP) in fill_sa_type()
211 else if (prm->trs.proto == IPPROTO_IPV6) in fill_sa_type()
219 if (prm->ipsec_xform.options.udp_encap == 1) in fill_sa_type()
223 if (prm->ipsec_xform.options.esn == 0) in fill_sa_type()
229 if (prm->ipsec_xform.options.ecn == 0) in fill_sa_type()
235 if (prm->ipsec_xform.options.copy_dscp == 0) in fill_sa_type()
241 if (prm->flags & RTE_IPSEC_SAFLAG_SQN_ATOM) in fill_sa_type()
284 esp_inb_tun_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm) in esp_inb_tun_init() argument
286 sa->proto = prm->tun.next_proto; in esp_inb_tun_init()
354 esp_outb_tun_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm) in esp_outb_tun_init() argument
356 sa->proto = prm->tun.next_proto; in esp_outb_tun_init()
357 sa->hdr_len = prm->tun.hdr_len; in esp_outb_tun_init()
358 sa->hdr_l3_off = prm->tun.hdr_l3_off; in esp_outb_tun_init()
360 memcpy(sa->hdr, prm->tun.hdr, prm->tun.hdr_len); in esp_outb_tun_init()
365 &sa->hdr[prm->tun.hdr_len]; in esp_outb_tun_init()
367 udph->src_port = prm->ipsec_xform.udp.sport; in esp_outb_tun_init()
368 udph->dst_port = prm->ipsec_xform.udp.dport; in esp_outb_tun_init()
376 esp_outb_init(sa, sa->hdr_len, prm->ipsec_xform.esn.value); in esp_outb_tun_init()
383 esp_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm, in esp_sa_init() argument
390 if (prm->ipsec_xform.options.ecn) in esp_sa_init()
393 if (prm->ipsec_xform.options.copy_dscp) in esp_sa_init()
474 sa->udata = prm->userdata; in esp_sa_init()
475 sa->spi = rte_cpu_to_be_32(prm->ipsec_xform.spi); in esp_sa_init()
476 sa->salt = prm->ipsec_xform.salt; in esp_sa_init()
486 esp_inb_tun_init(sa, prm); in esp_sa_init()
497 esp_outb_tun_init(sa, prm); in esp_sa_init()
502 esp_outb_init(sa, 0, prm->ipsec_xform.esn.value); in esp_sa_init()
529 rte_ipsec_sa_size(const struct rte_ipsec_sa_prm *prm) in rte_ipsec_sa_size() argument
535 if (prm == NULL) in rte_ipsec_sa_size()
539 rc = fill_sa_type(prm, &type); in rte_ipsec_sa_size()
544 wsz = prm->ipsec_xform.replay_win_sz; in rte_ipsec_sa_size()
549 rte_ipsec_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm, in rte_ipsec_sa_init() argument
557 if (sa == NULL || prm == NULL) in rte_ipsec_sa_init()
561 rc = fill_sa_type(prm, &type); in rte_ipsec_sa_init()
566 wsz = prm->ipsec_xform.replay_win_sz; in rte_ipsec_sa_init()
574 if (prm->ipsec_xform.proto != RTE_SECURITY_IPSEC_SA_PROTO_ESP) in rte_ipsec_sa_init()
577 if (prm->ipsec_xform.mode == RTE_SECURITY_IPSEC_SA_MODE_TUNNEL) { in rte_ipsec_sa_init()
578 uint32_t hlen = prm->tun.hdr_len; in rte_ipsec_sa_init()
585 rc = fill_crypto_xform(&cxf, type, prm); in rte_ipsec_sa_init()
596 sa->sqn_mask = (prm->ipsec_xform.options.esn == 0) ? in rte_ipsec_sa_init()
599 rc = esp_sa_init(sa, prm, &cxf); in rte_ipsec_sa_init()
605 fill_sa_replay(sa, wsz, nb, prm->ipsec_xform.esn.value); in rte_ipsec_sa_init()