Subject: kern/27277: gif ip6/ip6 broken by USE_RADIX
To: None <gnats-bugs@gnats.NetBSD.org>
From: Manuel Bouyer <bouyer@rp.lip6.fr>
List: netbsd-bugs
Date: 10/16/2004 23:16:28
>Number:         27277
>Category:       kern
>Synopsis:       gif ip6/ip6 broken by USE_RADIX
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 16 21:12:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Manuel Bouyer
>Release:        NetBSD 2.0_RC4
>Organization:
LIP6, Universite Paris VI
>Environment:
System: NetBSD diogene.ipv6.lip6.fr 2.0_RC4 NetBSD 2.0_RC4 (GENERIC) #4: Sat Oct 16 23:00:33 CEST 2004  bouyer@pop.lip6.fr:/local/pop1/bouyer/tmp/i386/obj/local/pop1/bouyer/netbsd-2-0/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
	A gif ip6 in ip6 tunnel isn't functionnal. A tcpdump on the physical
	interface shows that packets are properly sent, but packets from the
	remote end are ignored, and a "icmp6: parameter problem next header -
	octet 6" packet is sent back to the remote end.

	I tracked this down to encap6_lookup() not finding a struct encaptab
	for the packet. More specifically, rnh_matchaddr() doesn't find a
	match for the packet. #undef'ing USE_RADIX in netinet/ip_encap.c makes
	gif work again. I didn't debug this further as I'm working remotely
	on this system, without console access.
	gif configuration available on request (I don't want to post these
	adresses to a public list).

>How-To-Repeat:
	Configure a ip6 in ip6 GIF tunnel
>Fix:
	workaround:
	vi netinet/ip_encap.c
	:1,$s/define USE_RADIX/undef USE_RADIX/
	:x

	and rebuild kernel.
>Release-Note:
>Audit-Trail:
>Unformatted: