numam-dpdk/lib
Konstantin Ananyev b8d5dfd4a5 ip_frag: use key length for key comparison
Right now reassembly code relies on src_dst[] being all zeroes to
determine is it  free/occupied entry in the fragments table.
This is suboptimal and error prone - user can crash DPDK ip_reassembly
app by something like the following scapy script:
x=Ether(src=...,dst=...)/IP(dst='0.0.0.0',src='0.0.0.0',id=0)/('X'*1000)
frags=fragment(x, fragsize=500)
sendp(frags, iface=...)
To overcome that issue and reduce overhead of
'key invalidate'  and 'key is empty' operations -
add key_len into keys comparision procedure.

Fixes: 4f1a8f6338 ("ip_frag: add IPv6 reassembly")
Cc: stable@dpdk.org

Reported-by: Ryan E Hall <ryan.e.hall@intel.com>
Reported-by: Alexander V Gutkin <alexander.v.gutkin@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-11-06 01:58:11 +01:00
..
librte_acl lib: fix shifting 32-bit signed variable 31 times 2018-11-06 01:14:05 +01:00
librte_bbdev remove useless constructor headers 2018-07-12 00:00:35 +02:00
librte_bitratestats bitrate: add sanity check on parameters 2018-07-26 20:07:57 +02:00
librte_bpf bpf: fix a typo 2018-10-25 11:27:49 +02:00
librte_cfgfile build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_cmdline ethdev: support MAC address as iterator filter 2018-10-26 22:14:06 +02:00
librte_compat buildtools: change license to SPDX 2018-07-26 22:45:17 +02:00
librte_compressdev compressdev: fix op allocation 2018-11-02 12:25:39 +01:00
librte_cryptodev lib: reduce global variable usage 2018-10-29 02:34:27 +01:00
librte_distributor build: set compat lib as universal dependency 2018-01-30 21:59:00 +01:00
librte_eal service: fix possible null access 2018-11-06 01:14:15 +01:00
librte_efd build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_ethdev ethdev: remove experimental tag for iterator API 2018-11-06 01:14:04 +01:00
librte_eventdev lib: reduce global variable usage 2018-10-29 02:34:27 +01:00
librte_flow_classify flow_classify: do not check for invalid socket ID 2018-10-11 10:37:45 +02:00
librte_gro build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_gso gso: support UDP/IPv4 fragmentation 2018-07-11 23:45:20 +02:00
librte_hash hash: remove unnecessary pause 2018-10-26 22:01:37 +02:00
librte_ip_frag ip_frag: use key length for key comparison 2018-11-06 01:58:11 +01:00
librte_jobstats build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_kni kni: add function to set link state on kernel interface 2018-10-26 19:46:15 +02:00
librte_kvargs kvargs: support list value 2018-10-26 22:14:06 +02:00
librte_latencystats latency: fix timestamp marking and latency calculation 2018-10-25 10:30:13 +02:00
librte_lpm lpm6: add incremental update on delete 2018-09-19 17:11:37 +02:00
librte_mbuf ethdev: support metadata as flow rule criteria 2018-10-26 22:14:05 +02:00
librte_member remove useless constructor headers 2018-07-12 00:00:35 +02:00
librte_mempool malloc: add function to check if socket is external 2018-10-11 11:11:25 +02:00
librte_meter meter: remove experimental tag from profile API 2018-08-06 01:15:11 +02:00
librte_metrics metrics: disallow null as metric name 2018-07-26 20:30:18 +02:00
librte_net lib: fix shifting 32-bit signed variable 31 times 2018-11-06 01:14:05 +01:00
librte_pci use SPDX tag for 6WIND copyrighted files 2018-05-25 10:47:06 +02:00
librte_pdump mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
librte_pipeline pipeline: add table action for packet decap 2018-10-12 19:33:34 +02:00
librte_port port: add symmetric crypto 2018-10-12 19:33:02 +02:00
librte_power power: fix traffic aware build 2018-10-26 14:51:36 +02:00
librte_rawdev lib: reduce global variable usage 2018-10-29 02:34:27 +01:00
librte_reorder build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_ring ring/c11: move atomic load of head above the loop 2018-11-05 14:34:27 +01:00
librte_sched mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
librte_security security: support PDCP 2018-10-24 15:12:33 +02:00
librte_table lib/librte_table: add hash function headers 2018-10-12 17:58:53 +02:00
librte_telemetry build: add dependency on telemetry to apps with meson 2018-10-27 15:21:33 +02:00
librte_timer eal: make semantics of lcore role function more intuitive 2018-04-26 16:58:18 +02:00
librte_vhost vhost: fix possible out of bound access 2018-11-06 01:14:23 +01:00
Makefile telemetry: introduce infrastructure 2018-10-27 15:18:20 +02:00
meson.build build: change default driver installation directory 2018-10-27 23:22:12 +02:00