MCPcopy Create free account
hub / github.com/F-Stack/f-stack / create_inline_session

Function create_inline_session

dpdk/examples/ipsec-secgw/ipsec.c:418–710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

416}
417
418int
419create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa,
420 struct rte_ipsec_session *ips)
421{
422 int32_t ret = 0;
423 void *sec_ctx;
424 struct rte_security_session_conf sess_conf = {
425 .action_type = ips->type,
426 .protocol = RTE_SECURITY_PROTOCOL_IPSEC,
427 {.ipsec = {
428 .spi = sa->spi,
429 .salt = sa->salt,
430 .options = { 0 },
431 .replay_win_sz = 0,
432 .direction = sa->direction,
433 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP
434 } },
435 .crypto_xform = sa->xforms,
436 .userdata = NULL,
437 };
438
439 if (IS_TRANSPORT(sa->flags)) {
440 sess_conf.ipsec.mode = RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT;
441 if (IS_IP4(sa->flags)) {
442 sess_conf.ipsec.tunnel.type =
443 RTE_SECURITY_IPSEC_TUNNEL_IPV4;
444
445 sess_conf.ipsec.tunnel.ipv4.src_ip.s_addr =
446 sa->src.ip.ip4;
447 sess_conf.ipsec.tunnel.ipv4.dst_ip.s_addr =
448 sa->dst.ip.ip4;
449 } else if (IS_IP6(sa->flags)) {
450 sess_conf.ipsec.tunnel.type =
451 RTE_SECURITY_IPSEC_TUNNEL_IPV6;
452
453 memcpy(sess_conf.ipsec.tunnel.ipv6.src_addr.s6_addr,
454 sa->src.ip.ip6.ip6_b, 16);
455 memcpy(sess_conf.ipsec.tunnel.ipv6.dst_addr.s6_addr,
456 sa->dst.ip.ip6.ip6_b, 16);
457 }
458 } else if (IS_TUNNEL(sa->flags)) {
459 sess_conf.ipsec.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL;
460
461 if (IS_IP4(sa->flags)) {
462 sess_conf.ipsec.tunnel.type =
463 RTE_SECURITY_IPSEC_TUNNEL_IPV4;
464
465 sess_conf.ipsec.tunnel.ipv4.src_ip.s_addr =
466 sa->src.ip.ip4;
467 sess_conf.ipsec.tunnel.ipv4.dst_ip.s_addr =
468 sa->dst.ip.ip4;
469 } else if (IS_IP6(sa->flags)) {
470 sess_conf.ipsec.tunnel.type =
471 RTE_SECURITY_IPSEC_TUNNEL_IPV6;
472
473 memcpy(sess_conf.ipsec.tunnel.ipv6.src_addr.s6_addr,
474 sa->src.ip.ip6.ip6_b, 16);
475 memcpy(sess_conf.ipsec.tunnel.ipv6.dst_addr.s6_addr,

Callers 1

sa_add_rulesFunction · 0.85

Calls 9

rte_eth_dev_get_sec_ctxFunction · 0.85
rte_eth_dev_info_getFunction · 0.85
rte_flow_validateFunction · 0.85
rte_flow_createFunction · 0.85
set_ipsec_confFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected