			CHANGELOG for KAME kit
$KAME: CHANGELOG,v 1.2610 2004/05/23 16:13:32 suz Exp $

<200405>
2004-05-23  SUZUKI, Shinsuke  <suz@crl.hitachi.co.jp>
	* kame/kame/pim6sd/mld6v2_proto.c: don't send MLDv1 Query even 
	  in MLDv1-compat mode to prevent MLDv2 hosts from unnecessarily 
	  shifting to MLDv1-compatible mode (see draft-vida-mld-v2-08.txt 
	  section 8.3.2 p.47)
	* kame/kame/pim6sd/mld6v2_proto.c: don't send MLDv2 General Query 
	  when it is not a querier.

2004-05-20  SUZUKI, Shinsuke  <suz@crl.hitachi.co.jp>
	* freebsd5: sync with FreeBSD 5.2.1-RELEASE.
	  ToDo: 
		- reflect changes by FreeBSD community into KAME repository
		- test ...
		- additional features like ALTQ, MIP6, SSM, ...

2004-05-19  SUZUKI, Shinsuke  <suz@crl.hitachi.co.jp>
	* kame/kame/pim6sd/route.c: fixed a bug that (*,G) entry is not 
	created at RP router when the RP address is specified in static-rp 
	configuration.

	* kame/kame/pim6sd/rp.c: fixed a bug that (*,G) entry is not created
	with static-rp configuration once PIM neighboring goes down and up 
	toward RP.

2004-05-19  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/nd6.c (nd6_output): simply returned an error
	if rtalloc1() provided a route to an unexpected interface.
	Based on a discussion for KAME PR 615 with Luigi Rizzo.

2004-05-18  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* {net,open}bsd/include/netdb.h (AI_ADDRCONFIG): defined the flag.

2004-05-16  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* *bsd/include/netdb.h: added a new error code EAI_OVERFLOW
	defined in RFC3493.
	* kame/kame/libinet6/getaddrinfo.c: supported EAI_OVERFLOW in
	gai_strerror().
	* kame/kame/libinet6/getnameinfo.c: use EAI_OVERFLOW (instead of
	EAI_MEMORY) for the error of short buffers.

2004-05-14  SUZUKI, Shinsuke  <suz@crl.hitachi.co.jp>
	* kame/kame/pim6sd/mldv2_proto.c: receives MLDv2 TO_EX{NULL} report
	properly.

2004-05-14  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/dhcp6: added a set of bug fixes and cleanups based on
	comments and patches from Hiro Muraji:
	- avoided casting when pointers can be unnaturally aligned,
	  for alignment sensitive architectures
	- fixed the bug that IA_PD sub options were not correctly
	  recognized when more than one option was provided
	- fixed the bug that dhcp6s could crash when three or more
	  domain-name(-servers) were specified in separate option statements.
	- dropped DHCPv6 packets when IA_PD_PREFIX appears outside of
	  IA_PD (this seems to be a saner behavior)
	- corrected some log message formats

<200404>
2004-04-27  SUZUKI, Shinsuke  <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/in6_msf.c: fixed an IPv6 per-interface MSF 
	calculation failure when MSF is in EXCLUDE mode

2004-04-22  SUZUKI, Shinsuke  <suz@crl.hitachi.co.jp>
	* kame/sys/netinet/in_msf.c, kame/sys/netinet6/in6_msf.c: silently
	ignore an advanced MSF-API call (instead of returning EINVAL) when
	the requested MSF is same as the one stored in kernel.

2004-04-21  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/ip6_output.c (ip6_ctloutput): simplified the
	fix to FreeBSD-SA-04:06.ipv6 (merged from FreeBSD to KAME on
	040406).  The previous one worried too much about parameters even
	though we actually validate them in subroutines.  This code also
	is more compatible with other *BSDs, which do copyin within
	setsockopt().

