From mandrews@fark.com  Sun Jul 22 18:45:25 2012
Return-Path: <mandrews@fark.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 25BB8106564A
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 22 Jul 2012 18:45:25 +0000 (UTC)
	(envelope-from mandrews@fark.com)
Received: from ssl.fark.com (puregrain.fark.com [64.191.172.46])
	by mx1.freebsd.org (Postfix) with ESMTP id E25ED8FC16
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 22 Jul 2012 18:45:24 +0000 (UTC)
Received: from beer.int.fark.com (localhost [127.0.0.1])
	by ssl.fark.com (Postfix) with ESMTP id 37BEE188F1
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 22 Jul 2012 14:30:12 -0400 (EDT)
Received: from ssl.fark.com ([127.0.0.1])
	by beer.int.fark.com (beer.int.fark.com [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id Jbpa7xGzCgdr for <FreeBSD-gnats-submit@freebsd.org>;
	Sun, 22 Jul 2012 14:30:09 -0400 (EDT)
Received: from whitedog.int.fark.com (whitedog.int.fark.com [172.27.27.15])
	by ssl.fark.com (Postfix) with ESMTP
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 22 Jul 2012 14:30:09 -0400 (EDT)
Received: by whitedog.int.fark.com (Postfix, from userid 1001)
	id 9007695A7; Sun, 22 Jul 2012 14:30:09 -0400 (EDT)
Message-Id: <20120722183009.9007695A7@whitedog.int.fark.com>
Date: Sun, 22 Jul 2012 14:30:09 -0400 (EDT)
From: Mike Andrews <mandrews@bit0.com>
Reply-To: Mike Andrews <mandrews@bit0.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: 9.1-PRERELEASE host cannot talk to itself over IPv6 (except on loopback)
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         170070
>Category:       kern
>Synopsis:       [regression] 9.1-PRERELEASE host cannot talk to itself over IPv6 (except on loopback)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    gnn
>State:          suspended
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 22 18:50:03 UTC 2012
>Closed-Date:    
>Last-Modified:  Sun May 18 04:59:03 UTC 2014
>Originator:     Mike Andrews
>Release:        FreeBSD 9.1-PRERELEASE amd64
>Organization:
Fark, Inc
>Environment:

	Multiple amd64 systems w/ multiple NICs

>Description:

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....

>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.

>Fix:

Revert kernel to r236963 or to IPv4.
I have not yet narrowed down further the specific revision that breaks this.

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-net 
Responsible-Changed-By: eadler 
Responsible-Changed-When: Sun Jul 22 19:03:04 UTC 2012 
Responsible-Changed-Why:  
change synopsis and assign 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170070 
Responsible-Changed-From-To: freebsd-net->bz 
Responsible-Changed-By: bz 
Responsible-Changed-When: Sun Jul 22 20:33:04 UTC 2012 
Responsible-Changed-Why:  
Claim.  I am working on the bugfix. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170070 

From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
To: bug-followup@FreeBSD.org, mandrews@bit0.com
Cc:  
Subject: Re: kern/170070: [regression] 9.1-PRERELEASE host cannot talk to
 itself over IPv6 (except on loopback)
Date: Sun, 22 Jul 2012 20:36:42 +0000 (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.

From: Mike Andrews <mandrews@bit0.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/170070: [regression] 9.1-PRERELEASE host cannot talk to
 itself over IPv6 (except on loopback)
Date: Mon, 23 Jul 2012 13:59:15 -0400

 Workaround works, thanks :)

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/170070: commit references a PR
Date: Sat, 28 Jul 2012 20:31:54 +0000 (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"
 

From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
To: bug-followup@FreeBSD.org, mandrews@bit0.com, 
    Robert Faulds <frf@xocolatl.com>, 
    Matthew Seaman <m.seaman@infracaninophile.co.uk>
Cc: Michael Tuexen <tuexen@FreeBSD.org>, 
    FreeBSD Release Engineering Team <re@FreeBSD.org>
Subject: Re: kern/170070: [regression] 9.1-PRERELEASE host cannot talk to
 itself over IPv6 (except on loopback)
Date: Sat, 28 Jul 2012 20:41:15 +0000 (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:

From: Michael Tuexen <tuexen@FreeBSD.org>
To: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Cc: bug-followup@FreeBSD.org,
 mandrews@bit0.com,
 Robert Faulds <frf@xocolatl.com>,
 Matthew Seaman <m.seaman@infracaninophile.co.uk>,
 FreeBSD Release Engineering Team <re@FreeBSD.org>
Subject: Re: kern/170070: [regression] 9.1-PRERELEASE host cannot talk to itself over IPv6 (except on loopback)
Date: Sun, 29 Jul 2012 00:23:14 +0200

 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
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/170070: commit references a PR
Date: Sat, 28 Jul 2012 23:11:21 +0000 (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"
 

From: Mike Andrews <mandrews@bit0.com>
To: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Cc: bug-followup@FreeBSD.org, Robert Faulds <frf@xocolatl.com>, 
 Matthew Seaman <m.seaman@infracaninophile.co.uk>,
 Michael Tuexen <tuexen@FreeBSD.org>, 
 FreeBSD Release Engineering Team <re@FreeBSD.org>
Subject: Re: kern/170070: [regression] 9.1-PRERELEASE host cannot talk to
 itself over IPv6 (except on loopback)
Date: Mon, 30 Jul 2012 19:19:11 -0400

 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.
State-Changed-From-To: open->suspended 
State-Changed-By: bz 
State-Changed-When: Mon Aug 6 00:14:12 UTC 2012 
State-Changed-Why:  
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. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170070 
Responsible-Changed-From-To: bz->gnn 
Responsible-Changed-By: bz 
Responsible-Changed-When: Sun May 18 04:58:27 UTC 2014 
Responsible-Changed-Why:  
I shall not use bugzilla (at least until we will have a CLI). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170070 
>Unformatted:
