Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 02/01/2000 14:52:14
Module Name:	syssrc
Committed By:	thorpej
Date:		Tue Feb  1 22:52:14 UTC 2000

Modified Files:
	syssrc/sys/net: if.c if.h if_ethersubr.c route.c rtsock.c
	syssrc/sys/netatalk: at_control.c at_extern.h ddp_usrreq.c
	syssrc/sys/netccitt: hd_subr.c pk_input.c pk_usrreq.c
	syssrc/sys/netinet: in.c in_var.h raw_ip.c tcp_usrreq.c udp_usrreq.c
	syssrc/sys/netinet6: in6.c in6_ifattach.c in6_var.h nd6.c nd6_nbr.c
	    nd6_rtr.c raw_ip6.c udp6_usrreq.c
	syssrc/sys/netiso: cltp_usrreq.c iso.c iso_var.h
	syssrc/sys/netns: idp_usrreq.c ns.c spp_usrreq.c
	syssrc/sys/sys: protosw.h

Log Message:
First-draft if_detach() implementation, originally from Bill Studnemund,
although this version has been changed somewhat:
- reference counting on ifaddrs isn't as complete as Bill's original
  work was.  This is hard to get right, and we should attack one
  protocol at a time.
- This doesn't do reference counting or dynamic allocation of ifnets yet.
- This version introduces a new PRU -- PRU_PURGEADDR, which is used to
  purge an ifaddr from a protocol.  The old method Bill used didn't work
  on all protocols, and it only worked on some because it was Very Lucky.

This mostly works ... i.e. works for my USB Ethernet, except for a dangling
ifaddr reference left by the IPv6 code; have not yet tracked this down.


To generate a diff of this commit:
cvs rdiff -r1.52 -r1.53 syssrc/sys/net/if.c
cvs rdiff -r1.43 -r1.44 syssrc/sys/net/if.h
cvs rdiff -r1.51 -r1.52 syssrc/sys/net/if_ethersubr.c
cvs rdiff -r1.29 -r1.30 syssrc/sys/net/route.c
cvs rdiff -r1.32 -r1.33 syssrc/sys/net/rtsock.c
cvs rdiff -r1.1 -r1.2 syssrc/sys/netatalk/at_control.c
cvs rdiff -r1.3 -r1.4 syssrc/sys/netatalk/at_extern.h
cvs rdiff -r1.2 -r1.3 syssrc/sys/netatalk/ddp_usrreq.c
cvs rdiff -r1.10 -r1.11 syssrc/sys/netccitt/hd_subr.c
cvs rdiff -r1.13 -r1.14 syssrc/sys/netccitt/pk_input.c
cvs rdiff -r1.16 -r1.17 syssrc/sys/netccitt/pk_usrreq.c
cvs rdiff -r1.49 -r1.50 syssrc/sys/netinet/in.c
cvs rdiff -r1.35 -r1.36 syssrc/sys/netinet/in_var.h
cvs rdiff -r1.48 -r1.49 syssrc/sys/netinet/raw_ip.c
cvs rdiff -r1.44 -r1.45 syssrc/sys/netinet/tcp_usrreq.c
cvs rdiff -r1.58 -r1.59 syssrc/sys/netinet/udp_usrreq.c
cvs rdiff -r1.9 -r1.10 syssrc/sys/netinet6/in6.c
cvs rdiff -r1.14 -r1.15 syssrc/sys/netinet6/in6_ifattach.c
cvs rdiff -r1.6 -r1.7 syssrc/sys/netinet6/in6_var.h
cvs rdiff -r1.13 -r1.14 syssrc/sys/netinet6/nd6.c
cvs rdiff -r1.12 -r1.13 syssrc/sys/netinet6/nd6_nbr.c
cvs rdiff -r1.8 -r1.9 syssrc/sys/netinet6/nd6_rtr.c
cvs rdiff -r1.16 -r1.17 syssrc/sys/netinet6/raw_ip6.c
cvs rdiff -r1.19 -r1.20 syssrc/sys/netinet6/udp6_usrreq.c
cvs rdiff -r1.14 -r1.15 syssrc/sys/netiso/cltp_usrreq.c
cvs rdiff -r1.25 -r1.26 syssrc/sys/netiso/iso.c
cvs rdiff -r1.11 -r1.12 syssrc/sys/netiso/iso_var.h
cvs rdiff -r1.15 -r1.16 syssrc/sys/netns/idp_usrreq.c
cvs rdiff -r1.17 -r1.18 syssrc/sys/netns/ns.c
cvs rdiff -r1.21 -r1.22 syssrc/sys/netns/spp_usrreq.c
cvs rdiff -r1.18 -r1.19 syssrc/sys/sys/protosw.h

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