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

Function process_pkts

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

Source from the content-addressed store, hash-verified

567}
568
569static inline void
570process_pkts(struct lcore_conf *qconf, struct rte_mbuf **pkts,
571 uint16_t nb_pkts, uint16_t portid, void *ctx)
572{
573 struct ipsec_traffic traffic;
574
575 prepare_traffic(ctx, pkts, &traffic, nb_pkts);
576
577 if (unlikely(single_sa)) {
578 if (is_unprotected_port(portid))
579 process_pkts_inbound_nosp(&qconf->inbound, &traffic);
580 else
581 process_pkts_outbound_nosp(&qconf->outbound, &traffic);
582 } else {
583 if (is_unprotected_port(portid))
584 process_pkts_inbound(&qconf->inbound, &traffic);
585 else
586 process_pkts_outbound(&qconf->outbound, &traffic);
587 }
588
589#if defined __ARM_NEON
590 /* Neon optimized packet routing */
591 route4_pkts_neon(qconf->rt4_ctx, traffic.ip4.pkts, traffic.ip4.num,
592 qconf->outbound.ipv4_offloads, true);
593 route6_pkts_neon(qconf->rt6_ctx, traffic.ip6.pkts, traffic.ip6.num);
594#else
595 route4_pkts(qconf->rt4_ctx, traffic.ip4.pkts, traffic.ip4.num,
596 qconf->outbound.ipv4_offloads, true);
597 route6_pkts(qconf->rt6_ctx, traffic.ip6.pkts, traffic.ip6.num);
598#endif
599}
600
601static inline void
602drain_crypto_buffers(struct lcore_conf *qconf)

Callers 1

ipsec_poll_mode_workerFunction · 0.85

Calls 10

prepare_trafficFunction · 0.85
is_unprotected_portFunction · 0.85
process_pkts_inboundFunction · 0.85
process_pkts_outboundFunction · 0.85
route4_pkts_neonFunction · 0.85
route6_pkts_neonFunction · 0.85
route4_pktsFunction · 0.85
route6_pktsFunction · 0.85

Tested by

no test coverage detected