numam-dpdk/lib
Hongzhi Guo 982bb68cab net: fix checksum on big endian CPUs
With current code, the checksum of odd-length buffers is wrong on
big endian CPUs: the last byte is not properly summed to the
accumulator.

Fix this by left-shifting the remaining byte by 8. For instance,
if the last byte is 0x42, we should add 0x4200 to the accumulator
on big endian CPUs.

This change is similar to what is suggested in Errata 3133 of
RFC 1071.

Fixes: 6006818cfb26("net: new checksum functions")
Cc: stable@dpdk.org

Signed-off-by: Hongzhi Guo <guohongzhi1@huawei.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2020-07-11 00:45:20 +02:00
..
librte_acl replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_bbdev lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_bitratestats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_bpf lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_cfgfile cfgfile: fix stack buffer underflow 2020-07-07 23:22:04 +02:00
librte_cmdline replace unused attributes 2020-04-16 18:30:58 +02:00
librte_compressdev lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_cryptodev cryptodev: add traces in multi-process path 2020-07-08 18:16:17 +02:00
librte_distributor build: add global libatomic dependency for 32-bit clang 2020-04-21 11:34:09 +02:00
librte_eal introduce restricted pointer aliasing marker 2020-07-10 15:35:32 +02:00
librte_efd replace packed attributes 2020-04-16 18:16:46 +02:00
librte_ethdev ethdev: fix log type for some error messages 2020-07-07 23:38:28 +02:00
librte_eventdev eventdev: relax SMP barriers with C11 atomics 2020-07-08 18:16:41 +02:00
librte_fib lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_flow_classify lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_graph log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
librte_gro build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_gso build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_hash hash: check flags on creation for future proofing 2020-06-16 17:46:39 +02:00
librte_ip_frag ip_frag: ensure minimum v6 fragmentation length 2020-04-25 15:15:27 +02:00
librte_ipsec lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_jobstats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_kni kni: fix not contiguous FIFO 2020-02-14 11:59:01 +01:00
librte_kvargs kvargs: fix strcmp helper documentation 2020-05-19 15:05:56 +02:00
librte_latencystats latency: fix calculation for multi-thread 2020-01-20 01:32:50 +01:00
librte_lpm lpm: implement RCU rule reclamation 2020-07-10 13:41:29 +02:00
librte_mbuf mbuf: add dump of free dynamic flags 2020-06-25 23:03:18 +02:00
librte_member log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_mempool eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +02:00
librte_meter meter: remove inline functions from export list 2020-06-23 19:29:41 +02:00
librte_metrics log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_net net: fix checksum on big endian CPUs 2020-07-11 00:45:20 +02:00
librte_node lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_pci pci: fix address domain format size 2020-06-30 00:02:54 +02:00
librte_pdump log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_pipeline replace packed attributes 2020-04-16 18:16:46 +02:00
librte_port ring: prepare ring to allow new sync schemes 2020-04-21 11:34:09 +02:00
librte_power replace unused attributes 2020-04-16 18:30:58 +02:00
librte_rawdev rawdev: export dump function in map file 2020-07-07 19:18:04 +02:00
librte_rcu lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_regexdev regexdev: implement API functions 2020-07-07 00:24:52 +02:00
librte_reorder build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_rib rib: add C++ include guard 2020-07-07 23:24:38 +02:00
librte_ring ring: use custom element for fixed size API 2020-07-09 17:22:36 +02:00
librte_sched sched: fix port time rounding 2020-07-07 00:58:31 +02:00
librte_security security: support DOCSIS protocol 2020-07-08 00:15:35 +02:00
librte_stack log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
librte_table eal: fix compiler detection in public headers 2020-03-18 00:59:17 +01:00
librte_telemetry lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_timer timer: relax barrier for status update 2020-04-26 22:07:38 +02:00
librte_vhost vhost: restrict pointer aliasing for packed ring 2020-07-10 15:43:41 +02:00
Makefile regexdev: introduce API 2020-07-07 00:24:38 +02:00
meson.build build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00