diff options
author | Jere Leppänen <jere.leppanen@nokia.com> | 2022-02-25 17:00:00 +0200 |
---|---|---|
committer | Petri Savolainen <petri.savolainen@nokia.com> | 2022-03-31 16:35:49 +0300 |
commit | 43e4ead4cd1149f956f13e9968679b424240948f (patch) | |
tree | f210dfc264495f730d007af2d3a24a1b3aa7a27e /platform/linux-generic/pktio/loop.c | |
parent | 76c8b7a1a90f1eb895944627c9f76c9ed03d7136 (diff) |
linux-gen: drop error packets according to pktin configuration
When encountering a packet error in packet parser and pktin has been
configured to drop on that kind of packet error, return an error,
which causes pktio to drop the packet.
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.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index ed190904f..3e21efecd 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -164,6 +164,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, uint32_t octets = 0; const odp_proto_chksums_t chksums = pktio_entry->s.in_chksums; const odp_proto_layer_t layer = pktio_entry->s.parse_layer; + const odp_pktin_config_opt_t opt = pktio_entry->s.config.pktin; if (odp_unlikely(num > QUEUE_MULTI_MAX)) num = QUEUE_MULTI_MAX; @@ -173,8 +174,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, queue = pkt_priv(pktio_entry)->loopq; nbr = odp_queue_deq_multi(queue, (odp_event_t *)hdr_tbl, num); - if (pktio_entry->s.config.pktin.bit.ts_all || - pktio_entry->s.config.pktin.bit.ts_ptp) { + if (opt.bit.ts_all || opt.bit.ts_ptp) { ts_val = odp_time_global(); ts = &ts_val; } @@ -207,7 +207,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, packet_parse_reset(pkt_hdr, 1); ret = _odp_packet_parse_common(&pkt_hdr->p, pkt_addr, pkt_len, seg_len, layer, chksums, - &l4_part_sum); + &l4_part_sum, opt); if (ret) errors++; |