Bug 170070 - [regression] 9.1-PRERELEASE host cannot talk to itself over IPv6 (except on loopback)
Summary: [regression] 9.1-PRERELEASE host cannot talk to itself over IPv6 (except on l...
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 9.1-PRERELEASE
Hardware: Any Any
: Normal Affects Only Me
Assignee: George V. Neville-Neil
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-22 19:50 UTC by Mike Andrews
Modified: 2019-01-20 01:26 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Andrews 2012-07-22 19:50:03 UTC
With a 9.1-PRERELEASE (r238602) kernel built July 17, my systems cannot talk to
themselves over IPv6 on anything except the loopback address.  Other systems can
talk to them fine, IPv4 works fine, and an older 9.0-STABLE (r236963) kernel built
June 12, works fine.  This is across a mix of Intel systems with a mix of NICs,
mostly em and rl, but all amd64.  Obviously this causes some bizarre problems,
like hosts not being able to talk to their own jails, DNS failures if resolv.conf
is pointed to a locally running named....

Fix: 

Revert kernel to r236963 or to IPv4.
I have not yet narrowed down further the specific revision that breaks this.
How-To-Repeat: 
IPs and domains redacted somewhat.

root@whitedog:/etc # head -7 rc.conf
ipv6_activate_all_interfaces="YES"
cloned_interfaces="lagg0"
ifconfig_re1="up -tso -rxcsum -txcsum mtu 5000"
ifconfig_re0="up -tso -rxcsum -txcsum mtu 5000"
ifconfig_lagg0="laggproto failover laggport re0 laggport re1 10.0.27.15/25 mtu 5000"
ifconfig_lagg0_ipv6="inet6 YYYY:YYYY:Y:11b::fafa:330/64"
ifconfig_lagg0_alias0="inet6 fc00::fafa:330/64"
root@whitedog:/etc # ifconfig
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 5000
        options=82098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether XX:XX:XX:da:58:92
        inet6 fe80::XXX:XXff:feda:5892%re0 prefixlen 64 scopeid 0x1 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 5000
        options=82098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether XX:XX:XX:da:58:92
        inet6 fe80::XXX:XXff:feda:5892%re1 prefixlen 64 scopeid 0x2 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 5000
        options=82098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether XX:XX:XX:da:58:92
        inet 10.0.27.15 netmask 0xffffff80 broadcast 10.0.27.127
        inet6 fe80::XXX:XXff:feda:5892%lagg0 prefixlen 64 scopeid 0x9 
        inet6 YYYY:YYYY:Y:11b::fafa:330 prefixlen 64 
        inet6 fc00::fafa:330 prefixlen 64 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        laggproto failover lagghash l2,l3,l4
        laggport: re1 flags=0<>
        laggport: re0 flags=5<MASTER,ACTIVE>
root@whitedog:/etc # telnet 10.0.27.15 22
Trying 10.0.27.15...
Connected to whitedog.int.OURDOMAIN.com.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
root@whitedog:/etc # telnet 127.0.0.1 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
root@whitedog:/etc # telnet ::1 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
root@whitedog:/etc # telnet fc00::fafa:330 22
Trying fc00::fafa:330...
telnet: connect to address fc00::fafa:330: Operation timed out
telnet: Unable to connect to remote host
root@whitedog:/etc # telnet YYYY:YYYY:Y:11b::fafa:330 22
Trying YYYY:YYYY:Y:11b::fafa:330...
telnet: connect to address YYYY:YYYY:Y:11b::fafa:330: Operation timed out
telnet: Unable to connect to remote host
root@whitedog:/etc # telnet fe80::XXX:XXff:feda:5892%lagg0 22
Trying fe80::XXX:XXff:feda:5892...
telnet: connect to address fe80::XXX:XXff:feda:5892: Operation timed out
telnet: Unable to connect to remote host
root@whitedog:/etc # uname -a
FreeBSD whitedog.int.OURDOMAIN.com 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #44 r238602: Wed Jul 18 17:18:20 EDT 2012     root@beer.int.OURDOMAIN.com:/usr/obj/usr/src/sys/BLAH64  amd64
root@whitedog:/etc # ipfw -a list
00100  463  68374 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
00400    0      0 deny ip from any to ::1
00500    0      0 deny ip from ::1 to any
00600    0      0 allow ipv6-icmp from :: to ff02::/16
00700    5    336 allow ipv6-icmp from fe80::/10 to fe80::/10
00800    2    208 allow ipv6-icmp from fe80::/10 to ff02::/16
00900    0      0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000   41   2792 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65000 1716 167475 allow ip from any to any
65535    0      0 deny ip from any to any

From another system on the same subnet at the same time, though:

root@beer:/etc # telnet 10.0.27.15 22
Trying 10.0.27.15...
Connected to whitedog.int.OURDOMAIN.com.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
root@beer:/etc # telnet fc00::fafa:330 22
Trying fc00::fafa:330...
Connected to fc00::fafa:330.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
root@beer:/etc # telnet YYYY:YYYY:Y:11b::fafa:330 22
Trying YYYY:YYYY:Y:11b::fafa:330...
Connected to whitedog.int6.OURDOMAIN.com.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
root@beer:/etc # telnet fe80::XXX:XXff:feda:5892%lagg0 22
Trying fe80::XXX:XXff:feda:5892...
Connected to fe80::XXX:XXff:feda:5892%lagg0.
Escape character is '^]'.
SSH-1.99-OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
quit
Protocol mismatch.
Connection closed by foreign host.
Comment 1 Eitan Adler freebsd_committer freebsd_triage 2012-07-22 20:03:04 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-net

change synopsis and assign
Comment 2 Bjoern A. Zeeb freebsd_committer freebsd_triage 2012-07-22 21:33:04 UTC
Responsible Changed
From-To: freebsd-net->bz

Claim.  I am working on the bugfix.
Comment 3 Bjoern A. Zeeb freebsd_committer freebsd_triage 2012-07-22 21:36:42 UTC
Hi,

unless you are using a cxgb or cxgbe card, the work around temporary
is to do:
 	ifconfig lo0 -rxcsum6 -txcsum6

I am working on a proper fix.

-- 
Bjoern A. Zeeb                                 You have to have visions!
          Stop bit received. Insert coin for new address family.
Comment 4 Mike Andrews 2012-07-23 18:59:15 UTC
Workaround works, thanks :)
Comment 5 dfilter service freebsd_committer freebsd_triage 2012-07-28 21:31:54 UTC
Author: bz
Date: Sat Jul 28 20:31:39 2012
New Revision: 238871
URL: http://svn.freebsd.org/changeset/base/238871

