aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/pktio/pcap.c
diff options
context:
space:
mode:
authorJere Leppänen <jere.leppanen@nokia.com>2022-04-21 20:54:38 +0300
committerMatias Elo <matias.elo@nokia.com>2022-05-27 12:55:40 +0300
commit9da0f6922464749b0600d124f589967df54c1813 (patch)
treece526fcfa6b95b52013f9cc48505d2e3f5da1881 /platform/linux-generic/pktio/pcap.c
parent67acfda8ae415a35760cda69f864bee8184a624e (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.c9
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);