2004-04-20  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/icmp6.c: ICMPv6 packets regarding multicast 
	routing (e.g. MLDv1 report) shouldn't be a target of MSF, although
	draft-vida-mld-v2-08.txt says only MLDv2 is such exception.
	(otherwise multicast routing process cannot receive such packets,
	 which prevents it from shifting to MLDv1-compatible-mode)

2004-04-20  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/mldv2.c: fixed a MLDv2-enabled freebsd[45] kernel 
	crash due to an improper termincation of layer2 multicast listening.
	(ToDo: same fix is necesary for freebsd[45]/sys/netinet/in.c)

2004-04-18  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/kame/pim6sd/{vif.c, mld6.[ch]}, kame/sys/netinet6/in6.h:
	All MLDv2-capable routers multicast address has been officially assigned
	as "ff02::16"

2004-04-18  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/libinet6/getaddrinfo.c (explore_numeric): re-enabled
	the special case for AF_INET (use inet_aton instead of inet_pton)
	as required in RFC3493.  getaddrinfo now accepts the "classful"
	form of IPv4 addresses.

2004-04-17  kjc@csl.sony.co.jp
	* kame/sys/altq/
	build altq under freebsd5-current.
	submitted by Max Laier <max@love2party.net>

2004-04-16  Shin'ichi Fujisawa  <fujisawa@kame.net>
	* freebsd4/sys/netinet/ip_input.c:
	* kame/sys/netinet6/natpt_trans.c:
	- Fixed a compile error when you enable a NATPT/NATPT-NAT kernel
	  option.

2004-04-15  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet/icmp6.h: ICMPv6 Type number of MLDv2-Listener-
	REPORT has been changed to the official one (=143)! 

2004-04-13  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/libinet6/getaddrinfo.c (getaddrinfo): clean-up:
	removed the definition of the AI_V4MAPPED and AI_ALL flags (when
	they are defined), and removed incomplete support for the flags.

2004-04-13  itojun
	* kame/kame/libinet6/getaddrinfo.c (getaddrinfo): added support
	for the AI_NUMERICSERV flag.

2004-04-10  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/libinet6/getaddrinfo.c (reorder): made sure to call
	set_source() to set the source address information for each
	candidate of destination.  This was lost by accident in April
	2003, and the destination address ordering has been incomplete
	since then.

Thu Apr  8 14:41:22 JST 2004 sakane@kame.net
	* kame/kame/racoon/proposal.c:
	fixed the EXACT mode to compare the proposals.  the lifetime in phase2
	did not work in the case of EXACT mode.

2004-04-06  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/ip6_output.c, kame/sys/netinet/ip6.h
	  FreeBSD Security Advisory: FreeBSD-SA-04:06.ipv6

2004-04-04  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/freebsd5: makes it compilable.

Fri Apr  2 17:35:45 JST 2004 sakane@kame.net
	* kame/sys/netkey/key.c:
	fixed that a memory leak happend in the case that the compile
	option, IPSEC_DOSEQCHECK was defined and called key_update().

Fri Apr  2 16:27:00 JST 2004 sakane@kame.net
	* kame/kame/tcpdump/print-isakmp.c:
	fixed that there was a possibility tcpdump(8) fell into infinite loop. 
	and the problem was at print-isakmp.c, so racoon also fell into it
	when the debug option was used.

2004-04-02  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* *bsd*/sys/netinet/udp_usrreq.c, kame/sys/netinet/in_msf.[ch]
	code cleanup: uses a per-socket/interface MSF-check 
	function for IPv4 and IPv6 (essentially same as my patch committed 
	on Feb 6 2004)

2004-04-02  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* freebsd[45]/sys/netinet/igmp.c
	fixed a freebsd-specific bug that IGMPv3 Query is ignored, due to 
	a endian problem within kernel.
	ToDo: code refinement to share IGMPv3 codes among *BSDs.

<200403>
Mar 31 JST 2004  itojun@iijlab.net
	* *bsd*/sys/netinet*/udp*_usrreq.c: forbid IPv6 UDP packet without
	  checksum.  found by keiichi@kame.net

