Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Nov 2022 11:19:06 +0800
From:      Zhenlei Huang <zlei@FreeBSD.org>
To:        tuexen@freebsd.org
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: ICMPv6 over lo0
Message-ID:  <D353907A-2295-46B8-9F3A-C4AC0370C8E0@FreeBSD.org>
In-Reply-To: <DDDFD026-72AF-4558-93E4-60D361C671DF@freebsd.org>
References:  <DDDFD026-72AF-4558-93E4-60D361C671DF@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> On Nov 16, 2022, at 5:14 AM, tuexen@freebsd.org wrote:
>=20
> Dear all,
>=20
> when using the master branch of today (or 13.1) I get when running
>=20
> tuexen@ampere128:~ % ping6 -c 1 -b 30000 -s 20000 ::1
> PING6(20048=3D40+8+20000 bytes) ::1 --> ::1
> 20008 bytes from ::1, icmp_seq=3D0 hlim=3D64 time=3D0.709 ms
>=20
> --- ::1 ping6 statistics ---
> 1 packets transmitted, 1 packets received, 0.0% packet loss
> round-trip min/avg/max/std-dev =3D 0.709/0.709/0.709/0.000 ms
>=20
> which is expected. What I don't expect is:
>=20
> tuexen@ampere128:~ % tcpdump -i lo0 -n
> tcpdump: verbose output suppressed, use -v or -vv for full protocol =
decode
> listening on lo0, link-type NULL (BSD loopback), capture size 262144 =
bytes
> 22:06:38.835630 IP6 ::1 > ::1: frag (0|1232) ICMP6, echo request, seq =
0, length 1232
> 22:06:38.835639 IP6 ::1 > ::1: frag (1232|1232)
> 22:06:38.835641 IP6 ::1 > ::1: frag (2464|1232)
> 22:06:38.835641 IP6 ::1 > ::1: frag (3696|1232)
> 22:06:38.835642 IP6 ::1 > ::1: frag (4928|1232)
> 22:06:38.835642 IP6 ::1 > ::1: frag (6160|1232)
> 22:06:38.835643 IP6 ::1 > ::1: frag (7392|1232)
> 22:06:38.835644 IP6 ::1 > ::1: frag (8624|1232)
> 22:06:38.835644 IP6 ::1 > ::1: frag (9856|1232)
> 22:06:38.835645 IP6 ::1 > ::1: frag (11088|1232)
> 22:06:38.835645 IP6 ::1 > ::1: frag (12320|1232)
> 22:06:38.835646 IP6 ::1 > ::1: frag (13552|1232)
> 22:06:38.835647 IP6 ::1 > ::1: frag (14784|1232)
> 22:06:38.835647 IP6 ::1 > ::1: frag (16016|1232)
> 22:06:38.835648 IP6 ::1 > ::1: frag (17248|1232)
> 22:06:38.835648 IP6 ::1 > ::1: frag (18480|1232)
> 22:06:38.835649 IP6 ::1 > ::1: frag (19712|296)
> 22:06:38.836002 IP6 ::1 > ::1: frag (0|16336) ICMP6, echo reply, seq =
0, length 16336
> 22:06:38.836006 IP6 ::1 > ::1: frag (16336|3672)
> ^C
> 19 packets captured
> 19 packets received by filter
> 0 packets dropped by kernel
>=20
> Why is for the Echo Request an MTU of 1280 used, whereas for the =
response an MTU of 16384
> is used.
>=20
> Since
> tuexen@ampere128:~ % ifconfig lo0
> lo0: flags=3D8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
> 	options=3D680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
> 	inet6 ::1 prefixlen 128
> 	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
> 	inet 127.0.0.1 netmask 0xff000000
> 	groups: lo
> 	nd6 options=3D21<PERFORMNUD,AUTO_LINKLOCAL>
> is used, I would expect an MTU of 16384 also be used for the Echo =
Request instead of
> the minimum IPv6 MTU of 1280.

I believe MTU of 16384 should be used for Echo Request.

>=20
> Is this intended? At least for me, it is not expected...
>=20
> Best regards
> Michael




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D353907A-2295-46B8-9F3A-C4AC0370C8E0>