Log:
  Hardcode the loopback rx/tx checkum options for IPv6 to on without
  checking. This allows the FreeBSD 9.1 release process to move forward.
  Work around the problem that loopback connections to local addresses
  not on loopback interfaces and not on interfaces w/ IPv6 checksum offloading
  enabled would not work.
  A proper fix to allow us to disable the "checksum offload" on loopback
  for testing, measurements, ... as we allow for IPv4 needs to put in
  place later.
  
  Reported by:	tuexen, Matthew Seaman (m.seaman infracaninophile.co.uk)
  Reported by:	Mike Andrews (mandrews bit0.com), kib, ...
  PR:		kern/170070
  MFC after:	1 day
  X-MFC after:	re approval

Modified:
  head/sys/net/if_loop.c

Modified: head/sys/net/if_loop.c
==============================================================================
--- head/sys/net/if_loop.c	Sat Jul 28 20:08:14 2012	(r238870)
+++ head/sys/net/if_loop.c	Sat Jul 28 20:31:39 2012	(r238871)
@@ -257,10 +257,20 @@ looutput(struct ifnet *ifp, struct mbuf 
 		m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES;
 		break;
 	case AF_INET6:
+#if 0
+		/*
+		 * XXX-BZ for now always claim the checksum is good despite
+		 * any interface flags.   This is a workaround for 9.1-R and
+		 * a proper solution ought to be sought later.
+		 */
 		if (ifp->if_capenable & IFCAP_RXCSUM_IPV6) {
 			m->m_pkthdr.csum_data = 0xffff;
 			m->m_pkthdr.csum_flags = LO_CSUM_SET;
 		}
+#else
+		m->m_pkthdr.csum_data = 0xffff;
+		m->m_pkthdr.csum_flags = LO_CSUM_SET;
+#endif
 		m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES6;
 		break;
 	case AF_IPX:
@@ -446,15 +456,29 @@ loioctl(struct ifnet *ifp, u_long cmd, c
 			ifp->if_capenable ^= IFCAP_RXCSUM;
 		if ((mask & IFCAP_TXCSUM) != 0)
 			ifp->if_capenable ^= IFCAP_TXCSUM;
-		if ((mask & IFCAP_RXCSUM_IPV6) != 0)
+		if ((mask & IFCAP_RXCSUM_IPV6) != 0) {
+#if 0
 			ifp->if_capenable ^= IFCAP_RXCSUM_IPV6;
-		if ((mask & IFCAP_TXCSUM_IPV6) != 0)
+#else
+			error = EOPNOTSUPP;
+			break;
+#endif
+		}
+		if ((mask & IFCAP_TXCSUM_IPV6) != 0) {
+#if 0
 			ifp->if_capenable ^= IFCAP_TXCSUM_IPV6;
+#else
+			error = EOPNOTSUPP;
+			break;
+#endif
+		}
 		ifp->if_hwassist = 0;
 		if (ifp->if_capenable & IFCAP_TXCSUM)
 			ifp->if_hwassist = LO_CSUM_FEATURES;
+#if 0
 		if (ifp->if_capenable & IFCAP_TXCSUM_IPV6)
 			ifp->if_hwassist |= LO_CSUM_FEATURES6;
+#endif
 		break;
 
 	default:
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 6 Bjoern A. Zeeb freebsd_committer freebsd_triage 2012-07-28 21:41:15 UTC
Hi,

I have committed a workaround for the problem to HEAD.  You can find
the patch to apply to stable/9 here:

 	http://people.freebsd.org/~bz/20120728-02.diff

In case someone from re@ wants to approve it; please just reply to me.
Everyone else at least CC: me and re.

In case you have previously applied the -rxcsum6 -txcsum6 workaround
you need to remove the from your startup script before rebooting!

PLease test as soon as you can as we'll merge it to stable/9 for
9.1-RC1 almost instantly most likely and it would be good to know if
it works for you as well.

Thanks a lot and dorry for the problems,
/bz


PS: this most likely does not yet fix the AH issue.   I'll be on that
in a minute but that's for after -RC1 unless RC1 will be further
delayed due to me:(

-- 
Bjoern A. Zeeb                                 You have to have visions!
          Stop bit received. Insert coin for new address family.


MFC r238871:

   Hardcode the loopback rx/tx checkum options for IPv6 to on without
   checking. This allows the FreeBSD 9.1 release process to move forward.
   Work around the problem that loopback connections to local addresses
   not on loopback interfaces and not on interfaces w/ IPv6 checksum offloading
   enabled would not work.
   A proper fix to allow us to disable the "checksum offload" on loopback
   for testing, measurements, ... as we allow for IPv4 needs to put in
   place later.

PR:		kern/170070

Index: sys
===================================================================
--- sys	(revision 238871)
+++ sys	(working copy)

Property changes on: sys
___________________________________________________________________
Modified: svn:mergeinfo
    Merged /head/sys:r238871
Index: sys/net/if_loop.c
===================================================================
--- sys/net/if_loop.c	(revision 238871)
+++ sys/net/if_loop.c	(working copy)
@@ -257,10 +257,20 @@ looutput(struct ifnet *ifp, struct mbuf *m, struct
  		m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES;
  		break;
  	case AF_INET6:
+#if 0
+		/*
+		 * XXX-BZ for now always claim the checksum is good despite
+		 * any interface flags.   This is a workaround for 9.1-R and
+		 * a proper solution ought to be sought later.
+		 */
  		if (ifp->if_capenable & IFCAP_RXCSUM_IPV6) {
  			m->m_pkthdr.csum_data = 0xffff;
  			m->m_pkthdr.csum_flags = LO_CSUM_SET;
  		}
+#else
+		m->m_pkthdr.csum_data = 0xffff;
+		m->m_pkthdr.csum_flags = LO_CSUM_SET;
+#endif
  		m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES6;
  		break;
  	case AF_IPX:
@@ -446,15 +456,29 @@ loioctl(struct ifnet *ifp, u_long cmd, caddr_t dat
  			ifp->if_capenable ^= IFCAP_RXCSUM;
  		if ((mask & IFCAP_TXCSUM) != 0)
  			ifp->if_capenable ^= IFCAP_TXCSUM;
-		if ((mask & IFCAP_RXCSUM_IPV6) != 0)
+		if ((mask & IFCAP_RXCSUM_IPV6) != 0) {
+#if 0
  			ifp->if_capenable ^= IFCAP_RXCSUM_IPV6;
-		if ((mask & IFCAP_TXCSUM_IPV6) != 0)
+#else
+			error = EOPNOTSUPP;
+			break;
+#endif
+		}
+		if ((mask & IFCAP_TXCSUM_IPV6) != 0) {
+#if 0
  			ifp->if_capenable ^= IFCAP_TXCSUM_IPV6;
+#else
+			error = EOPNOTSUPP;
+			break;
+#endif
+		}
  		ifp->if_hwassist = 0;
  		if (ifp->if_capenable & IFCAP_TXCSUM)
  			ifp->if_hwassist = LO_CSUM_FEATURES;
+#if 0
  		if (ifp->if_capenable & IFCAP_TXCSUM_IPV6)
  			ifp->if_hwassist |= LO_CSUM_FEATURES6;
+#endif
  		break;

  	default:
Comment 7 Michael Tuexen freebsd_committer freebsd_triage 2012-07-28 23:23:14 UTC
On Jul 28, 2012, at 10:41 PM, Bjoern A. Zeeb wrote:

> Hi,
>=20
> I have committed a workaround for the problem to HEAD.  You can find
> the patch to apply to stable/9 here:
>=20
> 	http://people.freebsd.org/~bz/20120728-02.diff
>=20
> In case someone from re@ wants to approve it; please just reply to me.
> Everyone else at least CC: me and re.
>=20
> In case you have previously applied the -rxcsum6 -txcsum6 workaround
> you need to remove the from your startup script before rebooting!
>=20
> PLease test as soon as you can as we'll merge it to stable/9 for
> 9.1-RC1 almost instantly most likely and it would be good to know if
> it works for you as well.
>=20
> Thanks a lot and dorry for the problems,
Hi Bjoern,

I did some SCTP testing and this fix works for me...

Best regards
Michael
> /bz
>=20
>=20
> PS: this most likely does not yet fix the AH issue.   I'll be on that
> in a minute but that's for after -RC1 unless RC1 will be further
> delayed due to me:(
>=20
> --=20
> Bjoern A. Zeeb                                 You have to have =
visions!
>         Stop bit received. Insert coin for new address family.
>=20
>=20
> MFC r238871:
>=20
>  Hardcode the loopback rx/tx checkum options for IPv6 to on without
>  checking. This allows the FreeBSD 9.1 release process to move =
forward.
>  Work around the problem that loopback connections to local addresses
>  not on loopback interfaces and not on interfaces w/ IPv6 checksum =
offloading
>  enabled would not work.
>  A proper fix to allow us to disable the "checksum offload" on =
loopback
>  for testing, measurements, ... as we allow for IPv4 needs to put in
>  place later.
>=20
> PR:		kern/170070
>=20
> Index: sys
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- sys	(revision 238871)
> +++ sys	(working copy)
>=20
> Property changes on: sys
> ___________________________________________________________________
> Modified: svn:mergeinfo
>   Merged /head/sys:r238871
> Index: sys/net/if_loop.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- sys/net/if_loop.c	(revision 238871)
> +++ sys/net/if_loop.c	(working copy)
> @@ -257,10 +257,20 @@ looutput(struct ifnet *ifp, struct mbuf *m, =
struct
> 		m->m_pkthdr.csum_flags &=3D ~LO_CSUM_FEATURES;
> 		break;
> 	case AF_INET6:
> +#if 0
> +		/*
> +		 * XXX-BZ for now always claim the checksum is good =
despite
> +		 * any interface flags.   This is a workaround for 9.1-R =
and
> +		 * a proper solution ought to be sought later.
> +		 */
> 		if (ifp->if_capenable & IFCAP_RXCSUM_IPV6) {
> 			m->m_pkthdr.csum_data =3D 0xffff;
> 			m->m_pkthdr.csum_flags =3D LO_CSUM_SET;
> 		}
> +#else
> +		m->m_pkthdr.csum_data =3D 0xffff;
> +		m->m_pkthdr.csum_flags =3D LO_CSUM_SET;
> +#endif
> 		m->m_pkthdr.csum_flags &=3D ~LO_CSUM_FEATURES6;
> 		break;
> 	case AF_IPX:
> @@ -446,15 +456,29 @@ loioctl(struct ifnet *ifp, u_long cmd, caddr_t =
dat
> 			ifp->if_capenable ^=3D IFCAP_RXCSUM;
> 		if ((mask & IFCAP_TXCSUM) !=3D 0)
> 			ifp->if_capenable ^=3D IFCAP_TXCSUM;
> -		if ((mask & IFCAP_RXCSUM_IPV6) !=3D 0)
> +		if ((mask & IFCAP_RXCSUM_IPV6) !=3D 0) {
> +#if 0
> 			ifp->if_capenable ^=3D IFCAP_RXCSUM_IPV6;
> -		if ((mask & IFCAP_TXCSUM_IPV6) !=3D 0)
> +#else
> +			error =3D EOPNOTSUPP;
> +			break;
> +#endif
> +		}
> +		if ((mask & IFCAP_TXCSUM_IPV6) !=3D 0) {
> +#if 0
> 			ifp->if_capenable ^=3D IFCAP_TXCSUM_IPV6;
> +#else
> +			error =3D EOPNOTSUPP;
> +			break;
> +#endif
> +		}
> 		ifp->if_hwassist =3D 0;
> 		if (ifp->if_capenable & IFCAP_TXCSUM)
> 			ifp->if_hwassist =3D LO_CSUM_FEATURES;
> +#if 0
> 		if (ifp->if_capenable & IFCAP_TXCSUM_IPV6)
> 			ifp->if_hwassist |=3D LO_CSUM_FEATURES6;
> +#endif
> 		break;
>=20
> 	default:
>=20
Comment 8 dfilter service freebsd_committer freebsd_triage 2012-07-29 00:11:21 UTC
Author: bz
Date: Sat Jul 28 23:11:09 2012
New Revision: 238876
URL: http://svn.freebsd.org/changeset/base/238876

Log:
  MFC r238871:
  
    Hardcode the loopback rx/tx checkum options for IPv6 to on without
    checking. This allows the FreeBSD 9.1 release process to move forward.
    Work around the problem that loopback connections to local addresses
    not on loopback interfaces and not on interfaces w/ IPv6 checksum offloading
    enabled would not work.
    A proper fix to allow us to disable the "checksum offload" on loopback
    for testing, measurements, ... as we allow for IPv4 needs to put in
    place later.
  
  PR:		kern/170070
  Approved by:	re (kib)

Modified:
  stable/9/sys/net/if_loop.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/net/if_loop.c
==============================================================================
--- stable/9/sys/net/if_loop.c	Sat Jul 28 22:42:52 2012	(r238875)
+++ stable/9/sys/net/if_loop.c	Sat Jul 28 23:11:09 2012	(r238876)
@@ -257,10 +257,20 @@ looutput(struct ifnet *ifp, struct mbuf 
 		m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES;
 		break;
 	case AF_INET6:
+#if 0
+		/*
+		 * XXX-BZ for now always claim the checksum is good despite
+		 * any interface flags.   This is a workaround for 9.1-R and
+		 * a proper solution ought to be sought later.
+		 */
 		if (ifp->if_capenable & IFCAP_RXCSUM_IPV6) {
 			m->m_pkthdr.csum_data = 0xffff;
 			m->m_pkthdr.csum_flags = LO_CSUM_SET;
 		}
+#else
+		m->m_pkthdr.csum_data = 0xffff;
+		m->m_pkthdr.csum_flags = LO_CSUM_SET;
+#endif
 		m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES6;
 		break;
 	case AF_IPX:
@@ -446,15 +456,29 @@ loioctl(struct ifnet *ifp, u_long cmd, c
 			ifp->if_capenable ^= IFCAP_RXCSUM;
 		if ((mask & IFCAP_TXCSUM) != 0)
 			ifp->if_capenable ^= IFCAP_TXCSUM;
-		if ((mask & IFCAP_RXCSUM_IPV6) != 0)
+		if ((mask & IFCAP_RXCSUM_IPV6) != 0) {
+#if 0
 			ifp->if_capenable ^= IFCAP_RXCSUM_IPV6;
-		if ((mask & IFCAP_TXCSUM_IPV6) != 0)
+#else
+			error = EOPNOTSUPP;
+			break;
+#endif
+		}
+		if ((mask & IFCAP_TXCSUM_IPV6) != 0) {
+#if 0
 			ifp->if_capenable ^= IFCAP_TXCSUM_IPV6;
+#else
+			error = EOPNOTSUPP;
+			break;
+#endif
+		}
 		ifp->if_hwassist = 0;
 		if (ifp->if_capenable & IFCAP_TXCSUM)
 			ifp->if_hwassist = LO_CSUM_FEATURES;
+#if 0
 		if (ifp->if_capenable & IFCAP_TXCSUM_IPV6)
 			ifp->if_hwassist |= LO_CSUM_FEATURES6;
+#endif
 		break;
 
 	default:
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 9 Mike Andrews 2012-07-31 00:19:11 UTC
On 7/28/2012 4:41 PM, Bjoern A. Zeeb wrote:
> Hi,
>
> I have committed a workaround for the problem to HEAD.  You can find
> the patch to apply to stable/9 here:
>
>     http://people.freebsd.org/~bz/20120728-02.diff
>
> In case someone from re@ wants to approve it; please just reply to me.
> Everyone else at least CC: me and re.
>
> In case you have previously applied the -rxcsum6 -txcsum6 workaround
> you need to remove the from your startup script before rebooting!
>
> PLease test as soon as you can as we'll merge it to stable/9 for
> 9.1-RC1 almost instantly most likely and it would be good to know if
> it works for you as well.
>
> Thanks a lot and dorry for the problems,
> /bz


Since I saw a commit to stable/9 I went ahead and updated and tried it, 
and it seems to work for me.
Comment 10 Bjoern A. Zeeb freebsd_committer freebsd_triage 2012-08-06 01:14:12 UTC
State Changed
From-To: open->suspended

The workaround has been merged;   thanks a lto for reporting and 
testing;  I leave the PR in suspended to not forget to cleanly 
fix it eventually.
Comment 11 Bjoern A. Zeeb freebsd_committer freebsd_triage 2014-05-18 05:58:27 UTC
Responsible Changed
From-To: bz->gnn

I shall not use bugzilla (at least until we will have a CLI).
Comment 12 Eitan Adler freebsd_committer freebsd_triage 2018-05-28 19:44:26 UTC
batch change:

For bugs that match the following
-  Status Is In progress 
AND
- Untouched since 2018-01-01.
AND
- Affects Base System OR Documentation

DO:

Reset to open status.


Note:
I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.
Comment 13 Mike Andrews 2018-05-29 01:01:22 UTC
From my perspective (as the original submitter) yes, I'd consider it closed for years.

Some of the other commenters hinted that they wanted to apply a better fix later.  Not sure if that ever happened in the last six years; you'd have to ask them.
Comment 14 Oleksandr Tymoshenko freebsd_committer freebsd_triage 2019-01-20 01:26:18 UTC
There was a commit referencing this bug, but it's still not closed and has been inactive for some time. Closing as fixed. Please re-open it if the issue hasn't been completely resolved.