The NetBSD Project

CVS log for src/sys/netinet6/in6_pcb.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / netinet6

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.177: download - view: text, markup, annotated - select for diffs
Fri Nov 4 09:04:27 2022 UTC (2 years, 1 month ago) by ozaki-r
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Diff to: previous 1.176: preferred, colored
Changes since revision 1.176: +28 -28 lines
inpcb: get rid of parentheses for return value

Revision 1.176: download - view: text, markup, annotated - select for diffs
Fri Nov 4 09:03:20 2022 UTC (2 years, 1 month ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.175: preferred, colored
Changes since revision 1.175: +7 -7 lines
inpcb: use in_port_t for port numbers

Revision 1.175: download - view: text, markup, annotated - select for diffs
Fri Nov 4 09:01:53 2022 UTC (2 years, 1 month ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.174: preferred, colored
Changes since revision 1.174: +33 -33 lines
inpcb: rename functions to in6pcb_*

Revision 1.174: download - view: text, markup, annotated - select for diffs
Fri Nov 4 09:00:58 2022 UTC (2 years, 1 month ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.173: preferred, colored
Changes since revision 1.173: +8 -8 lines
inpcb: rename functions to inpcb_*

Inspired by rmind-smpnet patches.

Revision 1.173: download - view: text, markup, annotated - select for diffs
Fri Oct 28 05:25:36 2022 UTC (2 years, 1 month ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.172: preferred, colored
Changes since revision 1.172: +65 -65 lines
inpcb: separate inpcb again to reduce the size of PCB for IPv4

The data size of PCB for IPv4 increased because of the merge of
struct in6pcb.  The change decreases the size to the original size by
separating struct inpcb (again).  struct in4pcb and in6pcb that embed
struct inpcb are introduced.

Even after the separation, users don't need to realize the separation
and only have to use some macros to access dedicated data.  For example,
inp->inp_laddr is now accessed through in4p_laddr(inp).

Revision 1.172: download - view: text, markup, annotated - select for diffs
Fri Oct 28 05:18:39 2022 UTC (2 years, 1 month ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.171: preferred, colored
Changes since revision 1.171: +208 -358 lines
inpcb: integrate data structures of PCB into one

Data structures of network protocol control blocks (PCBs), i.e.,
struct inpcb, in6pcb and inpcb_hdr, are not organized well.  Users of
the data structures have to handle them separately and thus the code
is cluttered and duplicated.

The commit integrates the data structures into one, struct inpcb.  As a
result, users of PCBs only have to handle just one data structure, so
the code becomes simple.

One drawback is that the data size of PCB for IPv4 increases by 40 bytes
(from 248 bytes to 288 bytes).

Revision 1.171: download - view: text, markup, annotated - select for diffs
Fri Oct 14 19:39:32 2022 UTC (2 years, 1 month ago) by ryo
Branches: MAIN
Diff to: previous 1.170: preferred, colored
Changes since revision 1.170: +7 -10 lines
Avoid error of "-Wreturn-local-addr", and simplify the logic.

However, -Wreturn-local-addr is still disabled by default by GCC_NO_RETURN_LOCAL_ADDR
in bsd.own.mk because it causes errors in other parts.

Revision 1.170: download - view: text, markup, annotated - select for diffs
Mon Aug 29 09:14:02 2022 UTC (2 years, 3 months ago) by knakahara
Branches: MAIN
CVS tags: bouyer-sunxi-drm-base, bouyer-sunxi-drm
Diff to: previous 1.169: preferred, colored
Changes since revision 1.169: +5 -3 lines
Add sysctl entry to control to send routing message for RTM_DYNAMIC.

Some routing daemons require such routing message to keep coherency.

If we want to let kernel send such message, set net.inet.icmp.dynamic_rt_msg=1
for IPv4, net.inet6.icmp6.dynamic_rt_msg=1 for IPv6.
Default(=0) is the same as before, that is, not send such routing message.

Revision 1.169: download - view: text, markup, annotated - select for diffs
Fri Jul 29 07:35:16 2022 UTC (2 years, 4 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.168: preferred, colored
Changes since revision 1.168: +2 -3 lines
Remove obsoleted comments.

These comments are added with IFNET_LOCK by in_pcb.c:r1.180 and
in6_pcb.c:r1.162.  And then, IFNET_LOCK codes are removed in
in_pcb.c:r1.183 and in6_pcb.c:r1.166, however the comments have
remained.

Revision 1.168: download - view: text, markup, annotated - select for diffs
Thu Jun 9 07:01:27 2022 UTC (2 years, 5 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.167: preferred, colored
Changes since revision 1.167: +8 -8 lines
refactor: use TAILQ_FOREACH instead of TAILQ_FOREACH_SAFE about inpt_queue.

They don't use "ninph" pointer and don't remove elements.

Revision 1.167: download - view: text, markup, annotated - select for diffs
Tue Sep 8 14:12:57 2020 UTC (4 years, 2 months ago) by christos
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.166: preferred, colored
Changes since revision 1.166: +6 -4 lines
Add IP_BINDANY, IPV6_BINDANY which can be used to bind to any address in
order to implement transparent proxies.

Revision 1.165.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:09:48 2019 UTC (5 years, 5 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.165: preferred, colored; next MAIN 1.166: preferred, colored
Changes since revision 1.165: +2 -6 lines
Sync with HEAD

Revision 1.166: download - view: text, markup, annotated - select for diffs
Wed May 15 02:59:18 2019 UTC (5 years, 6 months ago) by ozaki-r
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Diff to: previous 1.165: preferred, colored
Changes since revision 1.165: +2 -6 lines
Get rid of IFNET_LOCK for if_mcast_op to avoid a deadlock

The IFNET_LOCK was added to avoid data races on if_flags for IFF_ALLMULTI.
Unfortunatetly it caused a deadlock instead.  A known scenario causing a
deadlock is to occur the following two operations concurrently: (a) a removal of
an IP adddres assigned to an interface and (b) a manipulation of multicast
groups to the interface.  The resource dependency graph is like this:
  softnet_lock => IFNET_LOCK => psref_target_destroy => softint => softnet_lock

Thanks to the previous commit that avoids data races on if_flags for
IFF_ALLMULTI by another approach, we can remove IFNET_LOCK and defuse the
deadlock.

PR kern/54189

Revision 1.165: download - view: text, markup, annotated - select for diffs
Tue Feb 27 14:44:10 2018 UTC (6 years, 9 months ago) by maxv
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, isaki-audio2-base, isaki-audio2
Branch point for: phil-wifi
Diff to: previous 1.164: preferred, colored
Changes since revision 1.164: +3 -3 lines
Dedup: merge

	ipsec4_get_policy and ipsec6_get_policy
	ipsec4_delete_pcbpolicy and ipsec6_delete_pcbpolicy

The already-existing ipsec_get_policy() function is inlined in the new
one.

Revision 1.164: download - view: text, markup, annotated - select for diffs
Thu Feb 8 09:05:20 2018 UTC (6 years, 9 months ago) by dholland
Branches: MAIN
Diff to: previous 1.163: preferred, colored
Changes since revision 1.163: +3 -3 lines
Typos.

Revision 1.161.4.2: download - view: text, markup, annotated - select for diffs
Tue Jan 2 10:56:58 2018 UTC (6 years, 11 months ago) by snj
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Diff to: previous 1.161.4.1: preferred, colored; branchpoint 1.161: preferred, colored; next MAIN 1.162: preferred, colored
Changes since revision 1.161.4.1: +4 -2 lines
Pull up following revision(s) (requested by ozaki-r in ticket #463):
	sys/netinet/in.c: revision 1.212
	sys/netinet/ip_output.c: revision 1.288
	sys/netinet6/in6.c: revision 1.256
	sys/netinet6/in6_pcb.c: revision 1.163
	sys/sys/lwp.h: revision 1.176
Add missing curlwp_bindx
--
Add missing curlwp_bindx
--
Check LP_BOUND is surely set in curlwp_bindx
This may find an extra call of curlwp_bindx.
--
Fix usage of curlwp_bind in ip_output
curlwp_bindx must be called in LIFO order, i.e., we can't call curlwp_bind
and curlwp_bindx like this:
  bound1 = curlwp_bind();
  bound2 = curlwp_bind();
  curlwp_bindx(bound1);
  curlwp_bindx(bound2);
ip_outout did so if NET_MPSAFE. Fix it.
--
Fix wrong usage of psref_held
We can't use it for checking if a caller does NOT hold a given target.
If you want to do it you should have psref_not_held or something.

Revision 1.161.4.1: download - view: text, markup, annotated - select for diffs
Tue Jan 2 10:20:34 2018 UTC (6 years, 11 months ago) by snj
Branches: netbsd-8
Diff to: previous 1.161: preferred, colored
Changes since revision 1.161: +9 -2 lines
Pull up following revision(s) (requested by ozaki-r in ticket #456):
	sys/arch/arm/sunxi/sunxi_emac.c: 1.9
	sys/dev/ic/dwc_gmac.c: 1.43-1.44
	sys/dev/pci/if_iwm.c: 1.75
	sys/dev/pci/if_wm.c: 1.543
	sys/dev/pci/ixgbe/ixgbe.c: 1.112
	sys/dev/pci/ixgbe/ixv.c: 1.74
	sys/kern/sys_socket.c: 1.75
	sys/net/agr/if_agr.c: 1.43
	sys/net/bpf.c: 1.219
	sys/net/if.c: 1.397, 1.399, 1.401-1.403, 1.406-1.410, 1.412-1.416
	sys/net/if.h: 1.242-1.247, 1.250, 1.252-1.257
	sys/net/if_bridge.c: 1.140 via patch, 1.142-1.146
	sys/net/if_etherip.c: 1.40
	sys/net/if_ethersubr.c: 1.243, 1.246
	sys/net/if_faith.c: 1.57
	sys/net/if_gif.c: 1.132
	sys/net/if_l2tp.c: 1.15, 1.17
	sys/net/if_loop.c: 1.98-1.101
	sys/net/if_media.c: 1.35
	sys/net/if_pppoe.c: 1.131-1.132
	sys/net/if_spppsubr.c: 1.176-1.177
	sys/net/if_tun.c: 1.142
	sys/net/if_vlan.c: 1.107, 1.109, 1.114-1.121
	sys/net/npf/npf_ifaddr.c: 1.3
	sys/net/npf/npf_os.c: 1.8-1.9
	sys/net/rtsock.c: 1.230
	sys/netcan/if_canloop.c: 1.3-1.5
	sys/netinet/if_arp.c: 1.255
	sys/netinet/igmp.c: 1.65
	sys/netinet/in.c: 1.210-1.211
	sys/netinet/in_pcb.c: 1.180
	sys/netinet/ip_carp.c: 1.92, 1.94
	sys/netinet/ip_flow.c: 1.81
	sys/netinet/ip_input.c: 1.362
	sys/netinet/ip_mroute.c: 1.147
	sys/netinet/ip_output.c: 1.283, 1.285, 1.287
	sys/netinet6/frag6.c: 1.61
	sys/netinet6/in6.c: 1.251, 1.255
	sys/netinet6/in6_pcb.c: 1.162
	sys/netinet6/ip6_flow.c: 1.35
	sys/netinet6/ip6_input.c: 1.183
	sys/netinet6/ip6_output.c: 1.196
	sys/netinet6/mld6.c: 1.90
	sys/netinet6/nd6.c: 1.239-1.240
	sys/netinet6/nd6_nbr.c: 1.139
	sys/netinet6/nd6_rtr.c: 1.136
	sys/netipsec/ipsec_output.c: 1.65
	sys/rump/net/lib/libnetinet/netinet_component.c: 1.9-1.10
kmem_intr_free kmem_intr_[z]alloced memory
the underlying pools are the same but api-wise those should match
Unify IFEF_*_MPSAFE into IFEF_MPSAFE
There are already two flags for if_output and if_start, however, it seems such
MPSAFE flags are eventually needed for all if_XXX operations. Having discrete
flags for each operation is wasteful of if_extflags bits. So let's unify
the flags into one: IFEF_MPSAFE.
Fortunately IFEF_*_MPSAFE flags have never been included in any releases, so
we can change them without breaking backward compatibility of the releases
(though the kernel version of -current should be bumped).
Note that if an interface have both MP-safe and non-MP-safe operations at a
time, we have to set the IFEF_MPSAFE flag and let callees of non-MP-safe
opeartions take the kernel lock.
Proposed on tech-kern@ and tech-net@
Provide macros for softnet_lock and KERNEL_LOCK hiding NET_MPSAFE switch
It reduces C&P codes such as "#ifndef NET_MPSAFE KERNEL_LOCK(1, NULL); ..."
scattered all over the source code and makes it easy to identify remaining
KERNEL_LOCK and/or softnet_lock that are held even if NET_MPSAFE.
No functional change
Hold KERNEL_LOCK on if_ioctl selectively based on IFEF_MPSAFE
If IFEF_MPSAFE is set, hold the lock and otherwise don't hold.
This change requires additions of KERNEL_LOCK to subsequence functions from
if_ioctl such as ifmedia_ioctl and ifioctl_common to protect non-MP-safe
components.
Proposed on tech-kern@ and tech-net@
Ensure to hold if_ioctl_lock when calling if_flags_set
Fix locking against myself on ifpromisc
vlan_unconfig_locked could be called with holding if_ioctl_lock.
Ensure to not turn on IFF_RUNNING of an interface until its initialization completes
And ensure to turn off it before destruction as per IFF_RUNNING's description
"resource allocated". (The description is a bit doubtful though, I believe the
change is still proper.)
Ensure to hold if_ioctl_lock on if_up and if_down
One exception for if_down is if_detach; in the case the lock isn't needed
because it's guaranteed that no other one can access ifp at that point.
Make if_link_queue MP-safe if IFEF_MPSAFE
if_link_queue is a queue to store events of link state changes, which is
used to pass events from (typically) an interrupt handler to
if_link_state_change softint. The queue was protected by KERNEL_LOCK so far,
but if IFEF_MPSAFE is enabled, it becomes unsafe because (perhaps) an interrupt
handler of an interface with IFEF_MPSAFE doesn't take KERNEL_LOCK. Protect it
by a spin mutex.
Additionally with this change KERNEL_LOCK of if_link_state_change softint is
omitted if NET_MPSAFE is enabled.
Note that the spin mutex is now ifp->if_snd.ifq_lock as well as the case of
if_timer (see the comment).
Use IFADDR_WRITER_FOREACH instead of IFADDR_READER_FOREACH
At that point no other one modifies the list so IFADDR_READER_FOREACH
is unnecessary. Use of IFADDR_READER_FOREACH is harmless in general though,
if we try to detect contract violations of pserialize, using it violates
the contract. So avoid using it makes life easy.
Ensure to call if_addr_init with holding if_ioctl_lock
Get rid of outdated comments
Fix build of kernels without ether
By throwing out if_enable_vlan_mtu and if_disable_vlan_mtu that
created a unnecessary dependency from if.c to if_ethersubr.c.
PR kern/52790
Rename IFNET_LOCK to IFNET_GLOBAL_LOCK
IFNET_LOCK will be used in another lock, if_ioctl_lock (might be renamed then).
Wrap if_ioctl_lock with IFNET_* macros (NFC)
Also if_ioctl_lock perhaps needs to be renamed to something because it's now
not just for ioctl...
Reorder some destruction routines in if_detach
- Destroy if_ioctl_lock at the end of the if_detach because it's used in various
  destruction routines
- Move psref_target_destroy after pr_purgeif because we want to use psref in
  pr_purgeif (otherwise destruction procedures can be tricky)
Ensure to call if_mcast_op with holding IFNET_LOCK
Note that CARP doesn't deal with IFNET_LOCK yet.
Remove IFNET_GLOBAL_LOCK where it's unnecessary because IFNET_LOCK is held
Describe which lock is used to protect each member variable of struct ifnet
Requested by skrll@
Write a guideline for converting an interface to IFEF_MPSAFE
Requested by skrll@
Note that IFNET_LOCK must not be held in softint
Don't set IFEF_MPSAFE unless NET_MPSAFE at this point
Because recent investigations show that interfaces with IFEF_MPSAFE need to
follow additional restrictions to work with the flag safely. We should enable it
on an interface by default only if the interface surely satisfies the
restrictions, which are described in if.h.
Note that enabling IFEF_MPSAFE solely gains a few benefit on performance because
the network stack is still serialized by the big kernel locks by default.

Revision 1.163: download - view: text, markup, annotated - select for diffs
Fri Dec 22 09:53:06 2017 UTC (6 years, 11 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.162: preferred, colored
Changes since revision 1.162: +4 -2 lines
Add missing curlwp_bindx

Revision 1.162: download - view: text, markup, annotated - select for diffs
Fri Dec 15 04:03:46 2017 UTC (6 years, 11 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.161: preferred, colored
Changes since revision 1.161: +9 -2 lines
Ensure to call if_mcast_op with holding IFNET_LOCK

Note that CARP doesn't deal with IFNET_LOCK yet.

Revision 1.121.2.3: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:39:04 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.121.2.2: preferred, colored; branchpoint 1.121: preferred, colored; next MAIN 1.122: preferred, colored
Changes since revision 1.121.2.2: +131 -75 lines
update from HEAD

Revision 1.134.2.8: download - view: text, markup, annotated - select for diffs
Mon Aug 28 17:53:12 2017 UTC (7 years, 3 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.7: preferred, colored; branchpoint 1.134: preferred, colored; next MAIN 1.135: preferred, colored
Changes since revision 1.134.2.7: +17 -7 lines
Sync with HEAD

Revision 1.145.2.6: download - view: text, markup, annotated - select for diffs
Wed Apr 26 02:53:29 2017 UTC (7 years, 7 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.145.2.5: preferred, colored; branchpoint 1.145: preferred, colored; next MAIN 1.146: preferred, colored
Changes since revision 1.145.2.5: +5 -2 lines
Sync with HEAD

Revision 1.161: download - view: text, markup, annotated - select for diffs
Tue Apr 25 05:44:11 2017 UTC (7 years, 7 months ago) by ozaki-r
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek
Branch point for: netbsd-8
Diff to: previous 1.160: preferred, colored
Changes since revision 1.160: +3 -2 lines
Check if solock of PCB is held when SP caches in the PCB are accessed

To this end, a back pointer from inpcbpolicy to inpcb_hdr is added.

Revision 1.155.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 21 16:54:06 2017 UTC (7 years, 7 months ago) by bouyer
Branches: bouyer-socketcan
Diff to: previous 1.155: preferred, colored; next MAIN 1.156: preferred, colored
Changes since revision 1.155: +16 -11 lines
Sync with HEAD

Revision 1.160: download - view: text, markup, annotated - select for diffs
Thu Apr 20 08:45:09 2017 UTC (7 years, 7 months ago) by ozaki-r
Branches: MAIN
CVS tags: bouyer-socketcan-base1
Diff to: previous 1.159: preferred, colored
Changes since revision 1.159: +4 -2 lines
Simplify logic of udp4_sendup and udp6_sendup

They are always passed a socket with the same protocol faimiliy
as its own: AF_INET for udp4_sendup and AF_INET6 for udp6_sendup.

Revision 1.145.2.5: download - view: text, markup, annotated - select for diffs
Mon Mar 20 06:57:51 2017 UTC (7 years, 8 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.145.2.4: preferred, colored; branchpoint 1.145: preferred, colored
Changes since revision 1.145.2.4: +14 -11 lines
Sync with HEAD

Revision 1.159: download - view: text, markup, annotated - select for diffs
Thu Mar 2 05:26:24 2017 UTC (7 years, 9 months ago) by ozaki-r
Branches: MAIN
CVS tags: pgoyette-localcount-20170320, jdolecek-ncq-base, jdolecek-ncq
Diff to: previous 1.158: preferred, colored
Changes since revision 1.158: +10 -2 lines
Make sure im6o_memberships is protected by in6p's lock (solock)

Revision 1.158: download - view: text, markup, annotated - select for diffs
Thu Mar 2 01:05:02 2017 UTC (7 years, 9 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.157: preferred, colored
Changes since revision 1.157: +4 -5 lines
Use LIST_* macros

No functional change.

Revision 1.157: download - view: text, markup, annotated - select for diffs
Mon Feb 13 04:05:58 2017 UTC (7 years, 9 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.156: preferred, colored
Changes since revision 1.156: +4 -4 lines
Replace splnet with splsoftnet

Revision 1.134.2.7: download - view: text, markup, annotated - select for diffs
Sun Feb 5 13:40:59 2017 UTC (7 years, 9 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.6: preferred, colored; branchpoint 1.134: preferred, colored
Changes since revision 1.134.2.6: +29 -13 lines
Sync with HEAD

Revision 1.156: download - view: text, markup, annotated - select for diffs
Mon Jan 23 09:14:24 2017 UTC (7 years, 10 months ago) by ozaki-r
Branches: MAIN
CVS tags: nick-nhusb-base-20170204
Diff to: previous 1.155: preferred, colored
Changes since revision 1.155: +2 -6 lines
Get rid of splnet for pool(9)

We don't need it anymore.

Revision 1.128.2.2.4.1: download - view: text, markup, annotated - select for diffs
Wed Jan 18 08:46:46 2017 UTC (7 years, 10 months ago) by skrll
Branches: netbsd-7-nhusb
Diff to: previous 1.128.2.2: preferred, colored; next MAIN 1.128.2.3: preferred, colored
Changes since revision 1.128.2.2: +3 -3 lines
Sync with netbsd-5

Revision 1.145.2.4: download - view: text, markup, annotated - select for diffs
Sat Jan 7 08:56:51 2017 UTC (7 years, 10 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.145.2.3: preferred, colored; branchpoint 1.145: preferred, colored
Changes since revision 1.145.2.3: +29 -9 lines
Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.155: download - view: text, markup, annotated - select for diffs
Tue Dec 13 08:29:03 2016 UTC (7 years, 11 months ago) by ozaki-r
Branches: MAIN
CVS tags: pgoyette-localcount-20170107, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Diff to: previous 1.154: preferred, colored
Changes since revision 1.154: +2 -3 lines
Remove unnecessary inclusions of nd6.h

Revision 1.154: download - view: text, markup, annotated - select for diffs
Mon Dec 12 03:55:57 2016 UTC (7 years, 11 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.153: preferred, colored
Changes since revision 1.153: +3 -3 lines
Make the routing table and rtcaches MP-safe

See the following descriptions for details.

Proposed on tech-kern and tech-net


Overview
--------

We protect the routing table with a rwock and protect
rtcaches with another rwlock. Each rtentry is protected
from being freed or updated via reference counting and psref.

Global rwlocks
--------------

There are two rwlocks; one for the routing table (rt_lock) and
the other for rtcaches (rtcache_lock). rtcache_lock covers
all existing rtcaches; there may have room for optimizations
(future work).

The locking order is rtcache_lock first and rt_lock is next.

rtentry references
------------------

References to an rtentry is managed with reference counting
and psref. Either of the two mechanisms is used depending on
where a rtentry is obtained. Reference counting is used when
we obtain a rtentry from the routing table directly via
rtalloc1 and rtrequest{,1} while psref is used when we obtain
a rtentry from a rtcache via rtcache_* APIs. In both cases,
a caller can sleep/block with holding an obtained rtentry.

The reasons why we use two different mechanisms are (i) only
using reference counting hurts the performance due to atomic
instructions (rtcache case) (ii) ease of implementation;
applying psref to APIs such rtaloc1 and rtrequest{,1} requires
additional works (adding a local variable and an argument).

We will finally migrate to use only psref but we can do it
when we have a lockless routing table alternative.

Reference counting for rtentry
------------------------------

rt_refcnt now doesn't count permanent references such as for
rt_timers and rtcaches, instead it is used only for temporal
references when obtaining a rtentry via rtalloc1 and rtrequest{,1}.
We can do so because destroying a rtentry always involves
removing references of rt_timers and rtcaches to the rtentry
and we don't need to track such references. This also makes
it easy to wait for readers to release references on deleting
or updating a rtentry, i.e., we can simply wait until the
reference counter is 0 or 1. (If there are permanent references
the counter can be arbitrary.)

rt_ref increments a reference counter of a rtentry and rt_unref
decrements it. rt_ref is called inside APIs (rtalloc1 and
rtrequest{,1} so users don't need to care about it while
users must call rt_unref to an obtained rtentry after using it.

rtfree is removed and we use rt_unref and rt_free instead.
rt_unref now just decrements the counter of a given rtentry
and rt_free just tries to destroy a given rtentry.

See the next section for destructions of rtentries by rt_free.

Destructions of rtentries
-------------------------

We destroy a rtentry only when we call rtrequst{,1}(RTM_DELETE);
the original implementation can destroy in any rtfree where it's
the last reference. If we use reference counting or psref, it's
easy to understand if the place that a rtentry is destroyed is
fixed.

rt_free waits for references to a given rtentry to be released
before actually destroying the rtentry. rt_free uses a condition
variable (cv_wait) (and psref_target_destroy for psref) to wait.

Unfortunately rtrequst{,1}(RTM_DELETE) can be called in softint
that we cannot use cv_wait. In that case, we have to defer the
destruction to a workqueue.

rtentry#rt_cv, rtentry#rt_psref and global variables
(see rt_free_global) are added to conduct the procedure.

Updates of rtentries
--------------------

One difficulty to use refcnt/psref instead of rwlock for rtentry
is updates of rtentries. We need an additional mechanism to
prevent readers from seeing inconsistency of a rtentry being
updated.

We introduce RTF_UPDATING flag to rtentries that are updating.
While the flag is set to a rtentry, users cannot acquire the
rtentry. By doing so, we avoid users to see inconsistent
rtentries.

There are two options when a user tries to acquire a rtentry
with the RTF_UPDATING flag; if a user runs in softint context
the user fails to acquire a rtentry (NULL is returned).
Otherwise a user waits until the update completes by waiting
on cv.

The procedure of a updater is simpler to destruction of
a rtentry. Wait on cv (and psref) and after all readers left,
proceed with the update.

Global variables (see rt_update_global) are added to conduct
the procedure.

Currently we apply the mechanism to only RTM_CHANGE in
rtsock.c. We would have to apply other codes. See
"Known issues" section.

psref for rtentry
-----------------

When we obtain a rtentry from a rtcache via rtcache_* APIs,
psref is used to reference to the rtentry.

rtcache_ref acquires a reference to a rtentry with psref
and rtcache_unref releases the reference after using it.
rtcache_ref is called inside rtcache_* APIs and users don't
need to take care of it while users must call rtcache_unref
to release the reference.

struct psref and int bound that is needed for psref is
embedded into struct route. By doing so we don't need to
add local variables and additional argument to APIs.

However this adds another constraint to psref other than
reference counting one's; holding a reference of an rtentry
via a rtcache is allowed by just one caller at the same time.
So we must not acquire a rtentry via a rtcache twice and
avoid a recursive use of a rtcache. And also a rtcache must
be arranged to be used by a LWP/softint at the same time
somehow. For IP forwarding case, we have per-CPU rtcaches
used in softint so the constraint is guaranteed. For a h
rtcache of a PCB case, the constraint is guaranteed by the
solock of each PCB. Any other cases (pf, ipf, stf and ipsec)
are currently guaranteed by only the existence of the global
locks (softnet_lock and/or KERNEL_LOCK). If we've found the
cases that we cannot guarantee the constraint, we would need
to introduce other rtcache APIs that use simple reference
counting.

psref of rtcache is created with IPL_SOFTNET and so rtcache
shouldn't used at an IPL higher than IPL_SOFTNET.

Note that rtcache_free is used to invalidate a given rtcache.
We don't need another care by my change; just keep them as
they are.

Performance impact
------------------

When NET_MPSAFE is disabled the performance drop is 3% while
when it's enabled the drop is increased to 11%. The difference
comes from that currently we don't take any global locks and
don't use psref if NET_MPSAFE is disabled.

We can optimize the performance of the case of NET_MPSAFE
on by reducing lookups of rtcache that uses psref;
currently we do two lookups but we should be able to trim
one of two. This is a future work.

Known issues
------------

There are two known issues to be solved; one is that
a caller of rtrequest(RTM_ADD) may change rtentry (see rtinit).
We need to prevent new references during the update. Or
we may be able to remove the code (perhaps, need more
investigations).

The other is rtredirect that updates a rtentry. We need
to apply our update mechanism, however it's not easy because
rtredirect is called in softint and we cannot apply our
mechanism simply. One solution is to defer rtredirect to
a workqueue but it requires some code restructuring.

Revision 1.153: download - view: text, markup, annotated - select for diffs
Thu Dec 8 05:16:34 2016 UTC (7 years, 11 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.152: preferred, colored
Changes since revision 1.152: +29 -8 lines
Add rtcache_unref to release points of rtentry stemming from rtcache

In the MP-safe world, a rtentry stemming from a rtcache can be freed at any
points. So we need to protect rtentries somehow say by reference couting or
passive references. Regardless of the method, we need to call some release
function of a rtentry after using it.

The change adds a new function rtcache_unref to release a rtentry. At this
point, this function does nothing because for now we don't add a reference
to a rtentry when we get one from a rtcache. We will add something useful
in a further commit.

This change is a part of changes for MP-safe routing table. It is separated
to avoid one big change that makes difficult to debug by bisecting.

Revision 1.134.2.6: download - view: text, markup, annotated - select for diffs
Mon Dec 5 10:55:28 2016 UTC (8 years ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.5: preferred, colored; branchpoint 1.134: preferred, colored
Changes since revision 1.134.2.5: +10 -8 lines
Sync with HEAD

Revision 1.145.2.3: download - view: text, markup, annotated - select for diffs
Fri Nov 4 14:49:21 2016 UTC (8 years, 1 month ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.145.2.2: preferred, colored; branchpoint 1.145: preferred, colored
Changes since revision 1.145.2.2: +11 -9 lines
Sync with HEAD

Revision 1.152: download - view: text, markup, annotated - select for diffs
Mon Oct 31 14:34:32 2016 UTC (8 years, 1 month ago) by christos
Branches: MAIN
CVS tags: pgoyette-localcount-20161104, nick-nhusb-base-20161204
Diff to: previous 1.151: preferred, colored
Changes since revision 1.151: +7 -6 lines
restore previous logic.

Revision 1.151: download - view: text, markup, annotated - select for diffs
Mon Oct 31 04:16:25 2016 UTC (8 years, 1 month ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.150: preferred, colored
Changes since revision 1.150: +8 -7 lines
Fix race condition of in6_selectsrc

in6_selectsrc returned a pointer to in6_addr that wan't guaranteed to be
safe by pserialize (or psref), which was racy. Let callers pass a pointer
to in6_addr and in6_selectsrc copy a result to it inside pserialize
critical sections.

Revision 1.134.2.5: download - view: text, markup, annotated - select for diffs
Wed Oct 5 20:56:09 2016 UTC (8 years, 2 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.4: preferred, colored; branchpoint 1.134: preferred, colored
Changes since revision 1.134.2.4: +43 -25 lines
Sync with HEAD

Revision 1.150: download - view: text, markup, annotated - select for diffs
Thu Sep 29 12:19:47 2016 UTC (8 years, 2 months ago) by roy
Branches: MAIN
CVS tags: nick-nhusb-base-20161004
Diff to: previous 1.149: preferred, colored
Changes since revision 1.149: +3 -3 lines
Now that we disallow sending or receiving from invalid addresses,
allow binding to tentative addresses.

Revision 1.128.2.3: download - view: text, markup, annotated - select for diffs
Wed Sep 28 20:24:06 2016 UTC (8 years, 2 months ago) by bouyer
Branches: netbsd-7
CVS tags: netbsd-7-nhusb-base-20170116, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1
Diff to: previous 1.128.2.2: preferred, colored; branchpoint 1.128: preferred, colored; next MAIN 1.129: preferred, colored
Changes since revision 1.128.2.2: +3 -3 lines
Pull up following revision(s) (requested by roy in ticket #1243):
	sys/netinet6/raw_ip6.c: revision 1.150 via patch
	sys/netinet6/in6_pcb.c: revision 1.149 via patch
Allow explicit binding to detached addresss.
Fixes PR kern/51435.

Revision 1.149: download - view: text, markup, annotated - select for diffs
Fri Aug 26 19:53:07 2016 UTC (8 years, 3 months ago) by roy
Branches: MAIN
CVS tags: localcount-20160914
Diff to: previous 1.148: preferred, colored
Changes since revision 1.148: +3 -3 lines
Allow explicit binding to detached addresss.
Fixes PR kern/51435.

Revision 1.145.2.2: download - view: text, markup, annotated - select for diffs
Sat Aug 6 00:19:10 2016 UTC (8 years, 4 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.145.2.1: preferred, colored; branchpoint 1.145: preferred, colored
Changes since revision 1.145.2.1: +43 -25 lines
Sync with HEAD

Revision 1.148: download - view: text, markup, annotated - select for diffs
Mon Aug 1 03:15:31 2016 UTC (8 years, 4 months ago) by ozaki-r
Branches: MAIN
CVS tags: pgoyette-localcount-20160806
Diff to: previous 1.147: preferred, colored
Changes since revision 1.147: +43 -25 lines
Apply pserialize and psref to struct ifaddr and its variants

This change makes struct ifaddr and its variants (in_ifaddr and in6_ifaddr)
MP-safe by using pserialize and psref. At this moment, pserialize_perform
and psref_target_destroy are disabled because (1) we don't need them
because of softnet_lock (2) they cause a deadlock because of softnet_lock.
So we'll enable them when we remove softnet_lock in the future.

Revision 1.145.2.1: download - view: text, markup, annotated - select for diffs
Tue Jul 26 03:24:23 2016 UTC (8 years, 4 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.145: preferred, colored
Changes since revision 1.145: +4 -4 lines
Sync with HEAD

Revision 1.147: download - view: text, markup, annotated - select for diffs
Fri Jul 15 07:40:09 2016 UTC (8 years, 4 months ago) by ozaki-r
Branches: MAIN
CVS tags: pgoyette-localcount-20160726
Diff to: previous 1.146: preferred, colored
Changes since revision 1.146: +3 -3 lines
Use sin6tosa and sin6tocsa macros

No functional change.

Revision 1.146: download - view: text, markup, annotated - select for diffs
Fri Jul 15 07:33:41 2016 UTC (8 years, 4 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.145: preferred, colored
Changes since revision 1.145: +3 -3 lines
Use ifatoia6 macro

No functional change.

Revision 1.134.2.4: download - view: text, markup, annotated - select for diffs
Sat Jul 9 20:25:22 2016 UTC (8 years, 4 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.3: preferred, colored; branchpoint 1.134: preferred, colored
Changes since revision 1.134.2.3: +18 -7 lines
Sync with HEAD

Revision 1.145: download - view: text, markup, annotated - select for diffs
Tue Jun 21 10:25:27 2016 UTC (8 years, 5 months ago) by ozaki-r
Branches: MAIN
CVS tags: pgoyette-localcount-base, nick-nhusb-base-20160907
Branch point for: pgoyette-localcount
Diff to: previous 1.144: preferred, colored
Changes since revision 1.144: +14 -5 lines
Make sure returning ifp from in6_select* functions psref-ed

To this end, callers need to pass struct psref to the functions
and the fuctions acquire a reference of ifp with it. In some cases,
we can simply use if_get_byindex, however, in other cases
(say rt->rt_ifp and ia->ifa_ifp), we have no MP-safe way for now.
In order to take a reference anyway we use non MP-safe function
if_acquire_NOMPSAFE for the latter cases. They should be fixed in
the future somehow.

Revision 1.144: download - view: text, markup, annotated - select for diffs
Tue Jun 21 03:28:27 2016 UTC (8 years, 5 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.143: preferred, colored
Changes since revision 1.143: +6 -4 lines
Replace ifp of ip_moptions and ip6_moptions with if_index

The motivation is the same as the mbuf's rcvif case; avoid having a pointer
of an ifnet object in ip_moptions and ip6_moptions, which is not MP-safe.

ip_moptions and ip6_moptions can be stored in a PCB for inet or inet6
that's life time is different from ifnet one and so an ifnet object can be
disappeared anytime we get it via them. Thus we need to look up an ifnet
object by if_index every time for safe.

Revision 1.134.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 22 12:06:11 2015 UTC (9 years, 2 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.2: preferred, colored; branchpoint 1.134: preferred, colored
Changes since revision 1.134.2.2: +4 -2 lines
Sync with HEAD

Revision 1.143: download - view: text, markup, annotated - select for diffs
Mon Aug 24 22:21:27 2015 UTC (9 years, 3 months ago) by pooka
Branches: MAIN
CVS tags: nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921
Diff to: previous 1.142: preferred, colored
Changes since revision 1.142: +4 -2 lines
sprinkle _KERNEL_OPT

Revision 1.134.2.2: download - view: text, markup, annotated - select for diffs
Sat Jun 6 14:40:26 2015 UTC (9 years, 6 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134.2.1: preferred, colored; branchpoint 1.134: preferred, colored
Changes since revision 1.134.2.1: +24 -29 lines
Sync with HEAD

Revision 1.142: download - view: text, markup, annotated - select for diffs
Sun May 24 15:43:45 2015 UTC (9 years, 6 months ago) by rtr
Branches: MAIN
CVS tags: nick-nhusb-base-20150606
Diff to: previous 1.141: preferred, colored
Changes since revision 1.141: +2 -17 lines
remove transitional functions in{,6}_pcbconnect_m() that were used in
converting protocol user requests to accept sockaddr instead of mbufs.

remove tcp_input copy in to mbuf from sockaddr and just copy to sockaddr
to make it possible for the transitional functions to go away.

no version bump since these functions only existed for a short time and
were commented as adapters (they appeared in 7.99.15).

Revision 1.141: download - view: text, markup, annotated - select for diffs
Tue May 19 01:14:40 2015 UTC (9 years, 6 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +9 -9 lines
Use NULL instead of 0 for pointers

Revision 1.140: download - view: text, markup, annotated - select for diffs
Sat May 2 17:18:03 2015 UTC (9 years, 7 months ago) by rtr
Branches: MAIN
Diff to: previous 1.139: preferred, colored
Changes since revision 1.139: +18 -6 lines
make connect syscall use sockaddr_big and modify pr_{send,connect}
nam parameter type from buf * to sockaddr *.

final commit for parameter type changes to protocol user requests

* bump kernel version to 7.99.15 for parameter type changes to pr_{send,connect}

Revision 1.139: download - view: text, markup, annotated - select for diffs
Mon Apr 27 10:14:44 2015 UTC (9 years, 7 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.138: preferred, colored
Changes since revision 1.138: +6 -4 lines
Add missing error checks on rtcache_setdst

It can fail with ENOMEM.

Revision 1.138: download - view: text, markup, annotated - select for diffs
Mon Apr 27 02:59:44 2015 UTC (9 years, 7 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.137: preferred, colored
Changes since revision 1.137: +6 -6 lines
Introduce in6_selecthlim_rt to consolidate an idiom for rt->rt_ifp

It consolidates a scattered routine:
(rt = rtcache_validate(&in6p->in6p_route)) != NULL ? rt->rt_ifp : NULL

Revision 1.137: download - view: text, markup, annotated - select for diffs
Sun Apr 26 16:45:50 2015 UTC (9 years, 7 months ago) by rtr
Branches: MAIN
Diff to: previous 1.136: preferred, colored
Changes since revision 1.136: +4 -2 lines
return EINVAL if sin{,6}_len != sizeof(sockaddr_in{,6}) respectively in
in{,6}_pcbconnect().

checking just m->m_len isn't enough because there are various places that
assume sa_len has been properly populated.

Revision 1.136: download - view: text, markup, annotated - select for diffs
Fri Apr 24 22:32:37 2015 UTC (9 years, 7 months ago) by rtr
Branches: MAIN
Diff to: previous 1.135: preferred, colored
Changes since revision 1.135: +4 -10 lines
make accept, getsockname and getpeername syscalls use sockaddr_big and modify
pr_{accept,sockname,peername} nam parameter type from mbuf * to sockaddr *.

* retained use of mbuftypes[MT_SONAME] for now.
* bump to netbsd version 7.99.12 for parameter type change.

patch posted to tech-net@ 2015/04/19

Revision 1.134.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 6 15:18:23 2015 UTC (9 years, 8 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.134: preferred, colored
Changes since revision 1.134: +5 -7 lines
Sync with HEAD

Revision 1.135: download - view: text, markup, annotated - select for diffs
Fri Apr 3 20:01:07 2015 UTC (9 years, 8 months ago) by rtr
Branches: MAIN
CVS tags: nick-nhusb-base-20150406
Diff to: previous 1.134: preferred, colored
Changes since revision 1.134: +5 -7 lines
* change pr_bind to accept struct sockaddr * instead of struct mbuf *
* update protocol bind implementations to use/expect sockaddr *
  instead of mbuf *
* introduce sockaddr_big struct for storage of addr data passed via
  sys_bind; sockaddr_big is of sufficient size and alignment to
  accommodate all addr data sizes received.
* modify sys_bind to allocate sockaddr_big instead of using an mbuf.
* bump kernel version to 7.99.9 for change to pr_bind() parameter type.

Patch posted to tech-net@
  http://mail-index.netbsd.org/tech-net/2015/03/15/msg005004.html

The choice to use a new structure sockaddr_big has been retained since
changing sockaddr_storage size would lead to unnecessary ABI change. The
use of the new structure does not preclude future work that increases
the size of sockaddr_storage and at that time sockaddr_big may be
trivially replaced.

Tested by mrg@ and myself, discussed with rmind@, posted to tech-net@

Revision 1.128.2.2: download - view: text, markup, annotated - select for diffs
Sat Jan 17 12:10:54 2015 UTC (9 years, 10 months ago) by martin
Branches: netbsd-7
CVS tags: netbsd-7-nhusb-base, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0
Branch point for: netbsd-7-nhusb
Diff to: previous 1.128.2.1: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.1: +2 -3 lines
Pull up following revision(s) (requested by maxv in ticket #427):
	sys/compat/svr4/svr4_schedctl.c: revision 1.8
	sys/netinet/tcp_timer.c: revision 1.88
	sys/miscfs/genfs/layer_vfsops.c: revision 1.45
	sys/compat/svr4/svr4_ioctl.c: revision 1.37
	sys/ufs/chfs/chfs_vfsops.c: revision 1.14
	sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91
	sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30
	sys/compat/common/kern_time_50.c: revision 1.28
	sys/netinet6/ip6_forward.c: revision 1.74
	sys/miscfs/umapfs/umap_vnops.c: revision 1.57
	sys/compat/svr4/svr4_fcntl.c: revision 1.74
	distrib/sets/lists/comp/mi: revision 1.1931
	sys/netinet6/udp6_output.c: revision 1.46
	sys/fs/puffs/puffs_compat.c: revision 1.3
	sys/fs/udf/udf_rename.c: revision 1.11
	sys/compat/svr4/svr4_filio.c: revision 1.24
	sys/fs/udf/udf_rename.c: revision 1.12
	sys/netinet/tcp_usrreq.c: revision 1.202
	sys/miscfs/umapfs/umap_subr.c: revision 1.29
	sys/compat/linux/common/linux_fadvise64.c: revision 1.3
	sys/netinet/if_atm.c: revision 1.34
	sys/miscfs/procfs/procfs_subr.c: revision 1.106
	sys/miscfs/genfs/layer_subr.c: revision 1.37
	sys/netinet/tcp_sack.c: revision 1.30
	sys/compat/freebsd/freebsd_misc.c: revision 1.33
	sys/compat/freebsd/freebsd_file.c: revision 1.33
	sys/ufs/chfs/chfs_vnode.c: revision 1.12
	sys/compat/svr4/svr4_ttold.c: revision 1.34
	sys/compat/linux/common/linux_file.c: revision 1.114
	sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43
	sys/compat/linux/common/linux_signal.c: revision 1.76
	sys/compat/common/compat_util.c: revision 1.46
	sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18
	sys/compat/svr4/svr4_sockio.c: revision 1.36
	sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32
	sys/compat/svr4/svr4_signal.c: revision 1.66
	sys/kern/kern_exec.c: revision 1.410
	sys/fs/puffs/puffs_vfsops.c: revision 1.115
	sys/compat/svr4/svr4_exec_elf64.c: revision 1.15
	sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159
	sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50
	sys/compat/linux32/common/linux32_misc.c: revision 1.24
	sys/netinet/in_pcb.c: revision 1.153
	sys/sys/malloc.h: revision 1.116
	sys/compat/common/if_43.c: revision 1.9
	share/man/man9/Makefile: revision 1.380
	sys/netinet/tcp_vtw.c: revision 1.12
	sys/miscfs/umapfs/umap_vfsops.c: revision 1.95
	sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186
	sys/compat/common/uipc_syscalls_43.c: revision 1.46
	sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115
	sys/fs/puffs/puffs_msgif.c: revision 1.97
	sys/compat/svr4/svr4_ipc.c: revision 1.27
	sys/compat/linux/common/linux_exec.c: revision 1.117
	sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66
	sys/netinet/tcp_output.c: revision 1.179
	sys/compat/svr4/svr4_termios.c: revision 1.28
	sys/fs/udf/udf_strat_bootstrap.c: revision 1.4
	sys/fs/puffs/puffs_subr.c: revision 1.67
	sys/fs/puffs/puffs_node.c: revision 1.36
	sys/miscfs/overlay/overlay_vnops.c: revision 1.21
	sys/fs/cd9660/cd9660_node.c: revision 1.34
	sys/netinet/raw_ip.c: revision 1.146
	sys/sys/mallocvar.h: revision 1.13
	sys/miscfs/overlay/overlay_vfsops.c: revision 1.63
	share/man/man9/malloc.9: revision 1.50
	sys/netinet6/dest6.c: revision 1.18
	sys/compat/linux/common/linux_uselib.c: revision 1.33
	sys/compat/linux/common/linux_socket.c: revision 1.120
	share/man/man9/malloc.9: revision 1.51
	sys/netinet/tcp_subr.c: revision 1.257
	sys/compat/linux/common/linux_socketcall.c: revision 1.45
	sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3
	sys/compat/freebsd/freebsd_ipc.c: revision 1.17
	sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109
	sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17
	sys/netinet6/in6_pcb.c: revision 1.132
	sys/netinet6/in6_ifattach.c: revision 1.94
	sys/compat/svr4/svr4_exec_elf32.c: revision 1.15
	sys/miscfs/nullfs/null_vfsops.c: revision 1.90
	sys/fs/cd9660/cd9660_util.c: revision 1.12
	sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48
	sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20
	sys/miscfs/procfs/procfs_vfsops.c: revision 1.94
	sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28
	sys/compat/linux/common/linux_sched.c: revision 1.67
	sys/compat/linux/common/linux_exec_aout.c: revision 1.67
	sys/compat/linux/common/linux_pipe.c: revision 1.67
	sys/compat/linux/common/linux_llseek.c: revision 1.34
	sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10
Do not uselessly include <sys/malloc.h>.
Cleanup:
 - remove struct kmembuckets (dead)
 - correctly deadify MALLOC_XX
 - remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead)
 - remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT()
   and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc
New sentence, new line. Bump date for previous.
Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9)
man pages.

Revision 1.134: download - view: text, markup, annotated - select for diffs
Tue Nov 25 19:09:13 2014 UTC (10 years ago) by seanb
Branches: MAIN
CVS tags: nick-nhusb-base
Branch point for: nick-nhusb
Diff to: previous 1.133: preferred, colored
Changes since revision 1.133: +3 -3 lines
Really make SO_REUSEPORT and SO_REUSEADDR equivalent for multicast
sockets.  From FreeBSD.

Revision 1.133: download - view: text, markup, annotated - select for diffs
Tue Nov 25 15:04:37 2014 UTC (10 years ago) by seanb
Branches: MAIN
Diff to: previous 1.132: preferred, colored
Changes since revision 1.132: +3 -2 lines
Clean up any dangling ifp references in (struct in6pcb *)->in6p_v4moptions
(v4 multicast options off v4 mapped v6 socket) on interface destruction.  The
code to clean this up in a true v4 socket was moved to its own function
which is now also called in the corresponding place for v6 sockets on
interface destruction.

Revision 1.132: download - view: text, markup, annotated - select for diffs
Fri Nov 14 17:34:23 2014 UTC (10 years ago) by maxv
Branches: MAIN
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +2 -3 lines
Do not uselessly include <sys/malloc.h>.

Revision 1.131: download - view: text, markup, annotated - select for diffs
Sat Oct 11 23:07:39 2014 UTC (10 years, 1 month ago) by christos
Branches: MAIN
Diff to: previous 1.130: preferred, colored
Changes since revision 1.130: +4 -2 lines
Succeed binding to multicast address for now: Open questions:
Open questions:

    http://mail-index.netbsd.org/tech-net/2014/07/23/msg004714.html

Revision 1.130: download - view: text, markup, annotated - select for diffs
Sat Oct 11 20:53:16 2014 UTC (10 years, 1 month ago) by christos
Branches: MAIN
Diff to: previous 1.129: preferred, colored
Changes since revision 1.129: +5 -3 lines
Make IPV4 mapped addresses able to do IPV4 multicast. Fixes needed:

	- allow binding to mapped v4 multicast addresses
	- define v4moptions, allow setting it via ioctl, pass it to ip_output,
	  free it when killing the pcb.

Ideally we would allow the IPV6 multicast setsockopts work on mapped addresses
too, but this is a lot more work and linux does not do it either.

Revision 1.128.2.1: download - view: text, markup, annotated - select for diffs
Mon Sep 8 19:12:04 2014 UTC (10 years, 2 months ago) by msaitoh
Branches: netbsd-7
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +3 -3 lines
Pull up following revision(s) (requested by rmind in ticket #80):
	sys/netinet6/in6_pcb.c: revision 1.129
	sys/netinet/in_pcb.c: revision 1.152
in_pcbdetach: move ip_freemoptions() under softnet_lock for now (this will
be changed back once other IP paths become MP-safe).  Same for IPv6 routine.
This partially reverts 1.150 of in_pcb.c and 1.127 of in6_pcb.c changes.

Revision 1.129: download - view: text, markup, annotated - select for diffs
Sun Sep 7 00:50:56 2014 UTC (10 years, 3 months ago) by rmind
Branches: MAIN
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +3 -3 lines
in_pcbdetach: move ip_freemoptions() under softnet_lock for now (this will
be changed back once other IP paths become MP-safe).  Same for IPv6 routine.

This partially reverts 1.150 of in_pcb.c and 1.127 of in6_pcb.c changes.

Revision 1.121.2.2: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:04:36 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.121.2.1: preferred, colored; branchpoint 1.121: preferred, colored
Changes since revision 1.121.2.1: +37 -39 lines
Rebase to HEAD as of a few days ago.

Revision 1.124.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:56:30 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.124: preferred, colored; next MAIN 1.125: preferred, colored
Changes since revision 1.124: +29 -24 lines
Rebase.

Revision 1.128: download - view: text, markup, annotated - select for diffs
Tue Aug 5 05:24:27 2014 UTC (10 years, 4 months ago) by rtr
Branches: MAIN
CVS tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base
Branch point for: netbsd-7
Diff to: previous 1.127: preferred, colored
Changes since revision 1.127: +6 -6 lines
revert the removal of struct lwp * parameter from bind, listen and connect
user requests.

this should resolve the issue relating to nfs client hangs presented
recently by wiz on current-users@

Revision 1.127: download - view: text, markup, annotated - select for diffs
Sun Aug 3 22:55:24 2014 UTC (10 years, 4 months ago) by rmind
Branches: MAIN
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +16 -12 lines
in6_pcbdetach: now that IGMP and multicast groups are MP-safe, we can move
the ip6_freemoptions() call outside the softnet_lock.  Should fix PR/49065.

Revision 1.126: download - view: text, markup, annotated - select for diffs
Thu Jul 24 15:12:03 2014 UTC (10 years, 4 months ago) by rtr
Branches: MAIN
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +6 -6 lines
split PRU_BIND and PRU_LISTEN function out of pr_generic() usrreq
switches and put into separate functions
  xxx_bind(struct socket *, struct mbuf *)
  xxx_listen(struct socket *)

  - always KASSERT(solocked(so)) even if not implemented

  - replace calls to pr_generic() with req = PRU_BIND with call to
    pr_bind()

  - replace calls to pr_generic() with req = PRU_LISTEN with call to
    pr_listen()

  - drop struct lwp * parameter from at_pcbsetaddr(), in_pcbbind() and
    unp_bind() and always use curlwp.

rename existing functions that operate on PCB for consistency (and to
free up their names for xxx_{bind,listen}() PRUs

  - l2cap_{bind,listen}() -> l2cap_{bind,listen}_pcb()
  - sco_{bind,listen}() -> sco_{bind,listen}_pcb()
  - rfcomm_{bind,listen}() -> rfcomm_{bind,listen}_pcb()

patch reviewed by rmind

welcome to netbsd 6.99.48

Revision 1.125: download - view: text, markup, annotated - select for diffs
Fri May 30 01:39:03 2014 UTC (10 years, 6 months ago) by christos
Branches: MAIN
Diff to: previous 1.124: preferred, colored
Changes since revision 1.124: +15 -14 lines
Introduce 2 new variables: ipsec_enabled and ipsec_used.
Ipsec enabled is controlled by sysctl and determines if is allowed.
ipsec_used is set automatically based on ipsec being enabled, and
rules existing.

Revision 1.116.2.3: download - view: text, markup, annotated - select for diffs
Thu May 22 11:41:10 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.116.2.2: preferred, colored; branchpoint 1.116: preferred, colored; next MAIN 1.117: preferred, colored
Changes since revision 1.116.2.2: +24 -27 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.123.2.3: download - view: text, markup, annotated - select for diffs
Sun May 18 17:46:13 2014 UTC (10 years, 6 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.123.2.2: preferred, colored; branchpoint 1.123: preferred, colored; next MAIN 1.124: preferred, colored
Changes since revision 1.123.2.2: +13 -20 lines
sync with head

Revision 1.124: download - view: text, markup, annotated - select for diffs
Sat Nov 23 14:20:22 2013 UTC (11 years ago) by christos
Branches: MAIN
CVS tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +13 -20 lines
convert from CIRCLEQ to TAILQ.

Revision 1.123.2.2: download - view: text, markup, annotated - select for diffs
Mon Sep 23 00:57:53 2013 UTC (11 years, 2 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.123.2.1: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.2.1: +3 -3 lines
- Add some initial locking to the IPv4 PCB.
- Rename inpcb_lookup_*() routines to be more accurate and add comments.
- Add some comments about connection life-cycle WRT socket layer.

Revision 1.123.2.1: download - view: text, markup, annotated - select for diffs
Wed Jul 17 03:16:31 2013 UTC (11 years, 4 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +19 -18 lines
Checkpoint work in progress:
- Move PCB structures under __INPCB_PRIVATE, adjust most of the callers
  and thus make IPv4 PCB structures mostly opaque.  Any volunteers for
  merging in6pcb with inpcb (see rpaulo-netinet-merge-pcb branch)?
- Move various global vars to the modules where they belong, make them static.
- Some preliminary work for IPv4 PCB locking scheme.
- Make raw IP code mostly MP-safe.  Simplify some of it.
- Rework "fast" IP forwarding (ipflow) code to be mostly MP-safe.  It should
  run from a software interrupt, rather than hard.
- Rework tun(4) pseudo interface to be MP-safe.
- Work towards making some other interfaces more strict.

Revision 1.121.2.1: download - view: text, markup, annotated - select for diffs
Sun Jun 23 06:20:25 2013 UTC (11 years, 5 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.121: preferred, colored
Changes since revision 1.121: +13 -9 lines
resync from head

Revision 1.123: download - view: text, markup, annotated - select for diffs
Wed Jun 5 19:01:26 2013 UTC (11 years, 6 months ago) by christos
Branches: MAIN
CVS tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Branch point for: rmind-smpnet
Diff to: previous 1.122: preferred, colored
Changes since revision 1.122: +9 -9 lines
IPSEC has not come in two speeds for a long time now (IPSEC == kame,
FAST_IPSEC). Make everything refer to IPSEC to avoid confusion.

Revision 1.122: download - view: text, markup, annotated - select for diffs
Fri Apr 12 21:30:40 2013 UTC (11 years, 7 months ago) by christos
Branches: MAIN
CVS tags: khorben-n900
Diff to: previous 1.121: preferred, colored
Changes since revision 1.121: +6 -2 lines
PR/47738: connect(2) to 239.x.y.z should return error but does not.

Revision 1.116.2.2: download - view: text, markup, annotated - select for diffs
Tue Oct 30 17:22:48 2012 UTC (12 years, 1 month ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.116.2.1: preferred, colored; branchpoint 1.116: preferred, colored
Changes since revision 1.116.2.1: +4 -5 lines
sync with head

Revision 1.121: download - view: text, markup, annotated - select for diffs
Fri Aug 24 06:03:18 2012 UTC (12 years, 3 months ago) by dholland
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, agc-symver-base, agc-symver
Branch point for: tls-maxphys
Diff to: previous 1.120: preferred, colored
Changes since revision 1.120: +2 -3 lines
Remove stray #undef, probably someone's debugging leftover from long ago.

Revision 1.120: download - view: text, markup, annotated - select for diffs
Mon Jun 25 15:28:39 2012 UTC (12 years, 5 months ago) by christos
Branches: MAIN
Diff to: previous 1.119: preferred, colored
Changes since revision 1.119: +4 -4 lines
rename rfc6056 -> portalgo, requested by yamt

Revision 1.116.2.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:08:43 2012 UTC (12 years, 7 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +8 -13 lines
sync with head

Revision 1.116.6.2: download - view: text, markup, annotated - select for diffs
Thu Apr 5 21:33:46 2012 UTC (12 years, 8 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.116.6.1: preferred, colored; branchpoint 1.116: preferred, colored; next MAIN 1.117: preferred, colored
Changes since revision 1.116.6.1: +7 -12 lines
sync to latest -current.

Revision 1.119: download - view: text, markup, annotated - select for diffs
Thu Mar 22 20:34:40 2012 UTC (12 years, 8 months ago) by drochner
Branches: MAIN
CVS tags: yamt-pagecache-base5, yamt-pagecache-base4, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base10
Diff to: previous 1.118: preferred, colored
Changes since revision 1.118: +7 -12 lines
remove KAME IPSEC, replaced by FAST_IPSEC

Revision 1.116.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:35:42 2012 UTC (12 years, 9 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +10 -10 lines
merge to -current.

Revision 1.118: download - view: text, markup, annotated - select for diffs
Sat Dec 31 20:41:59 2011 UTC (12 years, 11 months ago) by christos
Branches: MAIN
CVS tags: netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +3 -3 lines
- fix offsetof usage, and redundant defines
- kill pointer casts to 0

Revision 1.117: download - view: text, markup, annotated - select for diffs
Mon Dec 19 11:59:58 2011 UTC (12 years, 11 months ago) by drochner
Branches: MAIN
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +9 -9 lines
rename the IPSEC in-kernel CPP variable and config(8) option to
KAME_IPSEC, and make IPSEC define it so that existing kernel
config files work as before
Now the default can be easily be changed to FAST_IPSEC just by
setting the IPSEC alias to FAST_IPSEC.

Revision 1.116: download - view: text, markup, annotated - select for diffs
Sat Sep 24 17:22:14 2011 UTC (13 years, 2 months ago) by christos
Branches: MAIN
CVS tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, jmcneill-usbmp
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +17 -2 lines
Add inet6 part of the rfc6056 code contributed by Vlad Balan as part of
Google SoC-2011

Revision 1.115: download - view: text, markup, annotated - select for diffs
Wed Aug 31 18:31:03 2011 UTC (13 years, 3 months ago) by plunky
Branches: MAIN
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +3 -3 lines
NULL does not need a cast

Revision 1.112.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:09:58 2011 UTC (13 years, 6 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.112: preferred, colored; next MAIN 1.113: preferred, colored
Changes since revision 1.112: +89 -8 lines
Sync with HEAD.

Revision 1.110.4.2: download - view: text, markup, annotated - select for diffs
Tue May 31 03:05:08 2011 UTC (13 years, 6 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.110.4.1: preferred, colored; branchpoint 1.110: preferred, colored; next MAIN 1.111: preferred, colored
Changes since revision 1.110.4.1: +87 -6 lines
sync with head

Revision 1.114: download - view: text, markup, annotated - select for diffs
Wed May 4 01:45:48 2011 UTC (13 years, 7 months ago) by dyoung
Branches: MAIN
CVS tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, cherry-xenmp
Diff to: previous 1.113: preferred, colored
Changes since revision 1.113: +5 -2 lines
Invalidate the vestigital PCB at the top of in6_pcblookup_connect() to
fix the bug where incoming TCPv6 connections were reset.

Revision 1.113: download - view: text, markup, annotated - select for diffs
Tue May 3 18:28:45 2011 UTC (13 years, 7 months ago) by dyoung
Branches: MAIN
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +86 -8 lines
Reduces the resources demanded by TCP sessions in TIME_WAIT-state using
methods called Vestigial Time-Wait (VTW) and Maximum Segment Lifetime
Truncation (MSLT).

MSLT and VTW were contributed by Coyote Point Systems, Inc.

Even after a TCP session enters the TIME_WAIT state, its corresponding
socket and protocol control blocks (PCBs) stick around until the TCP
Maximum Segment Lifetime (MSL) expires.  On a host whose workload
necessarily creates and closes down many TCP sockets, the sockets & PCBs
for TCP sessions in TIME_WAIT state amount to many megabytes of dead
weight in RAM.

Maximum Segment Lifetimes Truncation (MSLT) assigns each TCP session to
a class based on the nearness of the peer.  Corresponding to each class
is an MSL, and a session uses the MSL of its class.  The classes are
loopback (local host equals remote host), local (local host and remote
host are on the same link/subnet), and remote (local host and remote
host communicate via one or more gateways).  Classes corresponding to
nearer peers have lower MSLs by default: 2 seconds for loopback, 10
seconds for local, 60 seconds for remote.  Loopback and local sessions
expire more quickly when MSLT is used.

Vestigial Time-Wait (VTW) replaces a TIME_WAIT session's PCB/socket
dead weight with a compact representation of the session, called a
"vestigial PCB".  VTW data structures are designed to be very fast and
memory-efficient: for fast insertion and lookup of vestigial PCBs,
the PCBs are stored in a hash table that is designed to minimize the
number of cacheline visits per lookup/insertion.  The memory both
for vestigial PCBs and for elements of the PCB hashtable come from
fixed-size pools, and linked data structures exploit this to conserve
memory by representing references with a narrow index/offset from the
start of a pool instead of a pointer.  When space for new vestigial PCBs
runs out, VTW makes room by discarding old vestigial PCBs, oldest first.
VTW cooperates with MSLT.

It may help to think of VTW as a "FIN cache" by analogy to the SYN
cache.

A 2.8-GHz Pentium 4 running a test workload that creates TIME_WAIT
sessions as fast as it can is approximately 17% idle when VTW is active
versus 0% idle when VTW is inactive.  It has 103 megabytes more free RAM
when VTW is active (approximately 64k vestigial PCBs are created) than
when it is inactive.

Revision 1.110.4.1: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:55:58 2011 UTC (13 years, 9 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +5 -3 lines
sync with head

Revision 1.110.2.1: download - view: text, markup, annotated - select for diffs
Fri Oct 22 07:22:40 2010 UTC (14 years, 1 month ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.110: preferred, colored; next MAIN 1.111: preferred, colored
Changes since revision 1.110: +5 -3 lines
Sync with HEAD (-D20101022).

Revision 1.97.2.4: download - view: text, markup, annotated - select for diffs
Sat Oct 9 03:32:38 2010 UTC (14 years, 1 month ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.97.2.3: preferred, colored; branchpoint 1.97: preferred, colored; next MAIN 1.98: preferred, colored
Changes since revision 1.97.2.3: +5 -3 lines
sync with head

Revision 1.112: download - view: text, markup, annotated - select for diffs
Fri Aug 20 16:38:16 2010 UTC (14 years, 3 months ago) by joerg
Branches: MAIN
CVS tags: yamt-nfs-mp-base11, uebayasi-xip-base4, uebayasi-xip-base3, matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: jruoho-x86intr
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +3 -3 lines
Remove stray {

Revision 1.111: download - view: text, markup, annotated - select for diffs
Fri Aug 20 15:01:11 2010 UTC (14 years, 3 months ago) by joerg
Branches: MAIN
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +5 -3 lines
Consider a mapped IPv4 address of 0.0.0.0 as unspecified. This allows
using mapped IPv4 address with connect without preceding bind.

Revision 1.99.8.2: download - view: text, markup, annotated - select for diffs
Thu Jul 23 23:32:52 2009 UTC (15 years, 4 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.99.8.1: preferred, colored; branchpoint 1.99: preferred, colored; next MAIN 1.100: preferred, colored
Changes since revision 1.99.8.1: +16 -4 lines
Sync with HEAD.

Revision 1.97.2.3: download - view: text, markup, annotated - select for diffs
Sat Jun 20 07:20:34 2009 UTC (15 years, 5 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.97.2.2: preferred, colored; branchpoint 1.97: preferred, colored
Changes since revision 1.97.2.2: +16 -4 lines
sync with head

Revision 1.110: download - view: text, markup, annotated - select for diffs
Tue May 26 00:17:56 2009 UTC (15 years, 6 months ago) by pooka
Branches: MAIN
CVS tags: yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base10, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, matt-premerge-20091211, jymxensuspend-base, jym-xensuspend-nbase
Branch point for: uebayasi-xip, rmind-uvmplock
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +16 -4 lines
POOL_INIT -> pool_init

Revision 1.97.2.2: download - view: text, markup, annotated - select for diffs
Sat May 16 10:41:50 2009 UTC (15 years, 6 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.97.2.1: preferred, colored; branchpoint 1.97: preferred, colored
Changes since revision 1.97.2.1: +3 -3 lines
sync with head

Revision 1.99.8.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:22:29 2009 UTC (15 years, 6 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +179 -120 lines
Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.109: download - view: text, markup, annotated - select for diffs
Tue May 12 22:22:46 2009 UTC (15 years, 6 months ago) by elad
Branches: MAIN
CVS tags: yamt-nfs-mp-base4, jym-xensuspend-base
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +3 -3 lines
Implicit EPERM -> explicit EACCES.

Requested by ad@ and yamt@.

Revision 1.97.2.1: download - view: text, markup, annotated - select for diffs
Mon May 4 08:14:18 2009 UTC (15 years, 7 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +182 -124 lines
sync with head.

Revision 1.108: download - view: text, markup, annotated - select for diffs
Sat May 2 18:58:03 2009 UTC (15 years, 7 months ago) by elad
Branches: MAIN
CVS tags: yamt-nfs-mp-base3
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +6 -4 lines
Replace wrong __UNCONST() use with a local variable.

Similar to issues pointed out by bouyer@ and forgotten by me when I did
the last commit.

Should fix issues reported on current-users@ in:

    http://mail-index.netbsd.org/current-users/2009/05/02/msg009273.html

Revision 1.107: download - view: text, markup, annotated - select for diffs
Thu Apr 30 18:18:34 2009 UTC (15 years, 7 months ago) by elad
Branches: MAIN
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +5 -5 lines
- Make in6_pcbbind_{addr,port}() static

- Properly authorize port binding in in_pcbsetport() and in6_pcbsetport()

- Pass struct sockaddr_in6 to in6_pcbsetport() instead of just the address,
  so that we have a more complete context

- Adjust udp6_output() to craft a sockaddr_in6 as it calls in6_pcbsetport()

- Fix an issue in in_pcbbind() where we used the "dom_sa_any" pointer and
  not a copy of it, pointed out by bouyer@, thanks!

Mailing list reference:

	http://mail-index.netbsd.org/tech-net/2009/04/29/msg001259.html

Revision 1.99.2.1: download - view: text, markup, annotated - select for diffs
Tue Apr 28 07:37:23 2009 UTC (15 years, 7 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.99: preferred, colored; next MAIN 1.100: preferred, colored
Changes since revision 1.99: +175 -118 lines
Sync with HEAD.

Revision 1.106: download - view: text, markup, annotated - select for diffs
Wed Apr 22 18:35:01 2009 UTC (15 years, 7 months ago) by elad
Branches: MAIN
CVS tags: nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +19 -17 lines
Only check if the port is used if it was specified.

Should fix problem reported in

    http://mail-index.netbsd.org/current-users/2009/04/22/msg009130.html

Revision 1.105: download - view: text, markup, annotated - select for diffs
Mon Apr 20 19:57:18 2009 UTC (15 years, 7 months ago) by elad
Branches: MAIN
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +17 -14 lines
Replace KAUTH_GENERIC_ISSUSER with a better alternative.

Revision 1.104: download - view: text, markup, annotated - select for diffs
Mon Apr 20 18:14:30 2009 UTC (15 years, 7 months ago) by elad
Branches: MAIN
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +163 -110 lines
Extract in6_pcbbind()'s guts into two new routines: in6_pcbbind_addr() and
in6_pcbbind_port(), used for binding to an address and a port respectively.

While here, fix a possible "leak" of an in6pcb when binding to an address
succeeded but binding to an auto-assigned port failed.

Proposed and received no objections on tech-net@:

	http://mail-index.netbsd.org/tech-net/2009/04/15/msg001223.html

Revision 1.103: download - view: text, markup, annotated - select for diffs
Sat Apr 18 14:58:05 2009 UTC (15 years, 7 months ago) by tsutsui
Branches: MAIN
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +4 -4 lines
Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch

Revision 1.102: download - view: text, markup, annotated - select for diffs
Tue Apr 14 21:25:20 2009 UTC (15 years, 7 months ago) by elad
Branches: MAIN
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +2 -3 lines
Don't set sin->sin_port and sin6->sin6_port to 0 before calling
ifa_ifwithaddr(), as we no longer do a byte compare on the entire struct.

Reviewed by and okay from dyoung@.

Revision 1.101: download - view: text, markup, annotated - select for diffs
Wed Mar 18 17:06:52 2009 UTC (15 years, 8 months ago) by cegger
Branches: MAIN
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +4 -4 lines
bcopy -> memcpy

Revision 1.100: download - view: text, markup, annotated - select for diffs
Wed Mar 18 16:00:22 2009 UTC (15 years, 8 months ago) by cegger
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +8 -8 lines
bzero -> memset

Revision 1.97.8.1: download - view: text, markup, annotated - select for diffs
Sun Oct 19 22:17:52 2008 UTC (16 years, 1 month ago) by haad
Branches: haad-dm
Diff to: previous 1.97: preferred, colored; next MAIN 1.98: preferred, colored
Changes since revision 1.97: +5 -6 lines
Sync with HEAD.

Revision 1.94.6.3: download - view: text, markup, annotated - select for diffs
Sun Sep 28 10:40:59 2008 UTC (16 years, 2 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.94.6.2: preferred, colored; branchpoint 1.94: preferred, colored; next MAIN 1.95: preferred, colored
Changes since revision 1.94.6.2: +3 -4 lines
Sync with HEAD.

Revision 1.97.4.1: download - view: text, markup, annotated - select for diffs
Thu Sep 18 04:37:01 2008 UTC (16 years, 2 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.97: preferred, colored; next MAIN 1.98: preferred, colored
Changes since revision 1.97: +5 -6 lines
Sync with wrstuden-revivesa-base-2.

Revision 1.99: download - view: text, markup, annotated - select for diffs
Wed Aug 20 18:35:20 2008 UTC (16 years, 3 months ago) by matt
Branches: MAIN
CVS tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, nick-hppapmap-base2, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, mjf-devfs2-base, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, jym-xensuspend
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +3 -3 lines
Make the sysctl routines take out softnet_lock before dealing with
any data structures.

Change inet6ctlerrmap and zeroin6_addr to const.

Revision 1.98: download - view: text, markup, annotated - select for diffs
Mon Aug 4 06:47:52 2008 UTC (16 years, 4 months ago) by matt
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +4 -5 lines
Free the socket only after disposing of the PCB.

Revision 1.94.6.2: download - view: text, markup, annotated - select for diffs
Mon Jun 2 13:24:26 2008 UTC (16 years, 6 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.94.6.1: preferred, colored; branchpoint 1.94: preferred, colored
Changes since revision 1.94.6.1: +2 -0 lines
Sync with HEAD.

Revision 1.96.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:35:35 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.96: preferred, colored; next MAIN 1.97: preferred, colored
Changes since revision 1.96: +4 -2 lines
sync with head.

Revision 1.97: download - view: text, markup, annotated - select for diffs
Thu Apr 24 11:38:38 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base2, yamt-nfs-mp-base, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, hpcarm-cleanup-nbase
Branch point for: yamt-nfs-mp, wrstuden-revivesa, haad-dm
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +4 -2 lines
Merge the socket locking patch:

- Socket layer becomes MP safe.
- Unix protocols become MP safe.
- Allows protocol processing interrupts to safely block on locks.
- Fixes a number of race conditions.

With much feedback from matt@ and plunky@.

Revision 1.94.6.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:43:08 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +4 -7 lines
Sync with HEAD.

Revision 1.67.2.8: download - view: text, markup, annotated - select for diffs
Mon Mar 24 09:39:10 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.7: preferred, colored; branchpoint 1.67: preferred, colored; next MAIN 1.68: preferred, colored
Changes since revision 1.67.2.7: +4 -7 lines
sync with head.

Revision 1.94.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:16:24 2008 UTC (16 years, 8 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.94: preferred, colored; next MAIN 1.95: preferred, colored
Changes since revision 1.94: +4 -7 lines
sync with head.

Revision 1.88.6.2: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:05:07 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.88.6.1: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.6.1: +28 -33 lines
sync with HEAD

Revision 1.96: download - view: text, markup, annotated - select for diffs
Thu Mar 20 20:32:00 2008 UTC (16 years, 8 months ago) by dyoung
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Branch point for: yamt-pf42
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +4 -5 lines
Use ip6_clearpktopts() to destroy the IPv6 PCB's in6p_outputopts,
so that there's no chance of either leaking memory, or leaving
dangling pointers to a route cache.

Revision 1.95: download - view: text, markup, annotated - select for diffs
Wed Mar 19 08:10:18 2008 UTC (16 years, 8 months ago) by dyoung
Branches: MAIN
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +2 -4 lines
No code ever sets struct ip6_pktopts member ip6po_m, so get rid of
it.

Revision 1.88.12.4: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:07:13 2008 UTC (16 years, 9 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.88.12.3: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.12.3: +26 -28 lines
Sync with HEAD.

Revision 1.67.2.7: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:47:22 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.6: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.2.6: +35 -32 lines
sync with head

Revision 1.90.6.3: download - view: text, markup, annotated - select for diffs
Sat Jan 19 12:15:34 2008 UTC (16 years, 10 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.90.6.2: preferred, colored; branchpoint 1.90: preferred, colored; next MAIN 1.91: preferred, colored
Changes since revision 1.90.6.2: +21 -23 lines
Sync with HEAD

Revision 1.94: download - view: text, markup, annotated - select for diffs
Mon Jan 14 04:16:45 2008 UTC (16 years, 10 months ago) by dyoung
Branches: MAIN
CVS tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Branch point for: mjf-devfs2, keiichi-mipv6
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +21 -20 lines
Use rtcache_validate() instead of rtcache_getrt().  Shorten staircase
in in6_losing().

Revision 1.93: download - view: text, markup, annotated - select for diffs
Sat Jan 12 02:58:58 2008 UTC (16 years, 10 months ago) by dyoung
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +4 -7 lines
Good-bye, rtcache_check().  Call both rtcache_validate() and
rtcache_update(,1) instead of rtcache_check().

Revision 1.90.6.2: download - view: text, markup, annotated - select for diffs
Thu Jan 10 23:44:37 2008 UTC (16 years, 10 months ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.90.6.1: preferred, colored; branchpoint 1.90: preferred, colored
Changes since revision 1.90.6.1: +3 -3 lines
Sync with HEAD

Revision 1.92: download - view: text, markup, annotated - select for diffs
Thu Jan 10 08:06:11 2008 UTC (16 years, 10 months ago) by dyoung
Branches: MAIN
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +5 -5 lines
Save some rtcache_getrt() calls.

Revision 1.88.6.1: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:57:35 2008 UTC (16 years, 10 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +44 -29 lines
sync with HEAD

Revision 1.90.6.1: download - view: text, markup, annotated - select for diffs
Wed Jan 2 21:57:29 2008 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +17 -12 lines
Sync with HEAD

Revision 1.88.12.3: download - view: text, markup, annotated - select for diffs
Thu Dec 27 00:46:32 2007 UTC (16 years, 11 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.88.12.2: preferred, colored; branchpoint 1.88: preferred, colored
Changes since revision 1.88.12.2: +17 -12 lines
Sync with HEAD.

Revision 1.90.2.1: download - view: text, markup, annotated - select for diffs
Wed Dec 26 19:57:45 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.90: preferred, colored; next MAIN 1.91: preferred, colored
Changes since revision 1.90: +17 -12 lines
Sync with head.

Revision 1.91: download - view: text, markup, annotated - select for diffs
Thu Dec 20 19:53:33 2007 UTC (16 years, 11 months ago) by dyoung
Branches: MAIN
CVS tags: vmlocking2-base3, matt-armv6-base
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +17 -12 lines
Poison struct route->ro_rt uses in the kernel by changing the name
to _ro_rt.  Use rtcache_getrt() to access a route cache's struct
rtentry *.

Introduce struct ifnet->if_dl that always points at the interface
identifier/link-layer address.  Make code that treated the first
ifaddr on struct ifnet->if_addrlist as the interface address use
if_dl, instead.

Remove stale debugging code from net/route.c.  Move the rtflush()
code into rtcache_clear() and delete rtflush().  Delete rtalloc(),
because nothing uses it any more.

Make ND6_HINT an inline, lowercase subroutine, nd6_hint.

I've done my best to convert IP Filter, the ISO stack, and the
AppleTalk stack to rtcache_getrt().  They compile, but I have not
tested them.  I have given the changes to PF, GRE, IPv4 and IPv6
stacks a lot of exercise.

Revision 1.88.12.2: download - view: text, markup, annotated - select for diffs
Sat Dec 8 18:21:16 2007 UTC (17 years ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.88.12.1: preferred, colored; branchpoint 1.88: preferred, colored
Changes since revision 1.88.12.1: +27 -9 lines
Sync with HEAD.

Revision 1.67.2.6: download - view: text, markup, annotated - select for diffs
Fri Dec 7 17:34:35 2007 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.5: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.2.5: +27 -9 lines
sync with head

Revision 1.88.4.2: download - view: text, markup, annotated - select for diffs
Tue Nov 27 19:38:58 2007 UTC (17 years ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.88.4.1: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.4.1: +27 -9 lines
Sync with HEAD. amd64 Xen support needs testing.

Revision 1.88.10.2: download - view: text, markup, annotated - select for diffs
Thu Nov 22 15:18:24 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.88.10.1: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.10.1: +27 -9 lines
Sync with HEAD

Revision 1.90: download - view: text, markup, annotated - select for diffs
Wed Nov 21 21:18:25 2007 UTC (17 years ago) by drochner
Branches: MAIN
CVS tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base
Branch point for: vmlocking2, bouyer-xeni386
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +27 -9 lines
Fix in6_pcbrtentry() for the case of IPv6-mapped IPv4 addresses:
don't assume that the cached route is a sockaddr_in6, and do the
right comparisions so that no out-of-bounds memory is accessed.

btw, the use of "#ifdef INET" throughout the source doesn't look clean
to me: There are 2 cases -- whether AF_INET is usable by userland
programs, and whether IPv4 is supported as on-wire protocol.

Revision 1.88.12.1: download - view: text, markup, annotated - select for diffs
Mon Nov 19 00:49:12 2007 UTC (17 years ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +4 -12 lines
Sync with HEAD.

Revision 1.67.2.5: download - view: text, markup, annotated - select for diffs
Thu Nov 15 11:45:11 2007 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.4: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.2.4: +4 -12 lines
sync with head.

Revision 1.88.10.1: download - view: text, markup, annotated - select for diffs
Tue Nov 13 16:02:55 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +4 -12 lines
Sync with HEAD

Revision 1.88.4.1: download - view: text, markup, annotated - select for diffs
Sun Nov 11 16:48:33 2007 UTC (17 years ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +4 -12 lines
Sync with HEAD.

Revision 1.89: download - view: text, markup, annotated - select for diffs
Sat Nov 10 00:14:31 2007 UTC (17 years ago) by dyoung
Branches: MAIN
CVS tags: bouyer-xenamd64-base2
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +4 -12 lines
Use sockaddr_in6_init().

Revision 1.67.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:43:29 2007 UTC (17 years, 3 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.3: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.2.3: +66 -86 lines
sync with head.

Revision 1.84.2.3: download - view: text, markup, annotated - select for diffs
Mon Aug 20 21:28:04 2007 UTC (17 years, 3 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84.2.2: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84.2.2: +4 -4 lines
Sync with HEAD.

Revision 1.87.2.1: download - view: text, markup, annotated - select for diffs
Wed Aug 15 13:49:49 2007 UTC (17 years, 3 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87: +4 -4 lines
Sync with HEAD.

Revision 1.88.14.2: download - view: text, markup, annotated - select for diffs
Thu Jul 19 20:48:57 2007 UTC (17 years, 4 months ago) by dyoung
Branches: matt-mips64
Diff to: previous 1.88.14.1: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.14.1: +1103 -0 lines
Take steps to hide the radix_node implementation of the forwarding table
from the forwarding table's users:

        Introduce rt_walktree() for walking the routing table and
        applying a function to each rtentry.  Replace most
        rn_walktree() calls with it.

        Use rt_getkey()/rt_setkey() to get/set a route's destination.
        Keep a pointer to the sockaddr key in the rtentry, so that
        rtentry users do not have to grovel in the radix_node for
        the key.

        Add a RTM_GET method to rtrequest.  Use that instead of
        radix_node lookups in, e.g., carp(4).

Add sys/net/link_proto.c, which supplies sockaddr routines for
link-layer socket addresses (sockaddr_dl).

Cosmetic:

        Constify.  KNF.  Stop open-coding LIST_FOREACH, TAILQ_FOREACH,
        et cetera.  Use NULL instead of 0 for null pointers.  Use
        __arraycount().  Reduce gratuitous parenthesization.

        Stop using variadic arguments for rip6_output(), it is
        unnecessary.

        Remove the unnecessary rtentry member rt_genmask and the
        code to maintain it, since nothing actually used it.

        Make rt_maskedcopy() easier to read by using meaningful variable
        names.

        Extract a subroutine intern_netmask() for looking up a netmask in
        the masks table.

        Start converting backslash-ridden IPv6 macros in
        sys/netinet6/in6_var.h into inline subroutines that one
        can read without special eyeglasses.

One functional change: when the kernel serves an RTM_GET, RTM_LOCK,
or RTM_CHANGE request, it applies the netmask (if supplied) to a
destination before searching for it in the forwarding table.

I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove
the unlawful radix_node knowledge.

Apart from the changes to carp(4), netiso, ATM, and strip(4), I
have run the changes on three nodes in my wireless routing testbed,
which involves IPv4 + IPv6 dynamic routing acrobatics, and it's
working beautifully so far.

Revision 1.88.14.1
Thu Jul 19 20:48:56 2007 UTC (17 years, 4 months ago) by dyoung
Branches: matt-mips64
FILE REMOVED
Changes since revision 1.88: +0 -1103 lines
file in6_pcb.c was added on branch matt-mips64 on 2007-07-19 20:48:57 +0000

Revision 1.88: download - view: text, markup, annotated - select for diffs
Thu Jul 19 20:48:56 2007 UTC (17 years, 4 months ago) by dyoung
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, vmlocking-base, nick-csl-alignment-base5, matt-mips64-base, matt-armv6-prevmlocking, jmcneill-base, hpcarm-cleanup
Branch point for: mjf-devfs, matt-mips64, matt-armv6, jmcneill-pm, bouyer-xenamd64
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +4 -4 lines
Take steps to hide the radix_node implementation of the forwarding table
from the forwarding table's users:

        Introduce rt_walktree() for walking the routing table and
        applying a function to each rtentry.  Replace most
        rn_walktree() calls with it.

        Use rt_getkey()/rt_setkey() to get/set a route's destination.
        Keep a pointer to the sockaddr key in the rtentry, so that
        rtentry users do not have to grovel in the radix_node for
        the key.

        Add a RTM_GET method to rtrequest.  Use that instead of
        radix_node lookups in, e.g., carp(4).

Add sys/net/link_proto.c, which supplies sockaddr routines for
link-layer socket addresses (sockaddr_dl).

Cosmetic:

        Constify.  KNF.  Stop open-coding LIST_FOREACH, TAILQ_FOREACH,
        et cetera.  Use NULL instead of 0 for null pointers.  Use
        __arraycount().  Reduce gratuitous parenthesization.

        Stop using variadic arguments for rip6_output(), it is
        unnecessary.

        Remove the unnecessary rtentry member rt_genmask and the
        code to maintain it, since nothing actually used it.

        Make rt_maskedcopy() easier to read by using meaningful variable
        names.

        Extract a subroutine intern_netmask() for looking up a netmask in
        the masks table.

        Start converting backslash-ridden IPv6 macros in
        sys/netinet6/in6_var.h into inline subroutines that one
        can read without special eyeglasses.

One functional change: when the kernel serves an RTM_GET, RTM_LOCK,
or RTM_CHANGE request, it applies the netmask (if supplied) to a
destination before searching for it in the forwarding table.

I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove
the unlawful radix_node knowledge.

Apart from the changes to carp(4), netiso, ATM, and strip(4), I
have run the changes on three nodes in my wireless routing testbed,
which involves IPv4 + IPv6 dynamic routing acrobatics, and it's
working beautifully so far.

Revision 1.85.2.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 20:11:39 2007 UTC (17 years, 4 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.85: preferred, colored; next MAIN 1.86: preferred, colored
Changes since revision 1.85: +56 -77 lines
Sync with head.

Revision 1.84.2.2: download - view: text, markup, annotated - select for diffs
Fri Jun 8 14:17:53 2007 UTC (17 years, 6 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84.2.1: preferred, colored
Changes since revision 1.84.2.1: +56 -77 lines
Sync with head.

Revision 1.87: download - view: text, markup, annotated - select for diffs
Wed May 23 17:15:01 2007 UTC (17 years, 6 months ago) by christos
Branches: MAIN
CVS tags: nick-csl-alignment-base, mjf-ufs-trans-base
Branch point for: nick-csl-alignment
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +19 -49 lines
Ansify + add a few comments, from Karl Sjödahl

Revision 1.82.2.4: download - view: text, markup, annotated - select for diffs
Mon May 7 10:56:02 2007 UTC (17 years, 7 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.82.2.3: preferred, colored; branchpoint 1.82: preferred, colored; next MAIN 1.83: preferred, colored
Changes since revision 1.82.2.3: +39 -30 lines
sync with head.

Revision 1.86: download - view: text, markup, annotated - select for diffs
Wed May 2 20:40:26 2007 UTC (17 years, 7 months ago) by dyoung
Branches: MAIN
CVS tags: yamt-idlelwp-base8
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +39 -30 lines
Eliminate address family-specific route caches (struct route, struct
route_in6, struct route_iso), replacing all caches with a struct
route.

The principle benefit of this change is that all of the protocol
families can benefit from route cache-invalidation, which is
necessary for correct routing.  Route-cache invalidation fixes an
ancient PR, kern/3508, at long last; it fixes various other PRs,
also.

Discussions with and ideas from Joerg Sonnenberger influenced this
work tremendously.  Of course, all design oversights and bugs are
mine.

DETAILS

1 I added to each address family a pool of sockaddrs.  I have
  introduced routines for allocating, copying, and duplicating,
  and freeing sockaddrs:

        struct sockaddr *sockaddr_alloc(sa_family_t af, int flags);
        struct sockaddr *sockaddr_copy(struct sockaddr *dst,
                                       const struct sockaddr *src);
        struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags);
        void sockaddr_free(struct sockaddr *sa);

  sockaddr_alloc() returns either a sockaddr from the pool belonging
  to the specified family, or NULL if the pool is exhausted.  The
  returned sockaddr has the right size for that family; sa_family
  and sa_len fields are initialized to the family and sockaddr
  length---e.g., sa_family = AF_INET and sa_len = sizeof(struct
  sockaddr_in).  sockaddr_free() puts the given sockaddr back into
  its family's pool.

  sockaddr_dup() and sockaddr_copy() work analogously to strdup()
  and strcpy(), respectively.  sockaddr_copy() KASSERTs that the
  family of the destination and source sockaddrs are alike.

  The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is
  passed directly to pool_get(9).

2 I added routines for initializing sockaddrs in each address
  family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(),
  etc.  They are fairly self-explanatory.

3 structs route_in6 and route_iso are no more.  All protocol families
  use struct route.  I have changed the route cache, 'struct route',
  so that it does not contain storage space for a sockaddr.  Instead,
  struct route points to a sockaddr coming from the pool the sockaddr
  belongs to.  I added a new method to struct route, rtcache_setdst(),
  for setting the cache destination:

        int rtcache_setdst(struct route *, const struct sockaddr *);

  rtcache_setdst() returns 0 on success, or ENOMEM if no memory is
  available to create the sockaddr storage.

  It is now possible for rtcache_getdst() to return NULL if, say,
  rtcache_setdst() failed.  I check the return value for NULL
  everywhere in the kernel.

4 Each routing domain (struct domain) has a list of live route
  caches, dom_rtcache.  rtflushall(sa_family_t af) looks up the
  domain indicated by 'af', walks the domain's list of route caches
  and invalidates each one.

Revision 1.82.2.3: download - view: text, markup, annotated - select for diffs
Sat Mar 24 14:56:11 2007 UTC (17 years, 8 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.82.2.2: preferred, colored; branchpoint 1.82: preferred, colored
Changes since revision 1.82.2.2: +4 -3 lines
sync with head.

Revision 1.84.2.1: download - view: text, markup, annotated - select for diffs
Tue Mar 13 16:52:03 2007 UTC (17 years, 8 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +4 -3 lines
Sync with head.

Revision 1.85: download - view: text, markup, annotated - select for diffs
Mon Mar 12 18:18:36 2007 UTC (17 years, 8 months ago) by ad
Branches: MAIN
CVS tags: thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup
Branch point for: mjf-ufs-trans
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +4 -3 lines
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.

Revision 1.82.2.2: download - view: text, markup, annotated - select for diffs
Mon Mar 12 05:59:56 2007 UTC (17 years, 8 months ago) by rmind
Branches: yamt-idlelwp
Diff to: previous 1.82.2.1: preferred, colored; branchpoint 1.82: preferred, colored
Changes since revision 1.82.2.1: +8 -8 lines
Sync with HEAD.

Revision 1.84: download - view: text, markup, annotated - select for diffs
Sun Mar 4 06:03:25 2007 UTC (17 years, 9 months ago) by christos
Branches: MAIN
Branch point for: vmlocking
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +8 -8 lines
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.82.2.1: download - view: text, markup, annotated - select for diffs
Tue Feb 27 16:55:00 2007 UTC (17 years, 9 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +28 -29 lines
- sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.

Revision 1.67.2.3: download - view: text, markup, annotated - select for diffs
Mon Feb 26 09:11:50 2007 UTC (17 years, 9 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.2: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.2.2: +31 -32 lines
sync with head.

Revision 1.83: download - view: text, markup, annotated - select for diffs
Sat Feb 17 22:34:13 2007 UTC (17 years, 9 months ago) by dyoung
Branches: MAIN
CVS tags: ad-audiomp-base, ad-audiomp
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +28 -29 lines
KNF: de-__P, bzero -> memset, bcmp -> memcmp.  Remove extraneous
   parentheses in return statements.

Cosmetic: don't open-code TAILQ_FOREACH().

Cosmetic: change types of variables to avoid oodles of casts: in
   in6_src.c, avoid casts by changing several route_in6 pointers
   to struct route pointers.  Remove unnecessary casts to caddr_t
   elsewhere.

Pave the way for eliminating address family-specific route caches:
   soon, struct route will not embed a sockaddr, but it will hold
   a reference to an external sockaddr, instead.  We will set the
   destination sockaddr using rtcache_setdst().  (I created a stub
   for it, but it isn't used anywhere, yet.)  rtcache_free() will
   free the sockaddr.  I have extracted from rtcache_free() a helper
   subroutine, rtcache_clear().  rtcache_clear() will "forget" a
   cached route, but it will not forget the destination by releasing
   the sockaddr.  I use rtcache_clear() instead of rtcache_free()
   in rtcache_update(), because rtcache_update() is not supposed
   to forget the destination.

Constify:

   1 Introduce const accessor for route->ro_dst, rtcache_getdst().

   2 Constify the 'dst' argument to ifnet->if_output().  This
     led me to constify a lot of code called by output routines.

   3 Constify the sockaddr argument to protosw->pr_ctlinput.  This
     led me to constify a lot of code called by ctlinput routines.

   4 Introduce const macros for converting from a generic sockaddr
     to family-specific sockaddrs, e.g., sockaddr_in: satocsin6,
     satocsin, et cetera.

Revision 1.72.4.3: download - view: text, markup, annotated - select for diffs
Thu Feb 1 08:48:44 2007 UTC (17 years, 10 months ago) by ad
Branches: newlock2
Diff to: previous 1.72.4.2: preferred, colored; branchpoint 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72.4.2: +4 -4 lines
Sync with head.

Revision 1.82: download - view: text, markup, annotated - select for diffs
Fri Jan 26 19:01:26 2007 UTC (17 years, 10 months ago) by dyoung
Branches: MAIN
CVS tags: post-newlock2-merge, newlock2-nbase, newlock2-base
Branch point for: yamt-idlelwp
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +4 -4 lines
Change a couple of bzeros to memsets.

Revision 1.72.4.2: download - view: text, markup, annotated - select for diffs
Fri Jan 12 01:04:15 2007 UTC (17 years, 10 months ago) by ad
Branches: newlock2
Diff to: previous 1.72.4.1: preferred, colored; branchpoint 1.72: preferred, colored
Changes since revision 1.72.4.1: +31 -42 lines
Sync with head.

Revision 1.81: download - view: text, markup, annotated - select for diffs
Thu Jan 4 19:07:04 2007 UTC (17 years, 11 months ago) by elad
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +3 -3 lines
Consistent usage of KAUTH_GENERIC_ISSUSER.

Revision 1.67.2.2: download - view: text, markup, annotated - select for diffs
Sat Dec 30 20:50:38 2006 UTC (17 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67.2.1: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.2.1: +47 -59 lines
sync with head.

Revision 1.72.6.3: download - view: text, markup, annotated - select for diffs
Mon Dec 18 11:42:21 2006 UTC (17 years, 11 months ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.72.6.2: preferred, colored; branchpoint 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72.6.2: +19 -17 lines
sync with head.

Revision 1.80: download - view: text, markup, annotated - select for diffs
Fri Dec 15 21:18:55 2006 UTC (17 years, 11 months ago) by joerg
Branches: MAIN
CVS tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +19 -17 lines
Introduce new helper functions to abstract the route caching.
rtcache_init and rtcache_init_noclone lookup ro_dst and store
the result in ro_rt, taking care of the reference counting and
calling the domain specific route cache.
rtcache_free checks if a route was cashed and frees the reference.
rtcache_copy copies ro_dst of the given struct route, checking that
enough space is available and incrementing the reference count of the
cached rtentry if necessary.
rtcache_check validates that the cached route is still up. If it isn't,
it tries to look it up again. Afterwards ro_rt is either a valid again
or NULL.
rtcache_copy is used internally.

Adjust to callers of rtalloc/rtflush in the tree to check the sanity of
ro_dst first (if necessary). If it doesn't fit the expectations, free
the cache, otherwise check if the cached route is still valid. After
that combination, a single check for ro_rt == NULL is enough to decide
whether a new lookup needs to be done with a different ro_dst.
Make the route checking in gre stricter by repeating the loop check
after revalidation.
Remove some unused RADIX_MPATH code in in6_src.c. The logic is slightly
changed here to first validate the route and check RTF_GATEWAY
afterwards. This is sementically equivalent though.
etherip doesn't need sc_route_expire similiar to the gif changes from
dyoung@ earlier.

Based on the earlier patch from dyoung@, reviewed and discussed with
him.

Revision 1.72.6.2: download - view: text, markup, annotated - select for diffs
Sun Dec 10 07:19:15 2006 UTC (17 years, 11 months ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.72.6.1: preferred, colored; branchpoint 1.72: preferred, colored
Changes since revision 1.72.6.1: +28 -41 lines
sync with head.

Revision 1.79: download - view: text, markup, annotated - select for diffs
Sat Dec 9 05:33:07 2006 UTC (18 years ago) by dyoung
Branches: MAIN
CVS tags: yamt-splraiseipl-base3
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +17 -27 lines
Here are various changes designed to protect against bad IPv4
routing caused by stale route caches (struct route).  Route caches
are sprinkled throughout PCBs, the IP fast-forwarding table, and
IP tunnel interfaces (gre, gif, stf).

Stale IPv6 and ISO route caches will be treated by separate patches.

Thank you to Christoph Badura for suggesting the general approach
to invalidating route caches that I take here.

Here are the details:

Add hooks to struct domain for tracking and for invalidating each
domain's route caches: dom_rtcache, dom_rtflush, and dom_rtflushall.

Introduce helper subroutines, rtflush(ro) for invalidating a route
cache, rtflushall(family) for invalidating all route caches in a
routing domain, and rtcache(ro) for notifying the domain of a new
cached route.

Chain together all IPv4 route caches where ro_rt != NULL.  Provide
in_rtcache() for adding a route to the chain.  Provide in_rtflush()
and in_rtflushall() for invalidating IPv4 route caches.  In
in_rtflush(), set ro_rt to NULL, and remove the route from the
chain.  In in_rtflushall(), walk the chain and remove every route
cache.

In rtrequest1(), call rtflushall() to invalidate route caches when
a route is added.

In gif(4), discard the workaround for stale caches that involves
expiring them every so often.

Replace the pattern 'RTFREE(ro->ro_rt); ro->ro_rt = NULL;' with a
call to rtflush(ro).

Update ipflow_fastforward() and all other users of route caches so
that they expect a cached route, ro->ro_rt, to turn to NULL.

Take care when moving a 'struct route' to rtflush() the source and
to rtcache() the destination.

In domain initializers, use .dom_xxx tags.

KNF here and there.

Revision 1.78: download - view: text, markup, annotated - select for diffs
Fri Dec 8 17:20:05 2006 UTC (18 years ago) by joerg
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +3 -3 lines
Remove now superflous {.

Revision 1.77: download - view: text, markup, annotated - select for diffs
Fri Dec 8 16:06:22 2006 UTC (18 years ago) by joerg
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +7 -9 lines
When a dynamic route is deleted in in_losing and in6_losing, rtrequest
is called, but the current reference via the PCB is not removed. This
is effectively a leaked reference. Call rtfree unconditional.

Revision 1.76: download - view: text, markup, annotated - select for diffs
Sat Dec 2 18:59:17 2006 UTC (18 years ago) by dyoung
Branches: MAIN
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +6 -7 lines
Use the queue(3) macros instead of open-coding them.  Shorten
staircases.  Remove unnecessary casts.  Where appropriate, s/8/NBBY/.
De-__P().  KNF.

No functional changes intended.

Revision 1.72.4.1: download - view: text, markup, annotated - select for diffs
Sat Nov 18 21:39:37 2006 UTC (18 years ago) by ad
Branches: newlock2
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +11 -12 lines
Sync with head.

Revision 1.75: download - view: text, markup, annotated - select for diffs
Thu Nov 16 01:33:45 2006 UTC (18 years ago) by christos
Branches: MAIN
CVS tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +4 -4 lines
__unused removal on arguments; approved by core.

Revision 1.72.6.1: download - view: text, markup, annotated - select for diffs
Sun Oct 22 06:07:35 2006 UTC (18 years, 1 month ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +11 -12 lines
sync with head

Revision 1.74: download - view: text, markup, annotated - select for diffs
Thu Oct 12 01:32:39 2006 UTC (18 years, 1 month ago) by christos
Branches: MAIN
CVS tags: yamt-splraiseipl-base2
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +6 -11 lines
- sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386

Revision 1.73: download - view: text, markup, annotated - select for diffs
Thu Oct 5 17:35:20 2006 UTC (18 years, 2 months ago) by tls
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +7 -3 lines
Protect calls to pool_put/pool_get that may occur in interrupt context
with spl used to protect other allocations and frees, or datastructure
element insertion and removal, in adjacent code.

It is almost unquestionably the case that some of the spl()/splx() calls
added here are superfluous, but it really seems wrong to see:

	s=splfoo();
	/* frob data structure */
	splx(s);
	pool_put(x);

and if we think we need to protect the first operation, then it is hard
to see why we should not think we need to protect the next.  "Better
safe than sorry".

It is also almost unquestionably the case that I missed some pool
gets/puts from interrupt context with my strategy for finding these
calls; use of PR_NOWAIT is a strong hint that a pool may be used from
interrupt context but many callers in the kernel pass a "can wait/can't
wait" flag down such that my searches might not have found them.  One
notable area that needs to be looked at is pf.

See also:

http://mail-index.netbsd.org/tech-kern/2006/07/19/0003.html
http://mail-index.netbsd.org/tech-kern/2006/07/19/0009.html

Revision 1.69.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 9 02:58:55 2006 UTC (18 years, 3 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.69.2.1: preferred, colored; branchpoint 1.69: preferred, colored; next MAIN 1.70: preferred, colored
Changes since revision 1.69.2.1: +27 -9 lines
sync with head

Revision 1.69.6.2: download - view: text, markup, annotated - select for diffs
Fri Aug 11 15:46:48 2006 UTC (18 years, 3 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.69.6.1: preferred, colored; branchpoint 1.69: preferred, colored; next MAIN 1.70: preferred, colored
Changes since revision 1.69.6.1: +10 -10 lines
sync with head

Revision 1.72: download - view: text, markup, annotated - select for diffs
Sun Jul 23 22:06:13 2006 UTC (18 years, 4 months ago) by ad
Branches: MAIN
CVS tags: yamt-splraiseipl-base, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, rpaulo-netinet-merge-pcb-base, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-splraiseipl, newlock2
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +10 -10 lines
Use the LWP cached credentials where sane.

Revision 1.67.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 15:11:08 2006 UTC (18 years, 5 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +51 -27 lines
sync with head.

Revision 1.69.4.1: download - view: text, markup, annotated - select for diffs
Thu Jun 1 22:39:02 2006 UTC (18 years, 6 months ago) by kardel
Branches: simonb-timecounters
CVS tags: simonb-timcounters-final
Diff to: previous 1.69: preferred, colored; next MAIN 1.70: preferred, colored
Changes since revision 1.69: +21 -3 lines
Sync with head.

Revision 1.69.10.1: download - view: text, markup, annotated - select for diffs
Wed May 24 15:50:45 2006 UTC (18 years, 6 months ago) by tron
Branches: peter-altq
Diff to: previous 1.69: preferred, colored; next MAIN 1.70: preferred, colored
Changes since revision 1.69: +21 -3 lines
Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.

Revision 1.69.6.1: download - view: text, markup, annotated - select for diffs
Wed May 24 10:59:09 2006 UTC (18 years, 6 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +21 -3 lines
sync with head.

Revision 1.71: download - view: text, markup, annotated - select for diffs
Sun May 14 21:19:34 2006 UTC (18 years, 6 months ago) by elad
Branches: MAIN
CVS tags: yamt-pdpolicy-base6, yamt-pdpolicy-base5, simonb-timecounters-base, gdamore-uart-base, gdamore-uart, chap-midi-nbase, chap-midi-base, chap-midi
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +5 -3 lines
integrate kauth.

Revision 1.69.8.4: download - view: text, markup, annotated - select for diffs
Thu May 11 23:31:35 2006 UTC (18 years, 6 months ago) by elad
Branches: elad-kernelauth
Diff to: previous 1.69.8.3: preferred, colored; branchpoint 1.69: preferred, colored; next MAIN 1.70: preferred, colored
Changes since revision 1.69.8.3: +18 -2 lines
sync with head

Revision 1.69.8.3: download - view: text, markup, annotated - select for diffs
Sat May 6 23:32:11 2006 UTC (18 years, 7 months ago) by christos
Branches: elad-kernelauth
Diff to: previous 1.69.8.2: preferred, colored; branchpoint 1.69: preferred, colored
Changes since revision 1.69.8.2: +3 -2 lines
- Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
  that need it.

Approved by core.

Revision 1.70: download - view: text, markup, annotated - select for diffs
Fri May 5 00:03:22 2006 UTC (18 years, 7 months ago) by rpaulo
Branches: MAIN
CVS tags: elad-kernelauth-base
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +18 -2 lines
Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.

Revision 1.69.8.2: download - view: text, markup, annotated - select for diffs
Fri Mar 10 15:20:54 2006 UTC (18 years, 9 months ago) by elad
Branches: elad-kernelauth
Diff to: previous 1.69.8.1: preferred, colored; branchpoint 1.69: preferred, colored
Changes since revision 1.69.8.1: +3 -3 lines
generic_authorize() -> kauth_authorize_generic().

Revision 1.69.8.1: download - view: text, markup, annotated - select for diffs
Wed Mar 8 01:19:40 2006 UTC (18 years, 9 months ago) by elad
Branches: elad-kernelauth
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +4 -3 lines
Adapt to kernel authorization KPI.

Revision 1.69.2.1: download - view: text, markup, annotated - select for diffs
Tue Feb 7 04:58:11 2006 UTC (18 years, 10 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +2 -3 lines
remove in6_pcb.h and include in_pcb.h.

Revision 1.68.2.1: download - view: text, markup, annotated - select for diffs
Wed Feb 1 14:52:41 2006 UTC (18 years, 10 months ago) by yamt
Branches: yamt-uio_vmspace
Diff to: previous 1.68: preferred, colored; next MAIN 1.69: preferred, colored
Changes since revision 1.68: +27 -23 lines
sync with head.

Revision 1.69: download - view: text, markup, annotated - select for diffs
Sat Jan 21 00:15:36 2006 UTC (18 years, 10 months ago) by rpaulo
Branches: MAIN
CVS tags: yamt-uio_vmspace-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, simonb-timecounters, rpaulo-netinet-merge-pcb, peter-altq, elad-kernelauth
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +27 -23 lines
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@.

Revision 1.53.6.6: download - view: text, markup, annotated - select for diffs
Sun Dec 11 10:29:32 2005 UTC (18 years, 11 months ago) by christos
Branches: ktrace-lwp
Diff to: previous 1.53.6.5: preferred, colored; branchpoint 1.53: preferred, colored; next MAIN 1.54: preferred, colored
Changes since revision 1.53.6.5: +7 -5 lines
Sync with head.

Revision 1.67.8.1: download - view: text, markup, annotated - select for diffs
Tue Nov 22 16:08:22 2005 UTC (19 years ago) by yamt
Branches: yamt-readahead
Diff to: previous 1.67: preferred, colored; next MAIN 1.68: preferred, colored
Changes since revision 1.67: +7 -5 lines
sync with head.

Revision 1.68: download - view: text, markup, annotated - select for diffs
Tue Nov 15 18:39:46 2005 UTC (19 years ago) by dsl
Branches: MAIN
CVS tags: yamt-readahead-base3, yamt-readahead-base2, ktrace-lwp-base
Branch point for: yamt-uio_vmspace
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +7 -5 lines
Pass the current process structure to in_pcbconnect() so that it can
pass it to in_pcbbind() so that can allocate a low numbered port
if setsockopt() has been used to set IP_PORTRANGE to IP_PORTRANGE_LOW.
While there, fail in_pcbconnect() if the in_pcbbind() fails - rather
than sending the request out from a port of zero.
This has been largely broken since the socket option was added in 1998.

Revision 1.53.6.5: download - view: text, markup, annotated - select for diffs
Thu Nov 10 14:11:25 2005 UTC (19 years ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.53.6.4: preferred, colored; branchpoint 1.53: preferred, colored
Changes since revision 1.53.6.4: +7 -5 lines
Sync with HEAD. Here we go again...

Revision 1.67: download - view: text, markup, annotated - select for diffs
Sun May 29 21:43:51 2005 UTC (19 years, 6 months ago) by christos
Branches: MAIN
CVS tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base, thorpej-vnode-attr-base, thorpej-vnode-attr
Branch point for: yamt-readahead, yamt-lazymbuf
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +7 -5 lines
- avoid shadowed variables
- sprinkle const.

Revision 1.53.6.4: download - view: text, markup, annotated - select for diffs
Sat Dec 18 09:33:06 2004 UTC (19 years, 11 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.53.6.3: preferred, colored; branchpoint 1.53: preferred, colored
Changes since revision 1.53.6.3: +2 -4 lines
Sync with HEAD.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Sat Dec 4 16:10:25 2004 UTC (20 years ago) by peter
Branches: MAIN
CVS tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, yamt-km, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, kent-audio2-base, kent-audio2, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +2 -4 lines
Convert lo(4) to a clonable device.

This also removes the loif array and changes all code to use the new
lo0ifp pointer which points to the lo0 ifnet structure.

Approved by christos.

Revision 1.53.6.3: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:37:33 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.53.6.2: preferred, colored; branchpoint 1.53: preferred, colored
Changes since revision 1.53.6.2: +2 -2 lines
Fix the sync with head I botched.

Revision 1.53.6.2: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:55:14 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.53.6.1: preferred, colored; branchpoint 1.53: preferred, colored
Changes since revision 1.53.6.1: +0 -0 lines
Sync with HEAD.

Revision 1.53.6.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:55:12 2004 UTC (20 years, 4 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +352 -175 lines
Sync with HEAD

Revision 1.65: download - view: text, markup, annotated - select for diffs
Thu Jun 24 16:49:51 2004 UTC (20 years, 5 months ago) by drochner
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +3 -3 lines
abstain from typecasting the LHS of an assignment;
gcc-3.4.x doesn't like it

Revision 1.61.2.1: download - view: text, markup, annotated - select for diffs
Wed Apr 28 05:56:07 2004 UTC (20 years, 7 months ago) by jmc
Branches: netbsd-2-0
CVS tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2
Diff to: previous 1.61: preferred, colored; next MAIN 1.62: preferred, colored
Changes since revision 1.61: +13 -7 lines
Pullup rev 1.64 (requested by jonathan in ticket #201)

Fix per-PCB IPsec policy cache for FAST_IPSEC.
The sys/netipsec policy-cache assumes that policy-cacheable PCBs
always has a non-NULL inph_sp in the common PCB header.  So we must
do all the per-PCB policy cache calls when either (KAME) IPSEC, or
FAST_IPSEC is defined.

Revision 1.64: download - view: text, markup, annotated - select for diffs
Mon Apr 26 01:53:59 2004 UTC (20 years, 7 months ago) by jonathan
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +13 -7 lines
Fix per-PCB IPsec policy cache for FAST_IPSEC:

The sys/netipsec policy-cache (added by Jason Thorpe as a rewrite of
the KAME per-PCB policy cache) assumes that policy-cacheable PCBs
always has a non-NULL inph_sp in the common PCB header.  So we must
do all the per-PCB policy cache calls when either (KAME) IPSEC, or
FAST_IPSEC is defined.  ``Make it so''.

We can now support non-IPsec'ed IPv6 traffic, when both
``options FAST_IPSEC'' and ``options INET6'' are configured.

Revision 1.63: download - view: text, markup, annotated - select for diffs
Sun Apr 25 16:42:42 2004 UTC (20 years, 7 months ago) by simonb
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +3 -10 lines
Initialise (most) pools from a link set instead of explicit calls
to pool_init.  Untouched pools are ones that either in arch-specific
code, or aren't initialiased during initial system startup.

 Convert struct session, ucred and lockf to pools.

Revision 1.62: download - view: text, markup, annotated - select for diffs
Mon Mar 29 04:59:03 2004 UTC (20 years, 8 months ago) by atatat
Branches: MAIN
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +3 -3 lines
Make these compile without INET.  tcp_input probably needs a lot more
work...

Revision 1.61: download - view: text, markup, annotated - select for diffs
Tue Jan 13 06:17:14 2004 UTC (20 years, 10 months ago) by itojun
Branches: MAIN
CVS tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +4 -4 lines
avoid deref-after-free.
http://sources.zabbadoz.net/freebsd/patchset/106-ipsec-pcb-discon.diff

Revision 1.60: download - view: text, markup, annotated - select for diffs
Wed Nov 5 01:20:56 2003 UTC (21 years, 1 month ago) by itojun
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +14 -3 lines
use hash table for in6_pcbbind().  similar to in_pcb 1.89 -> 1.90

Revision 1.59: download - view: text, markup, annotated - select for diffs
Tue Sep 30 00:01:18 2003 UTC (21 years, 2 months ago) by christos
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +3 -3 lines
Fix off-by-one in PRC_NCMDS check. From FreeBSD via OpenBSD

Revision 1.46.6.4: download - view: text, markup, annotated - select for diffs
Wed Sep 10 18:54:32 2003 UTC (21 years, 2 months ago) by tron
Branches: netbsd-1-6
CVS tags: netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002
Diff to: previous 1.46.6.3: preferred, colored; branchpoint 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46.6.3: +20 -2 lines
Pull up revision 1.55 via patch (requested by itojun in ticket #1405):
in6_pcbrtentry() now returns IPv4 rtentry if in6pcb is connected to IPv4 mapped
address.  PR kern/22431 from Andreas Gustafsson

Revision 1.26.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 9 10:19:03 2003 UTC (21 years, 3 months ago) by msaitoh
Branches: netbsd-1-5
Diff to: previous 1.26.2.2: preferred, colored; branchpoint 1.26: preferred, colored; next MAIN 1.27: preferred, colored
Changes since revision 1.26.2.2: +18 -1 lines
Pull up rev. 1.55 via patch (requested by itojun in ticket #66):
 in6_pcbrtentry() now returns IPv4 rtentry if in6pcb is connected to IPv4
 mapped address. Fixes PR 22431 from Andreas Gustafsson

Revision 1.58: download - view: text, markup, annotated - select for diffs
Sat Sep 6 03:36:32 2003 UTC (21 years, 3 months ago) by itojun
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +3 -3 lines
randomize IPv4/v6 fragment ID and IPv6 flowlabel.  avoids predictability
of these fields.  ip_id.c is from openbsd.  ip6_id.c is adapted by kame.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Sat Sep 6 03:12:53 2003 UTC (21 years, 3 months ago) by itojun
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +10 -8 lines
clarify flowlabel handling

Revision 1.56: download - view: text, markup, annotated - select for diffs
Thu Sep 4 09:17:06 2003 UTC (21 years, 3 months ago) by itojun
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +307 -155 lines
revamp inpcb/in6pcb so that they are more aligned with each other.
in6pcb lookup now uses hash(9).

Revision 1.55: download - view: text, markup, annotated - select for diffs
Wed Aug 13 04:59:34 2003 UTC (21 years, 3 months ago) by itojun
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +19 -2 lines
in6_pcbrtentry() now returns IPv4 rtentry if in6pcb is connected to IPv4 mapped
address.  PR kern/22431 from Andreas Gustafsson

Revision 1.54: download - view: text, markup, annotated - select for diffs
Thu Aug 7 16:33:24 2003 UTC (21 years, 4 months ago) by agc
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +3 -7 lines
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.

Revision 1.46.6.3: download - view: text, markup, annotated - select for diffs
Sun Jun 15 13:02:54 2003 UTC (21 years, 5 months ago) by tron
Branches: netbsd-1-6
Diff to: previous 1.46.6.2: preferred, colored; branchpoint 1.46: preferred, colored
Changes since revision 1.46.6.2: +3 -2 lines
Pull up revision 1.53 (requested by itojun in ticket #1241):
include opt_inet.h -- found by David Laight

Revision 1.46.6.2: download - view: text, markup, annotated - select for diffs
Thu Nov 21 17:53:47 2002 UTC (22 years ago) by he
Branches: netbsd-1-6
CVS tags: netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001
Diff to: previous 1.46.6.1: preferred, colored; branchpoint 1.46: preferred, colored
Changes since revision 1.46.6.1: +11 -5 lines
Pull up revision 1.50 (requested by itojun in ticket #708):
  Allow bind() of deprecated addresses, trusting userland
  application knows what it's doing.

Revision 1.35.2.10: download - view: text, markup, annotated - select for diffs
Mon Nov 11 22:15:44 2002 UTC (22 years ago) by nathanw
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.35.2.9: preferred, colored; branchpoint 1.35: preferred, colored; next MAIN 1.36: preferred, colored
Changes since revision 1.35.2.9: +1 -0 lines
Catch up to -current

Revision 1.53: download - view: text, markup, annotated - select for diffs
Tue Nov 5 21:46:42 2002 UTC (22 years, 1 month ago) by perry
Branches: MAIN
CVS tags: nathanw_sa_before_merge, nathanw_sa_base, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, fvdl_fs64_base
Branch point for: ktrace-lwp
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +3 -2 lines
include opt_inet.h -- found by David Laight

Revision 1.38.2.6: download - view: text, markup, annotated - select for diffs
Thu Oct 10 18:44:16 2002 UTC (22 years, 1 month ago) by jdolecek
Branches: kqueue
Diff to: previous 1.38.2.5: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38.2.5: +22 -22 lines
sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work

Revision 1.35.2.9: download - view: text, markup, annotated - select for diffs
Tue Sep 17 21:23:20 2002 UTC (22 years, 2 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.8: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.8: +20 -20 lines
Catch up to -current.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Wed Sep 11 02:46:45 2002 UTC (22 years, 2 months ago) by itojun
Branches: MAIN
CVS tags: kqueue-beforemerge, kqueue-base, kqueue-aftermerge
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +22 -22 lines
KNF - return is not a function.  sync w/kame.

Revision 1.38.2.5: download - view: text, markup, annotated - select for diffs
Fri Sep 6 08:49:30 2002 UTC (22 years, 3 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.38.2.4: preferred, colored
Changes since revision 1.38.2.4: +12 -6 lines
sync kqueue branch with HEAD

Revision 1.46.4.3: download - view: text, markup, annotated - select for diffs
Thu Aug 29 00:56:51 2002 UTC (22 years, 3 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.46.4.2: preferred, colored; branchpoint 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46.4.2: +12 -6 lines
catch up with -current.

Revision 1.35.2.8: download - view: text, markup, annotated - select for diffs
Tue Aug 27 23:48:09 2002 UTC (22 years, 3 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.7: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.7: +12 -6 lines
Catch up to -current.

Revision 1.46.6.1: download - view: text, markup, annotated - select for diffs
Tue Aug 27 09:33:35 2002 UTC (22 years, 3 months ago) by lukem
Branches: netbsd-1-6
CVS tags: netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +3 -3 lines
Pull up revision 1.51 (requested by itojun in ticket #731):
pass proc * to in6_pcbsetport.  PR 18073

Revision 1.51: download - view: text, markup, annotated - select for diffs
Mon Aug 26 14:25:00 2002 UTC (22 years, 3 months ago) by itojun
Branches: MAIN
CVS tags: gehenna-devsw-base
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +3 -3 lines
pass proc * to in6_pcbsetport.  PR 18073

Revision 1.50: download - view: text, markup, annotated - select for diffs
Tue Aug 20 22:06:04 2002 UTC (22 years, 3 months ago) by itojun
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +11 -5 lines
sync up use_deprecated handling with latest kame.
- bind(deprecated) is allowed, trusting userland app is doing the right thing
- use_deprecated default to 1

Revision 1.38.2.4: download - view: text, markup, annotated - select for diffs
Sun Jun 23 17:51:12 2002 UTC (22 years, 5 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.38.2.3: preferred, colored
Changes since revision 1.38.2.3: +21 -14 lines
catch up with -current on kqueue branch

Revision 1.46.4.2: download - view: text, markup, annotated - select for diffs
Thu Jun 20 15:52:41 2002 UTC (22 years, 5 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.46.4.1: preferred, colored; branchpoint 1.46: preferred, colored
Changes since revision 1.46.4.1: +3 -3 lines
catch up with -current.

Revision 1.35.2.7: download - view: text, markup, annotated - select for diffs
Thu Jun 20 03:49:15 2002 UTC (22 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.6: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.6: +15 -14 lines
Catch up to -current.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Tue Jun 11 19:40:00 2002 UTC (22 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +3 -3 lines
share policy-on-pcb for listening socket.  sync w/kame
todo: share even more, avoid frequent updates of spidx

Revision 1.46.4.1: download - view: text, markup, annotated - select for diffs
Thu May 30 13:52:31 2002 UTC (22 years, 6 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +14 -13 lines
Catch up with -current.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Tue May 28 11:10:53 2002 UTC (22 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +14 -18 lines
correct in*_pcbrtentry.  check cached value correctly.

Revision 1.47: download - view: text, markup, annotated - select for diffs
Tue May 28 10:07:52 2002 UTC (22 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +8 -3 lines
in in*_pcbrtentry(), check if route is still valid (RTF_UP),
and address family is still valid.

Revision 1.35.2.6: download - view: text, markup, annotated - select for diffs
Mon Apr 1 07:48:50 2002 UTC (22 years, 8 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.5: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.5: +8 -2 lines
Catch up to -current.
(CVS: It's not just a program. It's an adventure!)

Revision 1.46: download - view: text, markup, annotated - select for diffs
Thu Mar 21 02:11:39 2002 UTC (22 years, 8 months ago) by itojun
Branches: MAIN
CVS tags: netbsd-1-6-base, netbsd-1-6-RC1, eeh-devprop-base, eeh-devprop
Branch point for: netbsd-1-6, gehenna-devsw
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +8 -2 lines
protect in6pcb queue operation by splnet, as pcb queue will be touched
by in6_pcbpurgeif() under splnet.

Revision 1.38.2.3: download - view: text, markup, annotated - select for diffs
Thu Jan 10 20:03:16 2002 UTC (22 years, 10 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.38.2.2: preferred, colored
Changes since revision 1.38.2.2: +50 -42 lines
Sync kqueue branch with -current.

Revision 1.35.2.5: download - view: text, markup, annotated - select for diffs
Tue Jan 8 00:34:18 2002 UTC (22 years, 11 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.4: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.4: +6 -6 lines
Catch up to -current.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Fri Dec 21 08:54:54 2001 UTC (22 years, 11 months ago) by itojun
Branches: MAIN
CVS tags: newlock-base, newlock, ifpoll-base
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +6 -6 lines
whitespace/costmetic sync w/kame

Revision 1.35.2.4: download - view: text, markup, annotated - select for diffs
Wed Nov 14 19:18:07 2001 UTC (23 years ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.3: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.3: +5 -2 lines
Catch up to -current.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Tue Nov 13 00:56:59 2001 UTC (23 years ago) by lukem
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +4 -1 lines
add RCSIDs

Revision 1.42.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 12 21:19:31 2001 UTC (23 years ago) by thorpej
Branches: thorpej-mips-cache
Diff to: previous 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42: +2 -2 lines
Sync the thorpej-mips-cache branch with -current.

Revision 1.43: download - view: text, markup, annotated - select for diffs
Wed Oct 24 06:36:38 2001 UTC (23 years, 1 month ago) by itojun
Branches: MAIN
CVS tags: thorpej-mips-cache-base
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +2 -2 lines
more whitespace sync with kame

Revision 1.35.2.3: download - view: text, markup, annotated - select for diffs
Mon Oct 22 20:42:01 2001 UTC (23 years, 1 month ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.2: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.2: +42 -37 lines
Catch up to -current.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Tue Oct 16 04:57:38 2001 UTC (23 years, 1 month ago) by itojun
Branches: MAIN
Branch point for: thorpej-mips-cache
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +14 -11 lines
remove unused #define.  sync whitespace/comment with kame.

Revision 1.41: download - view: text, markup, annotated - select for diffs
Mon Oct 15 09:51:16 2001 UTC (23 years, 1 month ago) by itojun
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +29 -27 lines
implement IPV6_V6ONLY socket option from draft-ietf-ipngwg-rfc2553bis-03.txt.
IPV6_BINDV6ONLY (netbsd only) is deprecated, but still work just like before.

Revision 1.38.2.2: download - view: text, markup, annotated - select for diffs
Sat Aug 25 06:17:05 2001 UTC (23 years, 3 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.38.2.1: preferred, colored
Changes since revision 1.38.2.1: +8 -1 lines
Merge Aug 24 -current into the kqueue branch.

Revision 1.35.2.2: download - view: text, markup, annotated - select for diffs
Fri Aug 24 00:12:39 2001 UTC (23 years, 3 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35.2.1: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.2.1: +57 -1 lines
Catch up with -current.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Mon Aug 6 10:25:01 2001 UTC (23 years, 4 months ago) by itojun
Branches: MAIN
CVS tags: thorpej-devvp-base3, thorpej-devvp-base2, thorpej-devvp-base, thorpej-devvp, pre-chs-ubcperf, post-chs-ubcperf
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +8 -1 lines
cache IPsec policy on in6?pcb.  most of the lookup operations can be bypassed,
especially when it is a connected SOCK_STREAM in6?pcb.  sync with kame.

Revision 1.38.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 3 04:13:59 2001 UTC (23 years, 4 months ago) by lukem
Branches: kqueue
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +11 -1 lines
update to -current

Revision 1.39: download - view: text, markup, annotated - select for diffs
Wed Jul 25 23:28:03 2001 UTC (23 years, 4 months ago) by itojun
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +11 -1 lines
allocate ipsec policy buffer attached to pcb in in*_pcballoc, before
giving anyone accesses to pcb (do not reveal an inconsistent ones).
sync with kame

Revision 1.38: download - view: text, markup, annotated - select for diffs
Mon Jul 2 15:25:35 2001 UTC (23 years, 5 months ago) by itojun
Branches: MAIN
Branch point for: kqueue
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +17 -5 lines
on interface removal, remove multicast groups joined from pcb, before
removing interface addresses.  without the change, we may deref
NULL pointer in in_pcbpurgeif().  from jinmei@kame, sync with kame

Revision 1.37: download - view: text, markup, annotated - select for diffs
Wed Jun 27 15:53:14 2001 UTC (23 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +28 -1 lines
netbsd; on interface removal, force pcbs to leave from multicast groups
pointing toward the interface about to be removed.  sync with kame
XXX still need more discussions on semantics.  the behavior should be safer

Revision 1.35.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 21 20:08:55 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +3 -9 lines
Catch up to -current.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Fri May 11 18:38:03 2001 UTC (23 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +3 -9 lines
there's no need to #if NFAITH here.  IN6P_FAITH can be set even on
NFAITH == 0 kernel, it is safer to always check the condition.
sync with kame.

Revision 1.9.2.3: download - view: text, markup, annotated - select for diffs
Sun Feb 11 19:17:23 2001 UTC (23 years, 9 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.9.2.2: preferred, colored; branchpoint 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9.2.2: +91 -46 lines
Sync with HEAD.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Sun Feb 11 06:49:52 2001 UTC (23 years, 9 months ago) by itojun
Branches: MAIN
CVS tags: thorpej_scsipi_nbase, thorpej_scsipi_beforemerge, thorpej_scsipi_base
Branch point for: nathanw_sa
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +84 -41 lines
pull latest kame pcbnotify code.  synchronizes ICMPv6 path mtu discovery
behavior with other protocols (i.e. validation, use of hiwat/lowat).

Revision 1.34: download - view: text, markup, annotated - select for diffs
Sat Feb 10 04:14:27 2001 UTC (23 years, 9 months ago) by itojun
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +8 -6 lines
to sync with kame better, (1) remove register declaration for variables,
(2) sync whitespaces, (3) update comments. (4) bring in some of portability
and logging enhancements.  no functional changes here.

Revision 1.9.2.2: download - view: text, markup, annotated - select for diffs
Fri Jan 5 17:36:56 2001 UTC (23 years, 11 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.9.2.1: preferred, colored; branchpoint 1.9: preferred, colored
Changes since revision 1.9.2.1: +7 -4 lines
Sync with HEAD

Revision 1.33: download - view: text, markup, annotated - select for diffs
Thu Dec 21 00:46:20 2000 UTC (23 years, 11 months ago) by itojun
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +7 -4 lines
make sure we notify of routing changes, even if we have net route pointed
to by inpcb.

Revision 1.9.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 20 18:10:48 2000 UTC (24 years ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +215 -376 lines
Update thorpej_scsipi to -current as of a month ago

Revision 1.32: download - view: text, markup, annotated - select for diffs
Thu Oct 19 20:23:02 2000 UTC (24 years, 1 month ago) by itojun
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +3 -9 lines
remove #ifdef TCP6.  it is not likely for us to bring in sys/netinet6/tcp6*.c
(separate TCP/IPv6 stack) into netbsd-current.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Mon Oct 2 03:55:43 2000 UTC (24 years, 2 months ago) by itojun
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +8 -2 lines
fix compilation without INET.  fix confusion between ipsecstat and ipsec6stat.
sync with kame.

Revision 1.26.2.2: download - view: text, markup, annotated - select for diffs
Sun Aug 27 01:25:08 2000 UTC (24 years, 3 months ago) by itojun
Branches: netbsd-1-5
CVS tags: netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA
Diff to: previous 1.26.2.1: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.2.1: +7 -2 lines
pullup (approved by releng-1-5)

 > implement net.inet6.ip6.{anon,low}port{min,max} sysctl variable.

 > cvs rdiff -r1.67 -r1.68 basesrc/lib/libc/gen/sysctl.3
 > cvs rdiff -r1.53 -r1.54 basesrc/sbin/sysctl/sysctl.8
 > cvs rdiff -r1.18 -r1.19 syssrc/sys/netinet6/in6.h
 > cvs rdiff -r1.29 -r1.30 syssrc/sys/netinet6/in6_pcb.c
 > cvs rdiff -r1.3 -r1.4 syssrc/sys/netinet6/in6_src.c
 > cvs rdiff -r1.25 -r1.26 syssrc/sys/netinet6/ip6_input.c
 > cvs rdiff -r1.14 -r1.15 syssrc/sys/netinet6/ip6_var.h

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat Aug 26 11:03:46 2000 UTC (24 years, 3 months ago) by itojun
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +7 -2 lines
implement net.inet6.ip6.{anon,low}port{min,max} sysctl variable.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Fri Jul 7 15:54:18 2000 UTC (24 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +33 -98 lines
sync with kame.
introduce in6_{recover,embed}scope, for in-kernel scoped-address manipulation.
improve in6_pcbnotify.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Thu Jul 6 12:51:41 2000 UTC (24 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +2 -3 lines
remove unnecessary #include <netkey/key_debug.h>.  from kame.

Revision 1.26.2.1: download - view: text, markup, annotated - select for diffs
Mon Jul 3 08:31:59 2000 UTC (24 years, 5 months ago) by itojun
Branches: netbsd-1-5
CVS tags: netbsd-1-5-ALPHA2
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +2 -6 lines
pullup from main trunc (approved by releng-1-5)
repair kernel faithd(8) support.  there were two mistakes:
(1) tcp6_input dropped packets for translation
(2) in6_pcblookup_connect was too strict

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sun Jul 2 08:04:11 2000 UTC (24 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +2 -6 lines
repair kernel faithd(8) support.  there were two mistakes:
(1) tcp6_input dropped packets for translation
(2) in6_pcblookup_connect was too strict

Revision 1.21.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 22 17:09:56 2000 UTC (24 years, 5 months ago) by minoura
Branches: minoura-xpg4dl
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +23 -302 lines
Sync w/ netbsd-1-5-base.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Thu Jun 8 13:51:33 2000 UTC (24 years, 6 months ago) by itojun
Branches: MAIN
CVS tags: netbsd-1-5-base
Branch point for: netbsd-1-5
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +6 -1 lines
make sure not to overwrite sockaddr on PRU_SEND/PRU_CONNECT to
link-local address.  From: frank

Revision 1.25: download - view: text, markup, annotated - select for diffs
Mon Jun 5 08:09:48 2000 UTC (24 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +17 -6 lines
backout change to in6_pcbnotify().  the change seems premature
(may cause trouble with advanced API in certain situation).

Revision 1.24: download - view: text, markup, annotated - select for diffs
Mon Jun 5 06:38:23 2000 UTC (24 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +6 -5 lines
pass struct proc * down to udp6_output and in6_pcbbind.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat Jun 3 14:36:35 2000 UTC (24 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +11 -315 lines
sync with kame.
- use latest source address selection code - in6_src.c.
- correct frag header insertion.
- deep copy ip6 header portion in ip6_mloopback to avoid overwrite.
- do not bark when we forward packet to loopback.
- some cosmetics.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Mon May 29 00:03:18 2000 UTC (24 years, 6 months ago) by itojun
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +10 -2 lines
disallow bind(2) with IPv4 mapped address for now.  port number check is
insufficient at this moment and we can bind(2) two sockets listen on same
port number.

for real fix, we need to check inpcb table with in6pcb.  we can't
find inpcb chain from particular in6pcb chain (like finding tcbtable from tcb6)
luckily RFC2553 does not talk about bind(2) behavior for IPv4 mapped.
IPv4 mapped brings in too much complexities...

Revision 1.21: download - view: text, markup, annotated - select for diffs
Thu Mar 2 07:15:39 2000 UTC (24 years, 9 months ago) by itojun
Branches: MAIN
CVS tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +2 -2 lines
bump kame revision id

Revision 1.20: download - view: text, markup, annotated - select for diffs
Thu Mar 2 06:42:52 2000 UTC (24 years, 9 months ago) by itojun
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +60 -29 lines
properly handle notifies from icmp6, so that we can properly reflect
redirects/unreach to transport layer. (sync with latest kame)

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sun Feb 6 12:49:44 2000 UTC (24 years, 10 months ago) by itojun
Branches: MAIN
CVS tags: chs-ubc2-newbase
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -2 lines
fix include pathname for better rfc2292 compliance.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Thu Feb 3 13:17:39 2000 UTC (24 years, 10 months ago) by itojun
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +8 -8 lines
use u_int16_t, not u_short, for port #.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Feb 3 12:50:05 2000 UTC (24 years, 10 months ago) by itojun
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +1 -9 lines
remove #if 0'ed code

Revision 1.16: download - view: text, markup, annotated - select for diffs
Wed Feb 2 23:28:10 2000 UTC (24 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +16 -1 lines
PRU_PURGEADDR -> PRU_PURGEIF, per a discussion w/ itojun.  In the IPv4
and IPv6 code, also use this to traverse PCB tables, looking for cached
routes referencing the dying ifnet, forcing them to be refreshed.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Tue Feb 1 00:18:29 2000 UTC (24 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +8 -6 lines
Improve the readability of one small piece of code.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Mon Jan 31 14:19:02 2000 UTC (24 years, 10 months ago) by itojun
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +1 -3 lines
bring in latest KAME ipsec tree.
- interop issues in ipcomp is fixed
- padding type (after ESP) is configurable
- key database memory management (need more fixes)
- policy specification is revisited

XXX m->m_pkthdr.rcvif is still overloaded - hope to fix it soon

Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Jan 26 17:06:36 2000 UTC (24 years, 10 months ago) by itojun
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +27 -9 lines
make setsockopt(IPV6_PORTRANGE) work.  obeys IPNOPRIVPORTS.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Thu Jan 6 15:46:09 2000 UTC (24 years, 11 months ago) by itojun
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -25 lines
remove extra portability #ifdef (like #ifdef __FreeBSD__) in KAME IPv6/IPsec
code, from netbsd-current repository.
#ifdef'ed version is always available from ftp.kame.net.

XXX please do not make too many diff-unfriendly changes, we'll need to take
bunch of diffs on upgrade...

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu Jan 6 06:41:19 2000 UTC (24 years, 11 months ago) by itojun
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +81 -9 lines
make IPV6_BINDV6ONLY setsockopt available.  it controls behavior of
AF_INET6 wildcard listening socket.  heavily documented in ip6(4).
net.inet6.ip6.bindv6only defines default value.  default is 1.

"options INET6_BINDV6ONLY" removes any code fragment that supports
IPV6_BINDV6ONLY == 0 case (not defopt'ed as use of this is rare).

Revision 1.9.8.1: download - view: text, markup, annotated - select for diffs
Mon Dec 27 18:36:24 1999 UTC (24 years, 11 months ago) by wrstuden
Branches: wrstuden-devbsize
Diff to: previous 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9: +163 -85 lines
Pull up to last week's -current.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Dec 13 15:17:22 1999 UTC (24 years, 11 months ago) by itojun
Branches: MAIN
CVS tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +163 -85 lines
sync IPv6 part with latest KAME tree.   IPsec part is left unmodified
due to massive changes in KAME side.
- IPv6 output goes through nd6_output
- faith can capture IPv4 packets as well - you can run IPv4-to-IPv6 translator
  using heavily modified DNS servers
- per-interface statistics (required for IPv6 MIB)
- interface autoconfig is revisited
- udp input handling has a big change for mapped address support.
- introduce in4_cksum() for non-overwriting checksumming
- introduce m_pulldown()
- neighbor discovery cleanups/improvements
- netinet/in.h strictly conforms to RFC2553 (no extra defs visible to userland)
- IFA_STATS is fixed a bit (not tested)
- and more more more.

TODO:
- cleanup os-independency #ifdef
- avoid rcvif dual use (for IPsec) to help ifdetach

(sorry for jumbo commit, I can't separate this any more...)

Revision 1.1.2.3: download - view: text, markup, annotated - select for diffs
Tue Nov 30 13:35:50 1999 UTC (25 years ago) by itojun
Branches: kame
CVS tags: kame_141_19991130
Diff to: previous 1.1.2.2: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.2: +192 -83 lines
bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code).  Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.

Revision 1.2.2.3: download - view: text, markup, annotated - select for diffs
Mon Aug 2 22:36:04 1999 UTC (25 years, 4 months ago) by thorpej
Branches: chs-ubc2
Diff to: previous 1.2.2.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.2.2: +35 -3 lines
Update from trunk.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Jul 31 18:41:16 1999 UTC (25 years, 4 months ago) by itojun
Branches: MAIN
CVS tags: fvdl-softdep-base, fvdl-softdep, comdex-fall-1999-base, comdex-fall-1999, chs-ubc2-base
Branch point for: wrstuden-devbsize, thorpej_scsipi
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +3 -1 lines
sync with recent KAME.
- loosen ipsec restriction on packet diredtion.
- revise icmp6 redirect handling on IsRouter bit.
- tcp/udp notification processing (link-local address case)
- cosmetic fixes (better code share across *BSD).

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sat Jul 17 07:07:09 1999 UTC (25 years, 4 months ago) by itojun
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +14 -3 lines
fix faith interface support.  need testing.
(i understand this is a dirty hack, of course)

Revision 1.7: download - view: text, markup, annotated - select for diffs
Fri Jul 9 22:57:27 1999 UTC (25 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +3 -1 lines
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).

Revision 1.1.2.2: download - view: text, markup, annotated - select for diffs
Tue Jul 6 11:03:00 1999 UTC (25 years, 5 months ago) by itojun
Branches: kame
CVS tags: kame_14_19990705
Diff to: previous 1.1.2.1: preferred, colored
Changes since revision 1.1.2.1: +3 -5 lines
KAME/NetBSD 1.4, SNAP kit 1999/07/05.
NOTE: this branch is just for reference purposes (i.e. for taking cvs diff).
do not touch anything on the branch.  actual work must be done on HEAD branch.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sun Jul 4 02:01:15 1999 UTC (25 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -2 lines
s/splnet/splsoftnet/ in IPv6/IPsec part.
hope I made no mistake (the kernel works fine but I need a regress test)

Suggested by: thorpej

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Jul 3 21:30:18 1999 UTC (25 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -0 lines
RCS ID police.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Fri Jul 2 19:57:05 1999 UTC (25 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -0 lines
try to get a non-conflicting port # when bind(2) to port number 0
is called.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Fri Jul 2 12:43:42 1999 UTC (25 years, 5 months ago) by itojun
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +13 -0 lines
expand insque/remque (quick hack).  fundamental fix should be done
while clarifying relationship between inpcb and in6pcb.

PR: 7891

Revision 1.2.2.2: download - view: text, markup, annotated - select for diffs
Thu Jul 1 23:48:27 1999 UTC (25 years, 5 months ago) by thorpej
Branches: chs-ubc2
Diff to: previous 1.2.2.1: preferred, colored
Changes since revision 1.2.2.1: +944 -0 lines
Sync w/ -current.

Revision 1.2.2.1
Thu Jul 1 08:12:54 1999 UTC (25 years, 5 months ago) by thorpej
Branches: chs-ubc2
FILE REMOVED
Changes since revision 1.2: +0 -944 lines
file in6_pcb.c was added on branch chs-ubc2 on 1999-07-01 23:48:27 +0000

Revision 1.2: download - view: text, markup, annotated - select for diffs
Thu Jul 1 08:12:54 1999 UTC (25 years, 5 months ago) by itojun
Branches: MAIN
Branch point for: chs-ubc2
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +944 -0 lines
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628.
(Sorry for a big commit, I can't separate this into several pieces...)
Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.

- sys/kern: do not assume single mbuf, accept chained mbuf on passing
  data from userland to kernel (or other way round).
- "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ
  package (ftp://ftp.csl.sony.co.jp/pub/kjc/).
- sys/netinet/tcp*: IPv4/v6 dual stack tcp support.
- sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those
  file to be there so we patch it up.
- sys/netinet: IPsec additions are here and there.
- sys/netinet6/*: most of IPv6 code sits here.
- sys/netkey: IPsec key management code
- dev/pci/pcidevs: regen

In my understanding no code here is subject to export control so it
should be safe.

Revision 1.1.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 28 06:37:04 1999 UTC (25 years, 5 months ago) by itojun
Branches: kame
CVS tags: kame_14_19990628
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +948 -0 lines
KAME/NetBSD 1.4 SNAP kit, dated 19990628.

NOTE: this branch (kame) is used just for refernce.  this may not compile
due to multiple reasons.

Revision 1.1
Mon Jun 28 06:37:04 1999 UTC (25 years, 5 months ago) by itojun
Branches: MAIN
Branch point for: kame
FILE REMOVED
file in6_pcb.c was initially added on branch kame.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>