Wed Mar 31 15:47:19 JST 2004 sakane@kame.net
	* kame/kame/racoon/isakmp.c:
	fixed a critical bug in the case of FreeBSD.  racoon will reject
	the packet in which the value of the length field is too big.
	however the problem is due to malloc(3) of FreeBSD.

2004-03-29  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* freebsd[45]/sys/netinet/in.c, kame/sys/netinet6/mldv2.c
	fixed a kernel crash when an IGMPv3/MLDv2 Advanced-API function
	is used. (specific to IGMPv3/MLDv2-ready freebsd[45] kernel)

2004-03-21  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/dhcp6: added experimental support for the lifetime
	option based on draft-ietf-dhc-lifetime-00.txt.  dhcp6c now
	restarts information-request/reply exchanges when it has received
	the option and the lifetime expires.

2004-03-19  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/kame/mld6query: to receive an MLD report for any group, 
	it behaves like an IPv6 multicast daemon, instead of joining to ::.
	If cannot, just transmits MLDv1 Queries.

2004-03-17  MOMOSE Tsuyoshi  <momose@az.jp.nec.com>
	* dest6.c: A Binding Error against a packet including an invalid 
	home address is sent only when the packet is not Binding Update.
	This problem was found by the v6pc conformance test tool and fixed 
	with help by Noriko Mizusawa <mizusawa@mitaka.ntt-at.co.jp> in the
	team.

Wed Mar 17 08:47:58 JST 2004  itojun@iijlab.net
	* netbsd: switch to 1.6.2

2004-03-16  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/{ip6_output.c, mldv2.c, in6_msf.c, in_msf.h}:
	IGMPv3/MLDv2 is revived!

2004-03-14  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* freebsd4/sys/kern/uipc_syscalls.c (sockargs): allow more than
	MLEN bytes for ancillary data to meet the requirement in Section
	20.1 of RFC3542.  (Still not large enough though, because the new
	upper limit is MCLBYTES).

2004-03-13  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/mld6.c (mld_input): use a local sockaddr_in6
	structure to match multicast addresses in order to handle
	multicast scope correctly.
	In response to a report from Kentarou.Oohara@jp.yokogawa.com.

2004-03-12  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/nd6.c (nd6_output): fixed overkilling about
	the "dst" argument to this function.  The caller side were fixed
	accordingly.  This change also contains a bug fix about incorrect
	arguments to rtalloc1().

2004-03-12  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/ip6_output. (ip6_output): recovered some
	features related address scope lost for a while:
	- use scope6_check_id() for the first hop of a routing header in
	  case the default scope zone is specified and the 1st hop is a
	  scoped address.
	- recovered scope zone boundary check in ip6_output().  Without
	  this, an application can originate a packet that breaks the
	  scope boundary for the source or destination address.

2004-03-10  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet/icmp6.h (MLD_LISTENER_REDUCTION): defined
	as an alias of MLD_LISTENER_DONE to be compliant to RFC3542.

2004-03-10  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/ip6_mroute.c (ip6_mdq): recovered scope zone
	check.

2004-03-10  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/icmp6.c (icmp6_reflect): made sure to provide
	a valid sockaddr_in6 structure with regards to scope zone.  With
	the previous code, multicasted echo requests were not properly
	responded.  Additionally, a forwarding node could not return an
	ICMPv6 error if the source of the erroneous packet was link-local.

2004-03-10  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/ip6_forward.c (ip6_forward): recovered scope
	zone boundary check for the destination address.

2004-03-09  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/ip6_output.c (ip6_setmoptions): disallowed the
	use of the unspecified address for IPV6_JOIN_GROUP and
	IPV6_LEAVE_GROUP.  The special case is not documented in the
	official API specification, and for whatever purpose, this should
	actually have not been working for a long time.

2004-03-04  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* freebsd4/sys/netinet/tcp*.c:
	  FreeBSD Security Advisory: FreeBSD-SA-04:04.tcp

