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/pcap.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/pcap.c')
-rw-r--r-- | platform/linux-generic/pktio/pcap.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c index b66b3322c..2088c06d9 100644 --- a/platform/linux-generic/pktio/pcap.c +++ b/platform/linux-generic/pktio/pcap.c @@ -252,6 +252,7 @@ static int pcapif_recv_pkt(pktio_entry_t *pktio_entry, int index ODP_UNUSED, uint16_t frame_offset = pktio_entry->s.pktin_frame_offset; 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; odp_ticketlock_lock(&pktio_entry->s.rxl); @@ -259,8 +260,7 @@ static int pcapif_recv_pkt(pktio_entry_t *pktio_entry, int index ODP_UNUSED, odp_ticketlock_unlock(&pktio_entry->s.rxl); return 0; } - 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 = &ts_val; for (i = 0; i < num; ) { @@ -299,7 +299,7 @@ static int pcapif_recv_pkt(pktio_entry_t *pktio_entry, int index ODP_UNUSED, ret = _odp_packet_parse_common(&pkt_hdr->p, data, pkt_len, pkt_len, layer, chksums, - &l4_part_sum); + &l4_part_sum, opt); if (ret < 0) { odp_packet_free(pkt); continue; |