From: Dmitry Eremin-Solenikov <dmitry.ereminsoleni...@linaro.org>

Add support for inbound inline IPsec packet processing on loop
interface.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsoleni...@linaro.org>
---
/** Email created from pull request 81 (lumag:ipsec-packet-impl-2)
 ** https://github.com/Linaro/odp/pull/81
 ** Patch: https://github.com/Linaro/odp/pull/81.patch
 ** Base sha: 859293ad9b3c862264bb0fbfe8e7037b5e04d084
 ** Merge commit sha: 3c4b4ab58168f2d1ffc93503027bbb5a5d2847d8
 **/
 platform/linux-generic/pktio/loop.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/platform/linux-generic/pktio/loop.c 
b/platform/linux-generic/pktio/loop.c
index c755d0b6..19f1d029 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -133,6 +133,13 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int 
index ODP_UNUSED,
 
                packet_set_ts(pkt_hdr, ts);
                pkt_hdr->input = pktio_entry->s.handle;
+
+               /* Try IPsec inline processing */
+               if (pktio_entry->s.config.inbound_ipsec &&
+                   odp_packet_has_ipsec(pkt) &&
+                   _odp_ipsec_try_inline(pkt) == 0)
+                       continue;
+
                pktio_entry->s.stats.in_octets += pkt_len;
                pkts[num_rx++] = pkt;
        }
@@ -227,6 +234,7 @@ static int loopback_capability(pktio_entry_t *pktio_entry 
ODP_UNUSED,
        odp_pktio_config_init(&capa->config);
        capa->config.pktin.bit.ts_all = 1;
        capa->config.pktin.bit.ts_ptp = 1;
+       capa->config.inbound_ipsec = 1;
        capa->config.outbound_ipsec = 1;
 
        return 0;

Reply via email to