<200402>
2004-02-28  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/ip6_output.c (ip6_setmoptions): explicitly
	handle the case where a non-0 interface index points to a NULL
	ifp in the process of IPV6_LEAVE_GROUP.

Fri Feb 20 03:00:51 JST 2004  itojun@iijlab.net
	* kame/sys/netinet6/ipsec.c: implement ipcomp tunnel mode (outbound)
	  for IPv6.  inbound processing is not implemented yet.

2004-02-17  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/icmp6.c, ip6_input.c,
	  freebsd4/sys/netinet6/raw_ip6.c: applies per-socket MSF at
	  ICMPv6 layer, instead of IPv6 layer, to stop rejecting
	  MLDv2 Group/Source-Group-Specific Queries. 
	  (ToDo: *BSDs, IGMPv3, confirm behaviour...)

2004-02-14  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/ifmcstat/ifmcstat.c (in[6]_multientry): avoid
	inserting redundant blank lines.

2004-02-13  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* freebsd4/sys/netinet6/in6_pcb.c (in6_setsockaddr):
	* freebsd4/sys/netinet6/in6_pcb.c (in6_setpeeraddr):
	corrected the behavior of these functions for scoped addresses
	(had been buggy for a very short period).

2004-02-13  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/ping6/ping6.c (pr_pack): printed the arriving
	interface index explicitly with the -v option, instead of setting
	sin6_scope_id to the index automatically (the latter is not always
	correct).

2004-02-13  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/icmp6.c (icmp6_error2): introduced as a
	wrapper for icmp6_error() to recover lost scope zone information
	(if any).  This also fixed a recent bug that an ICMPv6 error when
	ND failed cannot be returned for a scoped destination.

2004-02-13  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/icmp6.c (icmp6_reflect): fixed a very recent
	bug that source address selection did not check the correct
	address.

Fri Feb 13 12:03:32 JST 2004	keiichi@iij.ad.jp
	draft-ietf-mip6-mipext-advapi-00 support.

2004-02-06  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* freebsd[45]/sys/kern/sysv_shm.c: 
	  FreeBSD Security Advisory: FreeBSD-SA-04:02.shmat

2004-02-06  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/in6_msf.[ch]
	  freebsd4/sys/netinet6/udp6_usrreq.c: implemented per-socket/interface
	  MSF-check functions, instead of embedding in UDP layer.

2004-02-05  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/{in6.c, mld6.c, mldv2.c}: creates mldv2.c to
	  concentrate almost all the MLDv2-related functions on this file
	  (just for maintenance convenience); mld6.c or mldv2.c are used 
	  exclusively depending on your kernel configuration.

	* kame/sys/netinet6/{in6_ifattach.c, in6_msf.c, in6_var.h,
	  ip6_output.c, nd6.c}: renamed MLDv2-ready in6_multi manupulation
	  functions to reduce the number of 'ifdef MLDV2'

Tue Feb  3 16:26:08 JST 2004  itojun@iijlab.net
	* sys: move away from in6_{get,set}pktaddrs framework, go back to
	  embedded scopeid in s6_addr16[1].  this is to make *BSD merge easier.

	  for now MLDv2, MIP6, SCTP, DCCP, non-netbsd are broken.

2004-02-02  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/sys/netinet6/in6_msf.[ch], ip6_output.c: sync with 
	mldv2-20031021 to prohibit improper MSF delta-API call.

2004-02-01  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/kame/mcastread/mcastread.c (get_socket): set the
	SO_REUSEPORT option for the receiving socket so that multiple
	processes on a node can run this program for the same group and
	port.

<200401>
2004-01-26  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* kame/sys/netinet6/mld6.c (mld6_input):
	* kame/kame/pim6sd/mld6.c (accept_mld6):
	discard MLD packets with the unspecified source address as
	specified in RFC3590.

