Subject: CVS commit: src
To: None <source-changes@NetBSD.org>
From: Rui Paulo <rpaulo@netbsd.org>
List: source-changes
Date: 01/21/2006 00:15:37
Module Name:	src
Committed By:	rpaulo
Date:		Sat Jan 21 00:15:37 UTC 2006

Modified Files:
	src/sys/net: if_spppsubr.c
	src/sys/netinet: icmp6.h udp_usrreq.c
	src/sys/netinet6: ah_core.c files.netinet6 icmp6.c in6.c in6.h
	    in6_cksum.c in6_ifattach.c in6_pcb.c in6_src.c in6_var.h
	    ip6_forward.c ip6_input.c ip6_mroute.c ip6_output.c ip6_var.h
	    ipsec.c mld6.c nd6.c nd6_nbr.c nd6_rtr.c raw_ip6.c route6.c
	    udp6_output.c udp6_usrreq.c
	src/sys/netkey: key.c
	src/sys/sys: mbuf.h
	src/usr.sbin/ndp: ndp.c
Added Files:
	src/sys/netinet6: scope6.c scope6_var.h

Log Message:
Better support of IPv6 scoped addresses.

- most of the kernel code will not care about the actual encoding of
  scope zone IDs and won't touch "s6_addr16[1]" directly.
- similarly, most of the kernel code will not care about link-local
  scoped addresses as a special case.
- scope boundary check will be stricter.  For example, the current
  *BSD code allows a packet with src=::1 and dst=(some global IPv6
  address) to be sent outside of the node, if the application do:
    s = socket(AF_INET6);
    bind(s, "::1");
    sendto(s, some_global_IPv6_addr);
  This is clearly wrong, since ::1 is only meaningful within a single
  node, but the current implementation of the *BSD kernel cannot
  reject this attempt.
- and, while there, don't try to remove the ff02::/32 interface route
  entry in in6_ifdetach() as it's already gone.

This also includes some level of support for the standard source
address selection algorithm defined in RFC3484, which will be
completed on in the future.

From the KAME project via JINMEI Tatuya.
Approved by core@.


To generate a diff of this commit:
cvs rdiff -r1.86 -r1.87 src/sys/net/if_spppsubr.c
cvs rdiff -r1.32 -r1.33 src/sys/netinet/icmp6.h
cvs rdiff -r1.145 -r1.146 src/sys/netinet/udp_usrreq.c
cvs rdiff -r1.38 -r1.39 src/sys/netinet6/ah_core.c
cvs rdiff -r1.3 -r1.4 src/sys/netinet6/files.netinet6
cvs rdiff -r1.112 -r1.113 src/sys/netinet6/icmp6.c
cvs rdiff -r1.94 -r1.95 src/sys/netinet6/in6.c
cvs rdiff -r1.50 -r1.51 src/sys/netinet6/in6.h
cvs rdiff -r1.17 -r1.18 src/sys/netinet6/in6_cksum.c
cvs rdiff -r1.62 -r1.63 src/sys/netinet6/in6_ifattach.c
cvs rdiff -r1.68 -r1.69 src/sys/netinet6/in6_pcb.c \
    src/sys/netinet6/ip6_mroute.c
cvs rdiff -r1.22 -r1.23 src/sys/netinet6/in6_src.c \
    src/sys/netinet6/udp6_output.c
cvs rdiff -r1.40 -r1.41 src/sys/netinet6/in6_var.h
cvs rdiff -r1.46 -r1.47 src/sys/netinet6/ip6_forward.c
cvs rdiff -r1.80 -r1.81 src/sys/netinet6/ip6_input.c
cvs rdiff -r1.93 -r1.94 src/sys/netinet6/ip6_output.c
cvs rdiff -r1.34 -r1.35 src/sys/netinet6/ip6_var.h
cvs rdiff -r1.105 -r1.106 src/sys/netinet6/ipsec.c
cvs rdiff -r1.28 -r1.29 src/sys/netinet6/mld6.c
cvs rdiff -r1.95 -r1.96 src/sys/netinet6/nd6.c
cvs rdiff -r1.58 -r1.59 src/sys/netinet6/nd6_nbr.c
cvs rdiff -r1.53 -r1.54 src/sys/netinet6/nd6_rtr.c
cvs rdiff -r1.74 -r1.75 src/sys/netinet6/raw_ip6.c
cvs rdiff -r1.13 -r1.14 src/sys/netinet6/route6.c
cvs rdiff -r0 -r1.1 src/sys/netinet6/scope6.c src/sys/netinet6/scope6_var.h
cvs rdiff -r1.72 -r1.73 src/sys/netinet6/udp6_usrreq.c
cvs rdiff -r1.137 -r1.138 src/sys/netkey/key.c
cvs rdiff -r1.118 -r1.119 src/sys/sys/mbuf.h
cvs rdiff -r1.32 -r1.33 src/usr.sbin/ndp/ndp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.