aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/pktio
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>2018-01-13 05:23:55 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2018-05-17 15:46:12 +0300
commit933a59910b2b95f579dbb11729192ccfcc26bcd7 (patch)
treebfc45b81fd39a4ca4b6aab418e18ad96d7c52394 /platform/linux-generic/pktio
parent894b80ee113440037b7899459eeb1c0f5c14b124 (diff)
linux-gen: packet: add IPv4 checksum validation
If configured, check IPv4 header checksum. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Bogdan Pricope <bogdan.pricope@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform/linux-generic/pktio')
-rw-r--r--platform/linux-generic/pktio/loop.c3
-rw-r--r--platform/linux-generic/pktio/netmap.c3
-rw-r--r--platform/linux-generic/pktio/pcap.c3
-rw-r--r--platform/linux-generic/pktio/socket.c3
-rw-r--r--platform/linux-generic/pktio/socket_mmap.c3
-rw-r--r--platform/linux-generic/pktio/tap.c3
6 files changed, 12 insertions, 6 deletions
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c
index 779e4c62b..d75102dc6 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -151,7 +151,8 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
}
} else {
packet_parse_layer(pkt_hdr,
- pktio_entry->s.config.parser.layer);
+ pktio_entry->s.config.parser.layer,
+ pktio_entry->s.in_chksums);
}
packet_set_ts(pkt_hdr, ts);
diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c
index 567bc9f95..1fb76d2ab 100644
--- a/platform/linux-generic/pktio/netmap.c
+++ b/platform/linux-generic/pktio/netmap.c
@@ -724,7 +724,8 @@ static inline int netmap_pkt_to_odp(pktio_entry_t *pktio_entry,
copy_packet_cls_metadata(&parsed_hdr, pkt_hdr);
else
packet_parse_layer(pkt_hdr,
- pktio_entry->s.config.parser.layer);
+ pktio_entry->s.config.parser.layer,
+ pktio_entry->s.in_chksums);
packet_set_ts(pkt_hdr, ts);
}
diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c
index 3df7f9606..530a1600a 100644
--- a/platform/linux-generic/pktio/pcap.c
+++ b/platform/linux-generic/pktio/pcap.c
@@ -256,7 +256,8 @@ static int pcapif_recv_pkt(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
}
packet_parse_layer(pkt_hdr,
- pktio_entry->s.config.parser.layer);
+ pktio_entry->s.config.parser.layer,
+ pktio_entry->s.in_chksums);
pktio_entry->s.stats.in_octets += pkt_hdr->frame_len;
packet_set_ts(pkt_hdr, ts);
diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c
index 8b7200e6f..d77538509 100644
--- a/platform/linux-generic/pktio/socket.c
+++ b/platform/linux-generic/pktio/socket.c
@@ -682,7 +682,8 @@ static int sock_mmsg_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
if (!pktio_cls_enabled(pktio_entry))
packet_parse_layer(pkt_hdr,
- pktio_entry->s.config.parser.layer);
+ pktio_entry->s.config.parser.layer,
+ pktio_entry->s.in_chksums);
pkt_hdr->input = pktio_entry->s.handle;
packet_set_ts(pkt_hdr, ts);
diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c
index 847eb71ad..1731e60d8 100644
--- a/platform/linux-generic/pktio/socket_mmap.c
+++ b/platform/linux-generic/pktio/socket_mmap.c
@@ -259,7 +259,8 @@ static inline unsigned pkt_mmap_v2_rx(pktio_entry_t *pktio_entry,
copy_packet_cls_metadata(&parsed_hdr, hdr);
else
packet_parse_layer(hdr,
- pktio_entry->s.config.parser.layer);
+ pktio_entry->s.config.parser.layer,
+ pktio_entry->s.in_chksums);
packet_set_ts(hdr, ts);
diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c
index af766e0de..d2f5cea16 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -286,7 +286,8 @@ static odp_packet_t pack_odp_pkt(pktio_entry_t *pktio_entry, const void *data,
copy_packet_cls_metadata(&parsed_hdr, pkt_hdr);
else
packet_parse_layer(pkt_hdr,
- pktio_entry->s.config.parser.layer);
+ pktio_entry->s.config.parser.layer,
+ pktio_entry->s.in_chksums);
packet_set_ts(pkt_hdr, ts);
pkt_hdr->input = pktio_entry->s.handle;