aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/pktio/loop.c
diff options
context:
space:
mode:
authorJere Leppänen <jere.leppanen@nokia.com>2022-01-31 11:57:56 +0200
committerPetri Savolainen <petri.savolainen@nokia.com>2022-03-10 09:33:44 +0200
commit37072db5ae3644223769ce9ea65d93ff25c9fe81 (patch)
tree6ed6951179f46dd879e586f373311c1e62d449b5 /platform/linux-generic/pktio/loop.c
parentd494be4f7c395c83bd02efca4acc7f98766cf814 (diff)
linux-gen: cls: move parse call out of _odp_cls_classify_packet()
Instead of calling _odp_packet_parse_common() in _odp_cls_classify_packet(), make the call in pktio before the classify call. This is cleaner and makes for better error handling. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Diffstat (limited to 'platform/linux-generic/pktio/loop.c')
-rw-r--r--platform/linux-generic/pktio/loop.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c
index f50145d52..0a81e7085 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -203,9 +203,17 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
pkt_addr = odp_packet_data(pkt);
}
+ ret = _odp_packet_parse_common(&pkt_hdr->p, pkt_addr, pkt_len,
+ seg_len, ODP_PROTO_LAYER_ALL,
+ pktio_entry->s.in_chksums);
+ if (ret < 0) {
+ failed++;
+ odp_packet_free(pkt);
+ continue;
+ }
+
ret = _odp_cls_classify_packet(pktio_entry, pkt_addr,
- pkt_len, seg_len,
- &new_pool, pkt_hdr, true);
+ &new_pool, pkt_hdr);
if (ret) {
failed++;
odp_packet_free(pkt);