This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via dc5540a0ac7a0fb9f923abde540546628f6fb082 (commit) via d912f56b1d87560c0712310ca1978217ac9757c8 (commit) via addebaf68180c001973a9f43b157d202a309b394 (commit) from 96a0e78c553dabb933d9263bbc78ad05731545a3 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit dc5540a0ac7a0fb9f923abde540546628f6fb082 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Tue Feb 6 22:38:49 2018 +0300
linux-gen: pktio: loop: check for ip error before trying IPsec
Check for ip_err error flag before calling _odp_ipsec_try_inline().
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index a210c74e..3ee2e33a 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -156,6 +156,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
/* Try IPsec inline processing */ if (pktio_entry->s.config.inbound_ipsec && + !pkt_hdr->p.error_flags.ip_err && _odp_packet_has_ipsec(pkt)) _odp_ipsec_try_inline(&pkt);
commit d912f56b1d87560c0712310ca1978217ac9757c8 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Tue Feb 6 22:38:30 2018 +0300
linux-gen: ptkio: loop: inline odp_packet_has_ipsec
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/include/odp/api/plat/packet_flag_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_flag_inlines.h index 3212248f..4e79ee25 100644 --- a/platform/linux-generic/include/odp/api/plat/packet_flag_inlines.h +++ b/platform/linux-generic/include/odp/api/plat/packet_flag_inlines.h @@ -71,4 +71,13 @@ static inline int _odp_packet_has_ts(odp_packet_t pkt) return flags.timestamp; }
+/** @internal Inline function @param pkt @return */ +static inline int _odp_packet_has_ipsec(odp_packet_t pkt) +{ + _odp_packet_input_flags_t flags; + + flags.all = _odp_packet_input_flags(pkt); + return flags.ipsec; +} + #endif diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 79c21ee7..a210c74e 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -13,6 +13,7 @@ #include <odp_classification_internal.h> #include <odp_ipsec_internal.h> #include <odp_debug_internal.h> +#include <odp/api/plat/packet_flag_inlines.h> #include <odp/api/hints.h> #include <odp_queue_if.h>
@@ -155,7 +156,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
/* Try IPsec inline processing */ if (pktio_entry->s.config.inbound_ipsec && - odp_packet_has_ipsec(pkt)) + _odp_packet_has_ipsec(pkt)) _odp_ipsec_try_inline(&pkt);
pktio_entry->s.stats.in_octets += pkt_len;
commit addebaf68180c001973a9f43b157d202a309b394 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Tue Feb 6 22:34:32 2018 +0300
linux-gen: use packet pointer in _odp_ipsec_try_inline
_odp_ipsec_try_inline() can change packet handle during decryption. Return new package handler via packet pointer argument.
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/include/odp_ipsec_internal.h b/platform/linux-generic/include/odp_ipsec_internal.h index bdb86c40..8a7b42c5 100644 --- a/platform/linux-generic/include/odp_ipsec_internal.h +++ b/platform/linux-generic/include/odp_ipsec_internal.h @@ -262,7 +262,7 @@ int _odp_ipsec_sa_replay_update(ipsec_sa_t *ipsec_sa, uint32_t seq, * @retval 0 if packet was processed and will be queue using IPsec inline * processing */ -int _odp_ipsec_try_inline(odp_packet_t pkt); +int _odp_ipsec_try_inline(odp_packet_t *pkt);
/** * @} diff --git a/platform/linux-generic/odp_ipsec.c b/platform/linux-generic/odp_ipsec.c index 586653d4..0ef8b88a 100644 --- a/platform/linux-generic/odp_ipsec.c +++ b/platform/linux-generic/odp_ipsec.c @@ -1628,7 +1628,7 @@ int odp_ipsec_out_enq(const odp_packet_t pkt_in[], int num_in, return in_pkt; }
-int _odp_ipsec_try_inline(odp_packet_t pkt) +int _odp_ipsec_try_inline(odp_packet_t *pkt) { odp_ipsec_op_status_t status; ipsec_sa_t *ipsec_sa; @@ -1637,7 +1637,7 @@ int _odp_ipsec_try_inline(odp_packet_t pkt)
memset(&status, 0, sizeof(status));
- ipsec_sa = ipsec_in_single(pkt, ODP_IPSEC_SA_INVALID, &pkt, &status); + ipsec_sa = ipsec_in_single(*pkt, ODP_IPSEC_SA_INVALID, pkt, &status); /* * Route packet back in case of lookup failure or early error before * lookup @@ -1645,14 +1645,14 @@ int _odp_ipsec_try_inline(odp_packet_t pkt) if (NULL == ipsec_sa) return -1;
- packet_subtype_set(pkt, ODP_EVENT_PACKET_IPSEC); - result = ipsec_pkt_result(pkt); + packet_subtype_set(*pkt, ODP_EVENT_PACKET_IPSEC); + result = ipsec_pkt_result(*pkt); memset(result, 0, sizeof(*result)); result->status = status; result->sa = ipsec_sa->ipsec_sa_hdl; result->flag.inline_mode = 1;
- pkt_hdr = packet_hdr(pkt); + pkt_hdr = packet_hdr(*pkt); pkt_hdr->p.input_flags.dst_queue = 1; pkt_hdr->dst_queue = queue_fn->from_ext(ipsec_sa->queue);
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 0cf45acb..79c21ee7 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -156,7 +156,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, /* Try IPsec inline processing */ if (pktio_entry->s.config.inbound_ipsec && odp_packet_has_ipsec(pkt)) - _odp_ipsec_try_inline(pkt); + _odp_ipsec_try_inline(&pkt);
pktio_entry->s.stats.in_octets += pkt_len; pkts[num_rx++] = pkt;
-----------------------------------------------------------------------
Summary of changes: .../linux-generic/include/odp/api/plat/packet_flag_inlines.h | 9 +++++++++ platform/linux-generic/include/odp_ipsec_internal.h | 2 +- platform/linux-generic/odp_ipsec.c | 10 +++++----- platform/linux-generic/pktio/loop.c | 6 ++++-- 4 files changed, 19 insertions(+), 8 deletions(-)
hooks/post-receive