Petri Savolainen(psavol) replied on github web page:

include/odp/api/spec/packet_io.h
line 21
@@ -256,11 +256,27 @@ typedef struct odp_pktio_param_t {
  * belong to time synchronization protocol (PTP).
  *
  * Packet input checksum checking may be enabled or disabled. When it is
- * enabled, implementation will verify checksum correctness on incoming packets
- * and depending on drop configuration either deliver erroneous packets with
- * appropriate flags set (e.g. odp_packet_has_l3_error()) or drop those.
- * When packet dropping is enabled, application will never receive a packet
- * with the specified error and may avoid to check the error flag.
+ * enabled, implementation will attempt to verify checksum correctness on
+ * incoming packets and depending on drop configuration either deliver 
erroneous
+ * packets with appropriate flags set (e.g. odp_packet_has_l3_error(),
+ * odp_packet_l3_chksum_status()) or drop those. When packet dropping is
+ * enabled, application will never receive a packet with the specified error
+ * and may avoid to check the error flag.
+ *
+ * If checksum checking is enabled, IPv4 header checksum checking is always
+ * done for packets that do not have IP options and L4 checksum checking
+ * is done for unfragmented packets that do not have IPv4 options or IPv6
+ * extension headers. In other cases checksum checking may or may not
+ * be done. For example, L4 checksum of fragmented packets is typically
+ * not checked.


Comment:
The intention is best effort on top of the minimum requirement that all basic 
IP packets must be checked. The wording says that quite clearly already (what 
needs to change ?). Again it's a fact that not all HW will check non-basic IP 
packets, or if they do (e.g. with firmware / SW) packet rate may be much lower 
for _all_ packets.

Typically, these non-basic packets are a small fraction of all packets and 
belong to the slow path anyway.

https://github.com/Linaro/odp/pull/167#discussion_r137724863
updated_at 2017-09-08 07:26:16

Reply via email to