[API-NEXT,v16,3/9] linux-gen: pktio: loop: support IPsec inbound inline

Message ID 1504782024-26631-4-git-send-email-odpbot@yandex.ru
State Superseded
Headers show
Series
  • [API-NEXT,v16,1/9] test: validation: add IPsec API testsuite
Related show

Commit Message

Github ODP bot Sept. 7, 2017, 11 a.m.
From: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>


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

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@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: 7fa8e2c97ed18f8dd6e95cbc78b7e668ccb98869
 ** Merge commit sha: d0f4ea10655492b00c1a40e85a0ba837f06f97c5
 **/
 platform/linux-generic/pktio/loop.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Patch

diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c
index 6cc86e6a..1b36034f 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -135,6 +135,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;
 	}
@@ -229,6 +236,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;