aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/pktio/loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-generic/pktio/loop.c')
-rw-r--r--platform/linux-generic/pktio/loop.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c
index 437977771..889a270ea 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -172,9 +172,16 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
pkt_hdr = packet_hdr(new_pkt);
}
} else {
- _odp_packet_parse_layer(pkt_hdr,
- pktio_entry->s.config.parser.layer,
- pktio_entry->s.in_chksums);
+ odp_packet_parse_param_t param;
+
+ /*
+ * Use odp_packet_parse() which can handle segmented
+ * packets.
+ */
+ param.proto = ODP_PROTO_ETH;
+ param.last_layer = pktio_entry->s.config.parser.layer;
+ param.chksums = pktio_entry->s.in_chksums;
+ odp_packet_parse(packet_handle(pkt_hdr), 0, &param);
}
packet_set_ts(pkt_hdr, ts);