Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Jul 2023 15:37:16 -0400
From:      Cheng Cui <cc@freebsd.org>
To:        Kevin Bowling <kevin.bowling@kev009.com>
Cc:        "freebsd-net@FreeBSD.org" <freebsd-net@freebsd.org>
Subject:   tcp and udp traffic over IPv6 does not work from the latest e1000 git change 918c25677d
Message-ID:  <CAGaXuiJ=P4ke4bnq9MHZfxhGM28xE=iBG0L6AgSjGZKA4H-ceQ@mail.gmail.com>

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

[-- Attachment #1 --]
Hello Kevin,

TCP and UDP traffic over IPv4 are working, but not over IPv6.
On a pair of FreeBSD 14.0-CURRENT nodes that are using a kernel containing
the latest e1000 git change 918c25677d:

root@s1:~ # uname -a
FreeBSD s1.testsiftr.fbsd-transport.emulab.net 14.0-CURRENT FreeBSD
14.0-CURRENT amd64 1400093 #0 main-*918c25677d*-dirty: Sat Jul 22 14:43:31
MDT 2023     cc@n1.buildbsd14.fbsd-transport.emulab.net:/usr/obj/usr/src/amd64.amd64/sys/TESTBED-GENERIC
amd64
root@s1:~ #

root@s1:~ # ping6 -c 3 fd00::3
PING6(56=40+8+8 bytes) fd00::2 --> fd00::3
16 bytes from fd00::3, icmp_seq=0 hlim=64 time=0.393 ms
16 bytes from fd00::3, icmp_seq=1 hlim=64 time=0.171 ms
16 bytes from fd00::3, icmp_seq=2 hlim=64 time=0.276 ms

--- fd00::3 ping6 statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.171/0.280/0.393/0.091 ms

root@s1:~ # ifconfig em4
em4: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
options=4e104bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LRO,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether 00:04:23:b7:40:ac
inet 10.1.1.2 netmask 0xffffff00 broadcast 10.1.1.255
inet6 fd00::2 prefixlen 64
inet6 fe80::204:23ff:feb7:40ac%em4 prefixlen 64 scopeid 0x5
media: Ethernet 1000baseT <full-duplex>
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

root@s1:~ # dmesg | grep em4
em4: <Intel(R) Legacy PRO/1000 MT 82546EB (Copper)> port 0xacc0-0xacff mem
0xdf3e0000-0xdf3fffff irq 101 at device 3.0 on pci10
em4: EEPROM V15.255-15
em4: Using 1024 TX descriptors and 1024 RX descriptors
em4: Ethernet address: 00:04:23:b7:40:ac
em4: netmap queues/slots: TX 1/1024, RX 1/1024

root@r1:~ # ifconfig em4
em4: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
options=4e104bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LRO,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether 00:04:23:b7:40:1c
inet 10.1.1.3 netmask 0xffffff00 broadcast 10.1.1.255
inet6 fd00::3 prefixlen 64
inet6 fe80::204:23ff:feb7:401c%em4 prefixlen 64 scopeid 0x5
media: Ethernet 1000baseT <full-duplex>
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

root@r1:~ # dmesg | grep em4
em4: <Intel(R) Legacy PRO/1000 MT 82546EB (Copper)> port 0xacc0-0xacff mem
0xdf3e0000-0xdf3fffff irq 101 at device 3.0 on pci10
em4: EEPROM V15.255-15
em4: Using 1024 TX descriptors and 1024 RX descriptors
em4: Ethernet address: 00:04:23:b7:40:1c
em4: netmap queues/slots: TX 1/1024, RX 1/1024


TCP connection timed out
root@s1:~ # iperf -Vc fd00::3 -n 2K
------------------------------------------------------------
Client connecting to fd00::3, TCP port 5001
TCP window size: 32.0 KByte (default)
------------------------------------------------------------
tcp connect failed: Operation timed out
[  1] local :: port 0 connected with fd00::3 port 5001

server side has no response:
root@r1:~ # iperf -VsB fd00::3
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------

UDP traffic does not work either, and the UDP server has no response:
root@s1:~ # iperf -Vc fd00::3 --udp -n 2K
------------------------------------------------------------
Client connecting to fd00::3, UDP port 5001
Sending 1450 byte datagrams, IPG target: 11062.62 us (kalman adjust)
UDP buffer size: 9.00 KByte (default)
------------------------------------------------------------
[  1] local fd00::2 port 54362 connected with fd00::3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-0.01 sec  3.42 KBytes  2.36 Mbits/sec
[  1] Sent 4 datagrams
[  3] WARNING: did not receive ack of last datagram after 1 tries.

root@r1:~ # iperf -VsB fd00::3 --udp
------------------------------------------------------------
Server listening on UDP port 5001
UDP buffer size: 41.1 KByte (default)
------------------------------------------------------------



On a new pair of nodes that use a kernel with backed out the latest em git
change 918c25677d. Same em chip 82546EB.
root@s1:~ # uname -a
FreeBSD s1.testem.fbsd-transport.emulab.net 14.0-CURRENT FreeBSD
14.0-CURRENT amd64 1400093 #0 *22dca7acf7*-dirty: Wed Jul 26 08:18:23 MDT
2023     cc@n1.emtest.fbsd-transport.emulab.net:/usr/obj/usr/src/amd64.amd64/sys/TESTBED-GENERIC
amd64

cc@s1:~ % ifconfig em2
em2: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,HWSTATS,MEXTPG>
ether 00:04:23:b7:12:be
inet 10.1.1.2 netmask 0xffffff00 broadcast 10.1.1.255
inet6 fd00::2 prefixlen 64
inet6 fe80::204:23ff:feb7:12be%em2 prefixlen 64 scopeid 0x3
media: Ethernet 1000baseT <full-duplex>
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

cc@r1:~ % ifconfig em2
em2: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,HWSTATS,MEXTPG>
ether 00:04:23:b7:15:58
inet 10.1.1.3 netmask 0xffffff00 broadcast 10.1.1.255
inet6 fd00::3 prefixlen 64
inet6 fe80::204:23ff:feb7:1558%em2 prefixlen 64 scopeid 0x3
media: Ethernet 1000baseT <full-duplex>
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

cc@s1:~ % ping6 -c 3 fd00::3
PING6(56=40+8+8 bytes) fd00::2 --> fd00::3
16 bytes from fd00::3, icmp_seq=0 hlim=64 time=0.637 ms
16 bytes from fd00::3, icmp_seq=1 hlim=64 time=0.236 ms
16 bytes from fd00::3, icmp_seq=2 hlim=64 time=0.290 ms

--- fd00::3 ping6 statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.236/0.388/0.637/0.178 ms

TCP traffic works:

root@s1:~ # iperf -Vc fd00::3 -n 2K
------------------------------------------------------------
Client connecting to fd00::3, TCP port 5001
TCP window size: 32.3 KByte (default)
------------------------------------------------------------
[  1] local fd00::2 port 27164 connected with fd00::3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-0.02 sec  2.00 KBytes   858 Kbits/sec

cc@r1:~ % iperf -VsB fd00::3
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  1] local fd00::3 port 5001 connected with fd00::2 port 27164
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-0.00 sec  2.00 KBytes  0.000 bits/sec

