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

Add support for outbound 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: 13322ca632f8ffba292bec058e597719bc54142d
 ** Merge commit sha: 04f37d8f29d26df3744151a85a19ef9b55b3d1f7
 **/
 platform/linux-generic/pktio/loop.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/platform/linux-generic/pktio/loop.c 
b/platform/linux-generic/pktio/loop.c
index 428b6cebd..6cc86e6af 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -164,6 +164,22 @@ static int loopback_send(pktio_entry_t *pktio_entry, int 
index ODP_UNUSED,
                bytes += odp_packet_len(pkt_tbl[i]);
        }
 
+       if (pktio_entry->s.config.outbound_ipsec)
+               for (i = 0; i < len; ++i) {
+                       odp_buffer_t buf = buf_from_buf_hdr(hdr_tbl[i]);
+                       odp_ipsec_packet_result_t result;
+
+                       if (_odp_buffer_event_subtype(buf) !=
+                           ODP_EVENT_PACKET_IPSEC)
+                               continue;
+
+                       /* Possibly postprocessing packet */
+                       odp_ipsec_result(&result, pkt_tbl[i]);
+
+                       _odp_buffer_event_subtype_set(buf,
+                                                     ODP_EVENT_PACKET_BASIC);
+               }
+
        odp_ticketlock_lock(&pktio_entry->s.txl);
 
        queue = queue_fn->from_ext(pktio_entry->s.pkt_loop.loopq);
@@ -213,6 +229,8 @@ 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.outbound_ipsec = 1;
+
        return 0;
 }
 

Reply via email to