Jan 2004  itojun@iijlab.net
	* sctp patch #17

	1) Changes the hb random number to 64 bit value.
	2) Expands the protection of when a peer sends a ACK
	   for a TSN we have not sent we abort. This used to
	   only be the cum-ack. It now expands to include out
	   of order segments.
	3) Reverse the order of test for shutdown-rcv vs shutdown_pending.
	   M Tuexen found that we would get a shutdown, the app close the
	   socket, and then we would send SHUTDOWN instead of SHUTDOWN-ACK when
	   the queue cleared.
	4) TCP model enhancment to obey so_qlimit - found by Marko Lindholm
	5) IN_MULTICAST in Open and Net BSD do NOT need ntohl() - found by
	   Marko Lindholm
	6) More enhancment of base freebsd port for the effort to get to M
	   Tuexen something
	   that can get into Max X
	7) Alternate route is deleted and becomes a patch from the sctp.org web
	   site.
	8) Kozuka-san's enhancment to TCP model association lookup.
	9) SOme more FreeBSD version 5 stuff.

	* sctp: fix misuse of "int" where "u_int32_t" is required
	* sctp: portability issue w/ freebsd (timersub/add/cmp)

	* sctp patch #18

	1) Add (in addtion to your changes) the htonl()
	2) Missed patch you have not gotten to with same int/u_int32_t issue
	3) Patches from peter adding to BASE_FREEBSD port code.
	4) Patches for OpenBSD ... a compile issue with 3.4 caught by
	   Kozuka-san

Sat Jan 24 18:18:27 JST 2004	keiichi@iij.ad.jp
	* kame/sys/net/if_hif.[hc], kame/sys/netinet6/mip6_icmp6.c
	made a mobile node send a mobile prefix solicitation message
	when it receives an unsolicited mobile prefix adv message.
	detected by the v6pc certification WG test suite.

Sat Jan 24 18:15:08 JST 2004	keiichi@iij.ad.jp
	* kame/sys/netinet6/mip6_mncore.c
	- made a mobile node send a mobile prefix solicitation message
	  when it receives a binding ack message with status code 1.
	- made a mobile node send a home registration message before
	  the current binding expires even when a refresh interval
	  is not explicitly specified by its home agent.
	detected by the v6pc certification WG test suite.

2004-01-23  MOMOSE Tsuyoshi  <momose@momose.org>
	* mip6control:
	Add a new option '-N' to show the list of nounces that a host 
	maintains as a correspondent node.

2004-01-22  MOMOSE Tsuyoshi  <t-momose@netlab.nec.co.jp>
	* kame/kame/had/haadic.c:
	A global home agent address is registerred even
	if on-link flag in a prefix information option
	isn't set. The problem is found and discussed at
	the 5th TAHI introp test event.

2004-01-20  SUZUKI, Shinsuke <suz@crl.hitachi.co.jp>
	* kame/kame/dhcp6
	supported DHCPv6 option for SIP servers (RFC3319).

Mon Jan 19 16:15:48 JST 2004	keiichi@iij.ad.jp
	* kame/sys/netinet6/dest6.c
	send a binding error message when CN receives a home
	address option which includes an inappropriate address.
	detected by the v6pc certification WG test suite.

Mon Jan 19 16:14:14 JST 2004	keiichi@iij.ad.jp
	* kame/sys/netinet6/mip6_hacore.c:
	convert ICMPv6 time exceeded to address unreachable, when
	receiving an error packet from Mobile IPv6 tunnel interface.
	detected by the v6pc certification WG test suite.

Fri Jan 16 JST 2004  itojun@iijlab.net
	* racoon/isakmp_inf.c: validation of hash payload was missing.
	  code from IIJ SEIL team.  [attack script is in public knowledge,
	  users of racoon must upgrade]

Tue Jan 13 13:06:53 JST 2004  itojun@iijlab.net
	* sys/netinet6/ipsec.c: spelling and memory leak fix.
	  from Bjoern A. Zeeb.

Mon Jan  4 JST 2004  itojun@iijlab.net
	* rtsold: remove pidfile creation, pid was needed only for debugging
	  purposes.
