freebsd-dev/tests/sys/netinet6/frag6/Makefile
Bjoern A. Zeeb 619456bb59 frag6: prevent overwriting initial fragoff=0 packet meta-data.
When we receive the packet with the first fragmented part (fragoff=0)
we remember the length of the unfragmentable part and the next header
(and should probably also remember ECN) as meta-data on the reassembly
queue.
Someone replying this packet so far could change these 2 (3) values.
While changing the next header seems more severe, for a full size
fragmented UDP packet, for example, adding an extension header to the
unfragmentable part would go unnoticed (as the framented part would be
considered an exact duplicate) but make reassembly fail.
So do not allow updating the meta-data after we have seen the first
fragmented part anymore.

The frag6_20 test case is added which failed before triggering an
ICMPv6 "param prob" due to the check for each queued fragment for
a max-size violation if a fragoff=0 packet was received.

MFC after:	3 weeks
Sponsored by:	Netflix
2019-10-24 22:07:45 +00:00

80 lines
2.1 KiB
Makefile

# $FreeBSD$
PACKAGE= tests
TESTSDIR= ${TESTSBASE}/sys/netinet6/frag6
FILESDIR= ${TESTSDIR}
# We split these up so they can run in parallel.
# Seems kyua is not running the test cases from one file in parallel.
# Otherwise we could cat the files together into one shell file.
ATF_TESTS_SH= \
frag6_01 \
frag6_02 \
frag6_03 \
frag6_04 \
frag6_05 \
frag6_06 \
frag6_07 \
frag6_08 \
frag6_09 \
frag6_10 \
frag6_11 \
frag6_12 \
frag6_13 \
frag6_14 \
frag6_15 \
frag6_16 \
frag6_17 \
frag6_18 \
frag6_19 \
frag6_20
${PACKAGE}FILES+= frag6.subr
${PACKAGE}FILES+= sniffer.py
${PACKAGE}FILES+= frag6_01.py
${PACKAGE}FILES+= frag6_02.py
${PACKAGE}FILES+= frag6_03.py
${PACKAGE}FILES+= frag6_04.py
${PACKAGE}FILES+= frag6_05.py
${PACKAGE}FILES+= frag6_06.py
${PACKAGE}FILES+= frag6_07.py
${PACKAGE}FILES+= frag6_08.py
${PACKAGE}FILES+= frag6_09.py
${PACKAGE}FILES+= frag6_10.py
${PACKAGE}FILES+= frag6_11.py
${PACKAGE}FILES+= frag6_12.py
${PACKAGE}FILES+= frag6_13.py
${PACKAGE}FILES+= frag6_14.py
${PACKAGE}FILES+= frag6_15.py
${PACKAGE}FILES+= frag6_16.py
${PACKAGE}FILES+= frag6_17.py
${PACKAGE}FILES+= frag6_18.py
${PACKAGE}FILES+= frag6_19.py
${PACKAGE}FILES+= frag6_20.py
${PACKAGE}FILESMODE_frag6.subr= 0444
${PACKAGE}FILESMODE_sniffer.py= 0555
${PACKAGE}FILESMODE_frag6_01.py= 0555
${PACKAGE}FILESMODE_frag6_02.py= 0555
${PACKAGE}FILESMODE_frag6_03.py= 0555
${PACKAGE}FILESMODE_frag6_04.py= 0555
${PACKAGE}FILESMODE_frag6_05.py= 0555
${PACKAGE}FILESMODE_frag6_06.py= 0555
${PACKAGE}FILESMODE_frag6_07.py= 0555
${PACKAGE}FILESMODE_frag6_08.py= 0555
${PACKAGE}FILESMODE_frag6_09.py= 0555
${PACKAGE}FILESMODE_frag6_10.py= 0555
${PACKAGE}FILESMODE_frag6_11.py= 0555
${PACKAGE}FILESMODE_frag6_12.py= 0555
${PACKAGE}FILESMODE_frag6_13.py= 0555
${PACKAGE}FILESMODE_frag6_14.py= 0555
${PACKAGE}FILESMODE_frag6_15.py= 0555
${PACKAGE}FILESMODE_frag6_16.py= 0555
${PACKAGE}FILESMODE_frag6_17.py= 0555
${PACKAGE}FILESMODE_frag6_18.py= 0555
${PACKAGE}FILESMODE_frag6_19.py= 0555
${PACKAGE}FILESMODE_frag6_20.py= 0555
.include <bsd.test.mk>