diff options
author | Jere Leppänen <jere.leppanen@nokia.com> | 2022-04-21 20:54:38 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2022-05-27 12:55:40 +0300 |
commit | 9da0f6922464749b0600d124f589967df54c1813 (patch) | |
tree | ce526fcfa6b95b52013f9cc48505d2e3f5da1881 /platform/linux-generic/pktio/pcap.c | |
parent | 67acfda8ae415a35760cda69f864bee8184a624e (diff) |
linux-gen: pktio: validate L4 checksum in _odp_packet_parse_common()
We've been avoiding L4 checksum validation in case the packet is
dropped due to other parse errors or classification. However, L4
checksum must be validated before classification, otherwise packets
with an invalid checksum are not classified to the error CoS. Move L4
checksum validation into _odp_packet_parse_common().
Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Diffstat (limited to 'platform/linux-generic/pktio/pcap.c')
-rw-r--r-- | platform/linux-generic/pktio/pcap.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c index fe4299c6b..b1b853831 100644 --- a/platform/linux-generic/pktio/pcap.c +++ b/platform/linux-generic/pktio/pcap.c @@ -297,11 +297,9 @@ static int pcapif_recv_pkt(pktio_entry_t *pktio_entry, int index ODP_UNUSED, } if (layer) { - uint64_t l4_part_sum = 0; - - ret = _odp_packet_parse_common(&pkt_hdr->p, data, pkt_len, + ret = _odp_packet_parse_common(pkt_hdr, data, pkt_len, pkt_len, layer, chksums, - &l4_part_sum, opt); + opt); if (ret) errors++; @@ -334,9 +332,6 @@ static int pcapif_recv_pkt(pktio_entry_t *pktio_entry, int index ODP_UNUSED, pkt_hdr = packet_hdr(new_pkt); } } - - if (layer >= ODP_PROTO_LAYER_L4) - _odp_packet_l4_chksum(pkt_hdr, chksums, l4_part_sum); } packet_set_ts(pkt_hdr, ts); |