UDP traffic also works:

root@s1:~ # iperf -Vc fd00::3 --udp -n 2K
------------------------------------------------------------
Client connecting to fd00::3, UDP port 5001
Sending 1450 byte datagrams, IPG target: 11062.62 us (kalman adjust)
UDP buffer size: 9.00 KByte (default)
------------------------------------------------------------
[  1] local fd00::2 port 64612 connected with fd00::3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-0.01 sec  3.42 KBytes  2.36 Mbits/sec
[  1] Sent 4 datagrams
[  1] Server Report:
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total
Datagrams
[  1] 0.00-0.01 sec  3.42 KBytes  2.38 Mbits/sec   0.010 ms 0/3 (0%)

cc@r1:~ % iperf -VsB fd00::3 --udp
------------------------------------------------------------
Server listening on UDP port 5001
UDP buffer size: 41.1 KByte (default)
------------------------------------------------------------
[  1] local fd00::3 port 5001 connected with fd00::2 port 64612
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total
Datagrams
[  1] 0.00-0.01 sec  3.42 KBytes  2.38 Mbits/sec   0.011 ms 0/3 (0%)

Best Regards,
Cheng Cui

[-- Attachment #2 --]
<div dir="ltr"><div>Hello Kevin,</div><div><br></div><div>TCP and UDP traffic over IPv4 are working, but not over IPv6.<br></div><div>On a pair of FreeBSD 14.0-CURRENT nodes that are using a kernel containing the latest e1000 git change 918c25677d:<br><br>root@s1:~ # uname -a<br>FreeBSD <a href="http://s1.testsiftr.fbsd-transport.emulab.net">s1.testsiftr.fbsd-transport.emulab.net</a>; 14.0-CURRENT FreeBSD 14.0-CURRENT amd64 1400093 #0 main-<span style="background-color:rgb(255,255,0)"><b>918c25677d</b></span>-dirty: Sat Jul 22 14:43:31 MDT 2023     cc@n1.buildbsd14.fbsd-transport.emulab.net:/usr/obj/usr/src/amd64.amd64/sys/TESTBED-GENERIC amd64<br>root@s1:~ #<br><br>root@s1:~ # ping6 -c 3 fd00::3<br>PING6(56=40+8+8 bytes) fd00::2 --&gt; fd00::3<br>16 bytes from fd00::3, icmp_seq=0 hlim=64 time=0.393 ms<br>16 bytes from fd00::3, icmp_seq=1 hlim=64 time=0.171 ms<br>16 bytes from fd00::3, icmp_seq=2 hlim=64 time=0.276 ms<br><br>--- fd00::3 ping6 statistics ---<br>3 packets transmitted, 3 packets received, 0.0% packet loss<br>round-trip min/avg/max/std-dev = 0.171/0.280/0.393/0.091 ms<br><br>root@s1:~ # ifconfig em4<br>em4: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP&gt; metric 0 mtu 1500<br>	options=4e104bb&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LRO,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG&gt;<br>	ether 00:04:23:b7:40:ac<br>	inet 10.1.1.2 netmask 0xffffff00 broadcast 10.1.1.255<br>	inet6 fd00::2 prefixlen 64<br>	inet6 fe80::204:23ff:feb7:40ac%em4 prefixlen 64 scopeid 0x5<br>	media: Ethernet 1000baseT &lt;full-duplex&gt;<br>	status: active<br>	nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;<br><br>root@s1:~ # dmesg | grep em4<br>em4: &lt;Intel(R) Legacy PRO/1000 MT 82546EB (Copper)&gt; port 0xacc0-0xacff mem 0xdf3e0000-0xdf3fffff irq 101 at device 3.0 on pci10<br>em4: EEPROM V15.255-15<br>em4: Using 1024 TX descriptors and 1024 RX descriptors<br>em4: Ethernet address: 00:04:23:b7:40:ac<br>em4: netmap queues/slots: TX 1/1024, RX 1/1024<br><br>root@r1:~ # ifconfig em4<br>em4: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP&gt; metric 0 mtu 1500<br>	options=4e104bb&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LRO,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG&gt;<br>	ether 00:04:23:b7:40:1c<br>	inet 10.1.1.3 netmask 0xffffff00 broadcast 10.1.1.255<br>	inet6 fd00::3 prefixlen 64<br>	inet6 fe80::204:23ff:feb7:401c%em4 prefixlen 64 scopeid 0x5<br>	media: Ethernet 1000baseT &lt;full-duplex&gt;<br>	status: active<br>	nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;<br><br>root@r1:~ # dmesg | grep em4<br>em4: &lt;Intel(R) Legacy PRO/1000 MT 82546EB (Copper)&gt; port 0xacc0-0xacff mem 0xdf3e0000-0xdf3fffff irq 101 at device 3.0 on pci10<br>em4: EEPROM V15.255-15<br>em4: Using 1024 TX descriptors and 1024 RX descriptors<br>em4: Ethernet address: 00:04:23:b7:40:1c<br>em4: netmap queues/slots: TX 1/1024, RX 1/1024<br><br><br>TCP connection timed out<br>root@s1:~ # iperf -Vc fd00::3 -n 2K<br>------------------------------------------------------------<br>Client connecting to fd00::3, TCP port 5001<br>TCP window size: 32.0 KByte (default)<br>------------------------------------------------------------<br>tcp connect failed: Operation timed out<br>[  1] local :: port 0 connected with fd00::3 port 5001<br><br>server side has no response:<br>root@r1:~ # iperf -VsB fd00::3<br>------------------------------------------------------------<br>Server listening on TCP port 5001<br>TCP window size: 64.0 KByte (default)<br>------------------------------------------------------------<br><br>UDP traffic does not work either, and the UDP server has no response:<br>root@s1:~ # iperf -Vc fd00::3 --udp -n 2K<br>------------------------------------------------------------<br>Client connecting to fd00::3, UDP port 5001<br>Sending 1450 byte datagrams, IPG target: 11062.62 us (kalman adjust)<br>UDP buffer size: 9.00 KByte (default)<br>------------------------------------------------------------<br>[  1] local fd00::2 port 54362 connected with fd00::3 port 5001<br>[ ID] Interval       Transfer     Bandwidth<br>[  1] 0.00-0.01 sec  3.42 KBytes  2.36 Mbits/sec<br>[  1] Sent 4 datagrams<br>[  3] WARNING: did not receive ack of last datagram after 1 tries.<br><br>root@r1:~ # iperf -VsB fd00::3 --udp<br>------------------------------------------------------------<br>Server listening on UDP port 5001<br>UDP buffer size: 41.1 KByte (default)<br>------------------------------------------------------------<br><br><br><br>On a new pair of nodes that use a kernel with backed out the latest em git change 918c25677d. Same em chip 82546EB.<br>root@s1:~ # uname -a<br>FreeBSD <a href="http://s1.testem.fbsd-transport.emulab.net">s1.testem.fbsd-transport.emulab.net</a>; 14.0-CURRENT FreeBSD 14.0-CURRENT amd64 1400093 #0 <b><span style="background-color:rgb(255,255,0)">22dca7acf7</span></b>-dirty: Wed Jul 26 08:18:23 MDT 2023     cc@n1.emtest.fbsd-transport.emulab.net:/usr/obj/usr/src/amd64.amd64/sys/TESTBED-GENERIC amd64<br><br>cc@s1:~ % ifconfig em2<br>em2: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP&gt; metric 0 mtu 1500<br>	options=481009b&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,HWSTATS,MEXTPG&gt;<br>	ether 00:04:23:b7:12:be<br>	inet 10.1.1.2 netmask 0xffffff00 broadcast 10.1.1.255<br>	inet6 fd00::2 prefixlen 64<br>	inet6 fe80::204:23ff:feb7:12be%em2 prefixlen 64 scopeid 0x3<br>	media: Ethernet 1000baseT &lt;full-duplex&gt;<br>	status: active<br>	nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;</div><div><br></div><div>cc@r1:~ % ifconfig em2<br>em2: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP&gt; metric 0 mtu 1500<br>	options=481009b&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,HWSTATS,MEXTPG&gt;<br>	ether 00:04:23:b7:15:58<br>	inet 10.1.1.3 netmask 0xffffff00 broadcast 10.1.1.255<br>	inet6 fd00::3 prefixlen 64<br>	inet6 fe80::204:23ff:feb7:1558%em2 prefixlen 64 scopeid 0x3<br>	media: Ethernet 1000baseT &lt;full-duplex&gt;<br>	status: active<br>	nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;</div><div><br></div><div>cc@s1:~ % ping6 -c 3 fd00::3<br>PING6(56=40+8+8 bytes) fd00::2 --&gt; fd00::3<br>16 bytes from fd00::3, icmp_seq=0 hlim=64 time=0.637 ms<br>16 bytes from fd00::3, icmp_seq=1 hlim=64 time=0.236 ms<br>16 bytes from fd00::3, icmp_seq=2 hlim=64 time=0.290 ms<br><br>--- fd00::3 ping6 statistics ---<br>3 packets transmitted, 3 packets received, 0.0% packet loss<br>round-trip min/avg/max/std-dev = 0.236/0.388/0.637/0.178 ms<br><br>TCP traffic works:<br><br>root@s1:~ # iperf -Vc fd00::3 -n 2K<br>------------------------------------------------------------<br>Client connecting to fd00::3, TCP port 5001<br>TCP window size: 32.3 KByte (default)<br>------------------------------------------------------------<br>[  1] local fd00::2 port 27164 connected with fd00::3 port 5001<br>[ ID] Interval       Transfer     Bandwidth<br>[  1] 0.00-0.02 sec  2.00 KBytes   858 Kbits/sec<br><br>cc@r1:~ % iperf -VsB fd00::3<br>------------------------------------------------------------<br>Server listening on TCP port 5001<br>TCP window size: 64.0 KByte (default)<br>------------------------------------------------------------<br>[  1] local fd00::3 port 5001 connected with fd00::2 port 27164<br>[ ID] Interval       Transfer     Bandwidth<br>[  1] 0.00-0.00 sec  2.00 KBytes  0.000 bits/sec<br><br>UDP traffic also works:<br><br>root@s1:~ # iperf -Vc fd00::3 --udp -n 2K<br>------------------------------------------------------------<br>Client connecting to fd00::3, UDP port 5001<br>Sending 1450 byte datagrams, IPG target: 11062.62 us (kalman adjust)<br>UDP buffer size: 9.00 KByte (default)<br>------------------------------------------------------------<br>[  1] local fd00::2 port 64612 connected with fd00::3 port 5001<br>[ ID] Interval       Transfer     Bandwidth<br>[  1] 0.00-0.01 sec  3.42 KBytes  2.36 Mbits/sec<br>[  1] Sent 4 datagrams<br>[  1] Server Report:<br>[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams<br>[  1] 0.00-0.01 sec  3.42 KBytes  2.38 Mbits/sec   0.010 ms 0/3 (0%)<br><br>cc@r1:~ % iperf -VsB fd00::3 --udp<br>------------------------------------------------------------<br>Server listening on UDP port 5001<br>UDP buffer size: 41.1 KByte (default)<br>------------------------------------------------------------<br>[  1] local fd00::3 port 5001 connected with fd00::2 port 64612<br>[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams<br>[  1] 0.00-0.01 sec  3.42 KBytes  2.38 Mbits/sec   0.011 ms 0/3 (0%)<br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><br></div>Best Regards,<div>Cheng Cui</div></div></div></div></div></div>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGaXuiJ=P4ke4bnq9MHZfxhGM28xE=iBG0L6AgSjGZKA4H-ceQ>