The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.101 / (download) - annotate - [select for diffs], Wed Sep 25 09:53:38 2019 UTC (4 years, 6 months ago) by ozaki-r
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, 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, thorpej-altq-separation-base, thorpej-altq-separation, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, 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, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, bouyer-sunxi-drm-base, bouyer-sunxi-drm, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache, HEAD
Changes since 1.100: +10 -6 lines
Diff to previous 1.100 (colored) to selected 1.5 (colored)

Make panic messages more informative

Revision 1.100 / (download) - annotate - [select for diffs], Sat Dec 22 14:28:57 2018 UTC (5 years, 3 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, netbsd-9-base, 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, isaki-audio2-base, isaki-audio2
Changes since 1.99: +3 -3 lines
Diff to previous 1.99 (colored) to selected 1.5 (colored)

Replace M_ALIGN and MH_ALIGN by m_align.

Revision 1.99 / (download) - annotate - [select for diffs], Tue May 29 04:39:26 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625
Branch point for: phil-wifi
Changes since 1.98: +8 -7 lines
Diff to previous 1.98 (colored) to selected 1.5 (colored)

Avoid double LIST_REMOVE which corrupts lists

Revision 1.98 / (download) - annotate - [select for diffs], Tue May 29 04:38:59 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.97: +3 -3 lines
Diff to previous 1.97 (colored) to selected 1.5 (colored)

Move LIST_REMOVE

mld_stoptimer releases in6_multilock temporarily, so we must LIST_REMOVE first.

Revision 1.97 / (download) - annotate - [select for diffs], Tue May 29 04:38:29 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.96: +15 -2 lines
Diff to previous 1.96 (colored) to selected 1.5 (colored)

Make a deletion of in6m in nd6_rtrequest atomic

Revision 1.96 / (download) - annotate - [select for diffs], Tue May 29 04:37:58 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.95: +10 -7 lines
Diff to previous 1.95 (colored) to selected 1.5 (colored)

Make a refcount decrement and a removal from a list of an item atomic

in6m_refcount of an in6m can be incremented if the in6m is on the list
(if_multiaddrs) in in6_addmulti or mld_input.  So we must avoid such an
increment when we try to destroy an in6m.  To this end we must make
an in6m_refcount decrement and a removal of an in6m from if_multiaddrs
atomic.

Revision 1.95 / (download) - annotate - [select for diffs], Tue May 29 04:36:47 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.94: +16 -7 lines
Diff to previous 1.94 (colored) to selected 1.5 (colored)

Improve atomicity of in6_leavegroup and in6_delmulti

Revision 1.94 / (download) - annotate - [select for diffs], Tue May 29 04:36:15 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.93: +4 -2 lines
Diff to previous 1.93 (colored) to selected 1.5 (colored)

Release in6_multilock on callout_halt of mld_timeo to avoid a deadlock

Revision 1.93 / (download) - annotate - [select for diffs], Tue May 29 04:35:28 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.92: +7 -12 lines
Diff to previous 1.92 (colored) to selected 1.5 (colored)

Don't hold softnet_lock in mld_timeo

Then we can get rid of remaining abuses of mutex_owned(softnet_lock).

Revision 1.92 / (download) - annotate - [select for diffs], Tue May 1 07:21:39 2018 UTC (5 years, 11 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-0521, pgoyette-compat-0502
Changes since 1.91: +2 -5 lines
Diff to previous 1.91 (colored) to selected 1.5 (colored)

Remove now unused net_osdep.h includes, the other BSDs did the same.

Revision 1.91 / (download) - annotate - [select for diffs], Thu Feb 1 07:49:19 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.90: +21 -25 lines
Diff to previous 1.90 (colored) to selected 1.5 (colored)

Style, and remove the 'len' argument from mld_allocbuf(), it is misleading,
we only want a static struct. Beyond that no functional change.

Revision 1.90 / (download) - annotate - [select for diffs], Fri Nov 17 07:37:12 2017 UTC (6 years, 4 months ago) by ozaki-r
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202
Changes since 1.89: +4 -12 lines
Diff to previous 1.89 (colored) to selected 1.5 (colored)

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

Revision 1.89 / (download) - annotate - [select for diffs], Sat May 13 20:13:26 2017 UTC (6 years, 11 months ago) by kardel
Branch: MAIN
CVS Tags: prg-localcount2-base3, 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
Changes since 1.88: +2 -3 lines
Diff to previous 1.88 (colored) to selected 1.5 (colored)

avoid a double ifa_release() and thus a panic when e. g. running ifmcstat

Revision 1.88 / (download) - annotate - [select for diffs], Thu Mar 2 09:48:20 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
CVS Tags: prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Branch point for: prg-localcount2
Changes since 1.87: +22 -4 lines
Diff to previous 1.87 (colored) to selected 1.5 (colored)

Plug a race condition on accessing i6mm_maddr

Revision 1.87 / (download) - annotate - [select for diffs], Thu Mar 2 09:16:46 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
Changes since 1.86: +16 -2 lines
Diff to previous 1.86 (colored) to selected 1.5 (colored)

Fix racy in6m_sol

Relook up the entry instead of reusing it, which makes locking simple.

Revision 1.86 / (download) - annotate - [select for diffs], Thu Mar 2 05:27:39 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
Changes since 1.85: +3 -13 lines
Diff to previous 1.85 (colored) to selected 1.5 (colored)

Protect ia6_memberships by in6_ifaddr_lock

Revision 1.85 / (download) - annotate - [select for diffs], Wed Mar 1 09:09:37 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
Changes since 1.84: +181 -69 lines
Diff to previous 1.84 (colored) to selected 1.5 (colored)

Make IPv6 multicast MP-safe partially

To complete the task, we need to make users of IPv6 multicast MP-safe, for
example socket/PCB and CARP.

Revision 1.84 / (download) - annotate - [select for diffs], Wed Mar 1 08:54:12 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
Changes since 1.83: +12 -2 lines
Diff to previous 1.83 (colored) to selected 1.5 (colored)

Provide in6_multi_group

Use it when checking if we belong to the group, instead of in6_lookup_multi.

No functional change.

Revision 1.83 / (download) - annotate - [select for diffs], Thu Feb 23 07:57:10 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
Changes since 1.82: +55 -226 lines
Diff to previous 1.82 (colored) to selected 1.5 (colored)

Remove mkludge stuffs

For unknown reasons, IPv6 multicast addresses are linked to a first
IPv6 address assigned to an interface. Due to the design, when removing
a first address having multicast addresses, we need to save them to
somewhere and later restore them once a new IPv6 address is activated.
mkludge stuffs support the operations.

This change links multicast addresses to an interface directly and
throws the kludge away.

Note that as usual some obsolete member variables remain for kvm(3)
users. And also sysctl net.inet6.multicast_kludge remains to avoid
breaking old ifmcstat.

TODO: currently ifnet has a list of in6_multi but obviously the list
should be protocol independent. Provide a common structure (if_multi
or something) to handle in6_multi and in_multi together as well as
ifaddr does for in_ifaddr and in6_ifaddr.

Revision 1.82 / (download) - annotate - [select for diffs], Wed Feb 22 07:46:00 2017 UTC (7 years, 1 month ago) by ozaki-r
Branch: MAIN
Changes since 1.81: +4 -4 lines
Diff to previous 1.81 (colored) to selected 1.5 (colored)

Stop using useless IN6_*_MULTI macros

Revision 1.81 / (download) - annotate - [select for diffs], Tue Feb 7 02:38:08 2017 UTC (7 years, 2 months ago) by ozaki-r
Branch: MAIN
Changes since 1.80: +4 -2 lines
Diff to previous 1.80 (colored) to selected 1.5 (colored)

Add missing NULL checks for m_get_rcvif

Revision 1.80 / (download) - annotate - [select for diffs], Tue Jan 24 07:09:25 2017 UTC (7 years, 2 months ago) by ozaki-r
Branch: MAIN
CVS Tags: nick-nhusb-base-20170204
Changes since 1.79: +7 -7 lines
Diff to previous 1.79 (colored) to selected 1.5 (colored)

Tweak softnet_lock and NET_MPSAFE

- Don't hold softnet_lock in some functions if NET_MPSAFE
- Add softnet_lock to sysctl_net_inet_icmp_redirtimeout
- Add softnet_lock to expire_upcalls of ip_mroute.c
- Restore softnet_lock for in{,6}_pcbpurgeif{,0} if NET_MPSAFE
- Mark some softnet_lock for future work

Revision 1.79 / (download) - annotate - [select for diffs], Mon Jan 16 15:44:47 2017 UTC (7 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.78: +4 -4 lines
Diff to previous 1.78 (colored) to selected 1.5 (colored)

ip6_sprintf -> IN6_PRINT so that we pass the size.

Revision 1.78 / (download) - annotate - [select for diffs], Mon Jan 16 07:33:36 2017 UTC (7 years, 3 months ago) by ryo
Branch: MAIN
Changes since 1.77: +6 -3 lines
Diff to previous 1.77 (colored) to selected 1.5 (colored)

Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.

Reviewed by ozaki-r@

Revision 1.77 / (download) - annotate - [select for diffs], Wed Jan 11 13:08:29 2017 UTC (7 years, 3 months ago) by ozaki-r
Branch: MAIN
CVS Tags: bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.76: +2 -3 lines
Diff to previous 1.76 (colored) to selected 1.5 (colored)

Get rid of unnecessary header inclusions

Revision 1.76 / (download) - annotate - [select for diffs], Tue Jan 10 05:42:34 2017 UTC (7 years, 3 months ago) by ozaki-r
Branch: MAIN
Changes since 1.75: +4 -3 lines
Diff to previous 1.75 (colored) to selected 1.5 (colored)

Enable some sysctl knobs on rump kernels for ifmcstat

Revision 1.75 / (download) - annotate - [select for diffs], Fri Nov 18 06:50:04 2016 UTC (7 years, 4 months ago) by knakahara
Branch: MAIN
CVS Tags: pgoyette-localcount-20170107, nick-nhusb-base-20161204
Changes since 1.74: +7 -2 lines
Diff to previous 1.74 (colored) to selected 1.5 (colored)

fix: "ifconfig destory" can stalls when "ifconfig" is done parallel.
This problem occurs only if NET_MPSAFE on.

ifconfig destroy side:
    kernel entry point is ifioctl => if_clone_destroy.
    pr_purgeif() acquires softnet_lock, and then ifa_remove() calls
    pserialize_perform() holding softnet_lock.
ifconfig side:
    kernel entry point is socreate.
    pr_attach()(udp_attach_wrapper()) calls sosetlock(). In this call path,
    sosetlock() try to acquire softnet_lock.
These can cause dead lock.

Revision 1.74 / (download) - annotate - [select for diffs], Mon Aug 1 03:15:31 2016 UTC (7 years, 8 months ago) by ozaki-r
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104, pgoyette-localcount-20160806, nick-nhusb-base-20161004, localcount-20160914
Changes since 1.73: +51 -9 lines
Diff to previous 1.73 (colored) to selected 1.5 (colored)

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.73 / (download) - annotate - [select for diffs], Wed Jul 20 07:37:51 2016 UTC (7 years, 8 months ago) by ozaki-r
Branch: MAIN
CVS Tags: pgoyette-localcount-20160726
Changes since 1.72: +6 -2 lines
Diff to previous 1.72 (colored) to selected 1.5 (colored)

Apply pserialize to some iterations of IP address lists

Revision 1.72 / (download) - annotate - [select for diffs], Fri Jul 8 04:33:30 2016 UTC (7 years, 9 months ago) by ozaki-r
Branch: MAIN
CVS Tags: pgoyette-localcount-base, nick-nhusb-base-20160907
Branch point for: pgoyette-localcount
Changes since 1.71: +5 -5 lines
Diff to previous 1.71 (colored) to selected 1.5 (colored)

Replace macros to get an IP address with proper inline functions

The inline functions are more friendly for applying psz/psref;
they consist of only simple interations.

Revision 1.71 / (download) - annotate - [select for diffs], Thu Jul 7 09:32:03 2016 UTC (7 years, 9 months ago) by ozaki-r
Branch: MAIN
Changes since 1.70: +4 -4 lines
Diff to previous 1.70 (colored) to selected 1.5 (colored)

Switch the address list of intefaces to pslist(9)

As usual, we leave the old list to avoid breaking kvm(3) users.

Revision 1.70 / (download) - annotate - [select for diffs], Mon Jul 4 06:48:14 2016 UTC (7 years, 9 months ago) by ozaki-r
Branch: MAIN
Changes since 1.69: +3 -3 lines
Diff to previous 1.69 (colored) to selected 1.5 (colored)

Use pslist(9) for the global in6_ifaddr list

psz and psref will be applied in another commit.

No functional change intended.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jun 22 07:48:17 2016 UTC (7 years, 9 months ago) by ozaki-r
Branch: MAIN
Changes since 1.68: +2 -6 lines
Diff to previous 1.68 (colored) to selected 1.5 (colored)

Remove unnecessary NULL checks of ifa->ifa_addr

If it's NULL, it should be a bug. There many IFADDR_FOREACH that don't do
NULL check. If it can be NULL, they should fire already.

Revision 1.68 / (download) - annotate - [select for diffs], Tue Jun 21 03:28:27 2016 UTC (7 years, 9 months ago) by ozaki-r
Branch: MAIN
Changes since 1.67: +3 -3 lines
Diff to previous 1.67 (colored) to selected 1.5 (colored)

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.67 / (download) - annotate - [select for diffs], Thu Jun 16 03:03:33 2016 UTC (7 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.66: +13 -4 lines
Diff to previous 1.66 (colored) to selected 1.5 (colored)

Use if_get_byindex instead of if_byindex for MP-safe

Revision 1.66 / (download) - annotate - [select for diffs], Fri Jun 10 13:31:44 2016 UTC (7 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.65: +11 -8 lines
Diff to previous 1.65 (colored) to selected 1.5 (colored)

Avoid storing a pointer of an interface in a mbuf

Having a pointer of an interface in a mbuf isn't safe if we remove big
kernel locks; an interface object (ifnet) can be destroyed anytime in any
packet processing and accessing such object via a pointer is racy. Instead
we have to get an object from the interface collection (ifindex2ifnet) via
an interface index (if_index) that is stored to a mbuf instead of an
pointer.

The change provides two APIs: m_{get,put}_rcvif_psref that use psref(9)
for sleep-able critical sections and m_{get,put}_rcvif that use
pserialize(9) for other critical sections. The change also adds another
API called m_get_rcvif_NOMPSAFE, that is NOT MP-safe and for transition
moratorium, i.e., it is intended to be used for places where are not
planned to be MP-ified soon.

The change adds some overhead due to psref to performance sensitive paths,
however the overhead is not serious, 2% down at worst.

Proposed on tech-kern and tech-net.

Revision 1.65 / (download) - annotate - [select for diffs], Fri Jun 10 13:27:16 2016 UTC (7 years, 10 months ago) by ozaki-r
Branch: MAIN
Changes since 1.64: +3 -3 lines
Diff to previous 1.64 (colored) to selected 1.5 (colored)

Introduce m_set_rcvif and m_reset_rcvif

The API is used to set (or reset) a received interface of a mbuf.
They are counterpart of m_get_rcvif, which will come in another
commit, hide internal of rcvif operation, and reduce the diff of
the upcoming change.

No functional change.

Revision 1.64 / (download) - annotate - [select for diffs], Thu Nov 12 15:01:06 2015 UTC (8 years, 5 months ago) by joerg
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226
Changes since 1.63: +7 -4 lines
Diff to previous 1.63 (colored) to selected 1.5 (colored)

Ensure that the callout of the multicast address is valid before
hooking it up.

Revision 1.63 / (download) - annotate - [select for diffs], Mon Aug 24 22:21:27 2015 UTC (8 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: nick-nhusb-base-20150921
Changes since 1.62: +4 -2 lines
Diff to previous 1.62 (colored) to selected 1.5 (colored)

sprinkle _KERNEL_OPT

Revision 1.62 / (download) - annotate - [select for diffs], Tue Jan 20 21:27:36 2015 UTC (9 years, 2 months ago) by roy
Branch: MAIN
CVS Tags: nick-nhusb-base-20150606, nick-nhusb-base-20150406
Changes since 1.61: +3 -2 lines
Diff to previous 1.61 (colored) to selected 1.5 (colored)

Add net.inet6.ip6.prefer_tempaddr sysctl knob so that we can prefer
IPv6 temporary addresses as the source address.

Fixes PR kern/47100 based on a patch by Dieter Roelants.

Revision 1.61 / (download) - annotate - [select for diffs], Wed Nov 12 03:24:25 2014 UTC (9 years, 5 months ago) by ozaki-r
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.60: +13 -2 lines
Diff to previous 1.60 (colored) to selected 1.5 (colored)

Ensure callout isn't running and pending before callout_destroy

Call callout_halt before callout_destroy. And also let callout (mld_timeo)
not call callout_schedule when we already called callout_halt.

This fixes PR 47881.

Revision 1.60 / (download) - annotate - [select for diffs], Tue Sep 9 20:16:12 2014 UTC (9 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.59: +9 -9 lines
Diff to previous 1.59 (colored) to selected 1.5 (colored)

Eliminate IFAREF() and IFAFREE() macros in favour of functions.

Revision 1.59 / (download) - annotate - [select for diffs], Sat Jul 26 22:21:16 2014 UTC (9 years, 8 months ago) by joerg
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.58: +8 -2 lines
Diff to previous 1.58 (colored) to selected 1.5 (colored)

PR 49036: net.inet6 has not been created when the sysctl constructor
for net.inet6.multicast is run.

Revision 1.58 / (download) - annotate - [select for diffs], Fri Jul 25 07:12:55 2014 UTC (9 years, 8 months ago) by ozaki-r
Branch: MAIN
Changes since 1.57: +4 -4 lines
Diff to previous 1.57 (colored) to selected 1.5 (colored)

Use IFADDR_FOREACH for iterating if_addrlist of ifnet

Revision 1.57 / (download) - annotate - [select for diffs], Tue Jun 10 09:38:30 2014 UTC (9 years, 10 months ago) by joerg
Branch: MAIN
Changes since 1.56: +145 -2 lines
Diff to previous 1.56 (colored) to selected 1.5 (colored)

Introduce new sysctls for obtaining interface-specific addresses:
- net.sdl for the active link-layer adddress (the MAC)
- net.ether.multicast for the Ethernet multicast addresses
- net.inet6.multicast for the IPv6 multicast groups
- net.inet6.multicast_kludge for temporarily removed multicast groups

Use this sysctls for replacing the kmem grovelling in ifmcstat(8).

Revision 1.56 / (download) - annotate - [select for diffs], Mon Jun 2 11:02:20 2014 UTC (9 years, 10 months ago) by joerg
Branch: MAIN
Changes since 1.55: +3 -3 lines
Diff to previous 1.55 (colored) to selected 1.5 (colored)

Use explicit initializer.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Nov 19 22:51:29 2011 UTC (12 years, 4 months ago) by tls
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, 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, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, agc-symver-base, agc-symver
Branch point for: tls-maxphys, tls-earlyentropy, netbsd-6
Changes since 1.54: +5 -4 lines
Diff to previous 1.54 (colored) to selected 1.5 (colored)

First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>.  This change includes
the following:

	An initial cleanup and minor reorganization of the entropy pool
	code in sys/dev/rnd.c and sys/dev/rndpool.c.  Several bugs are
	fixed.  Some effort is made to accumulate entropy more quickly at
	boot time.

	A generic interface, "rndsink", is added, for stream generators to
	request that they be re-keyed with good quality entropy from the pool
	as soon as it is available.

	The arc4random()/arc4randbytes() implementation in libkern is
	adjusted to use the rndsink interface for rekeying, which helps
	address the problem of low-quality keys at boot time.

	An implementation of the FIPS 140-2 statistical tests for random
	number generator quality is provided (libkern/rngtest.c).  This
	is based on Greg Rose's implementation from Qualcomm.

	A new random stream generator, nist_ctr_drbg, is provided.  It is
	based on an implementation of the NIST SP800-90 CTR_DRBG by
	Henric Jungheim.  This generator users AES in a modified counter
	mode to generate a backtracking-resistant random stream.

	An abstraction layer, "cprng", is provided for in-kernel consumers
	of randomness.  The arc4random/arc4randbytes API is deprecated for
	in-kernel use.  It is replaced by "cprng_strong".  The current
	cprng_fast implementation wraps the existing arc4random
	implementation.  The current cprng_strong implementation wraps the
	new CTR_DRBG implementation.  Both interfaces are rekeyed from
	the entropy pool automatically at intervals justifiable from best
	current cryptographic practice.

	In some quick tests, cprng_fast() is about the same speed as
	the old arc4randbytes(), and cprng_strong() is about 20% faster
	than rnd_extract_data().  Performance is expected to improve.

	The AES code in src/crypto/rijndael is no longer an optional
	kernel component, as it is required by cprng_strong, which is
	not an optional kernel component.

	The entropy pool output is subjected to the rngtest tests at
	startup time; if it fails, the system will reboot.  There is
	approximately a 3/10000 chance of a false positive from these
	tests.  Entropy pool _input_ from hardware random numbers is
	subjected to the rngtest tests at attach time, as well as the
	FIPS continuous-output test, to detect bad or stuck hardware
	RNGs; if any are detected, they are detached, but the system
	continues to run.

	A problem with rndctl(8) is fixed -- datastructures with
	pointers in arrays are no longer passed to userspace (this
	was not a security problem, but rather a major issue for
	compat32).  A new kernel will require a new rndctl.

	The sysctl kern.arandom() and kern.urandom() nodes are hooked
	up to the new generators, but the /dev/*random pseudodevices
	are not, yet.

	Manual pages for the new kernel interfaces are forthcoming.

Revision 1.54 / (download) - annotate - [select for diffs], Wed Oct 19 01:53:07 2011 UTC (12 years, 6 months ago) by dyoung
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache
Changes since 1.53: +8 -8 lines
Diff to previous 1.53 (colored) to selected 1.5 (colored)

Use if_addr_init() and if_mcast_op() instead of ifp->if_ioctl().

Revision 1.53 / (download) - annotate - [select for diffs], Wed Aug 31 18:31:03 2011 UTC (12 years, 7 months ago) by plunky
Branch: MAIN
Changes since 1.52: +3 -3 lines
Diff to previous 1.52 (colored) to selected 1.5 (colored)

NULL does not need a cast

Revision 1.52 / (download) - annotate - [select for diffs], Thu Apr 21 06:58:31 2011 UTC (12 years, 11 months ago) by dholland
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, cherry-xenmp
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (colored) to selected 1.5 (colored)

Prune dead assignment, from Henning Petersen in PR 44890.

Revision 1.51 / (download) - annotate - [select for diffs], Tue Aug 4 22:04:23 2009 UTC (14 years, 8 months ago) by dyoung
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, matt-premerge-20091211, matt-mips64-premerge-20101231, jym-xensuspend-nbase, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: rmind-uvmplock, jruoho-x86intr
Changes since 1.50: +6 -9 lines
Diff to previous 1.50 (colored) to selected 1.5 (colored)

Use malloc(...|M_ZERO) instead of malloc(...) followed by memset(,0,).

Revision 1.50 / (download) - annotate - [select for diffs], Sat Apr 18 14:58:05 2009 UTC (15 years ago) by tsutsui
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base, jym-xensuspend-base
Changes since 1.49: +3 -3 lines
Diff to previous 1.49 (colored) to selected 1.5 (colored)

Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch

Revision 1.49 / (download) - annotate - [select for diffs], Wed Mar 18 17:06:52 2009 UTC (15 years, 1 month ago) by cegger
Branch: MAIN
Changes since 1.48: +3 -3 lines
Diff to previous 1.48 (colored) to selected 1.5 (colored)

bcopy -> memcpy

Revision 1.48 / (download) - annotate - [select for diffs], Fri Nov 7 00:20:18 2008 UTC (15 years, 5 months ago) by dyoung
Branch: MAIN
CVS Tags: nick-hppapmap-base2, mjf-devfs2-base, haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: jym-xensuspend
Changes since 1.47: +3 -6 lines
Diff to previous 1.47 (colored) to selected 1.5 (colored)

*** Summary ***

When a link-layer address changes (e.g., ifconfig ex0 link
02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor
Advertisement to update the network-/link-layer address bindings
on our LAN peers.

Refuse a change of ethernet address to the address 00:00:00:00:00:00
or to any multicast/broadcast address.  (Thanks matt@.)

Reorder ifnet ioctl operations so that driver ioctls may inherit
the functions of their "class"---ether_ioctl(), fddi_ioctl(), et
cetera---and the class ioctls may inherit from the generic ioctl,
ifioctl_common(), but both driver- and class-ioctls may override
the generic behavior.  Make network drivers share more code.

Distinguish a "factory" link-layer address from others for the
purposes of both protecting that address from deletion and computing
EUI64.

Return consistent, appropriate error codes from network drivers.

Improve readability.  KNF.

*** Details ***

In if_attach(), always initialize the interface ioctl routine,
ifnet->if_ioctl, if the driver has not already initialized it.
Delete if_ioctl == NULL tests everywhere else, because it cannot
happen.

In the ioctl routines of network interfaces, inherit common ioctl
behaviors by calling either ifioctl_common() or whichever ioctl
routine is appropriate for the class of interface---e.g., ether_ioctl()
for ethernets.

Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR.  In
the user->kernel interface, SIOCSIFADDR's argument was an ifreq,
but on the protocol->ifnet interface, SIOCSIFADDR's argument was
an ifaddr.  That was confusing, and it would work against me as I
make it possible for a network interface to overload most ioctls.
On the protocol->ifnet interface, replace SIOCSIFADDR with
SIOCINITIFADDR.  In ifioctl(), return EPERM if userland tries to
invoke SIOCINITIFADDR.

In ifioctl(), give the interface the first shot at handling most
interface ioctls, and give the protocol the second shot, instead
of the other way around. Finally, let compatibility code (COMPAT_OSOCK)
take a shot.

Pull device initialization out of switch statements under
SIOCINITIFADDR.  For example, pull ..._init() out of any switch
statement that looks like this:

        switch (...->sa_family) {
        case ...:
                ..._init();
                ...
                break;
        ...
        default:
                ..._init();
                ...
                break;
        }

Rewrite many if-else clauses that handle all permutations of IFF_UP
and IFF_RUNNING to use a switch statement,

        switch (x & (IFF_UP|IFF_RUNNING)) {
        case 0:
                ...
                break;
        case IFF_RUNNING:
                ...
                break;
        case IFF_UP:
                ...
                break;
        case IFF_UP|IFF_RUNNING:
                ...
                break;
        }

unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and
#ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).

In ipw(4), remove an if_set_sadl() call that is out of place.

In nfe(4), reuse the jumbo MTU logic in ether_ioctl().

Let ethernets register a callback for setting h/w state such as
promiscuous mode and the multicast filter in accord with a change
in the if_flags: ether_set_ifflags_cb() registers a callback that
returns ENETRESET if the caller should reset the ethernet by calling
if_init(), 0 on success, != 0 on failure.  Pull common code from
ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(),
and register if_flags callbacks for those drivers.

Return ENOTTY instead of EINVAL for inappropriate ioctls.  In
zyd(4), use ENXIO instead of ENOTTY to indicate that the device is
not any longer attached.

Add to if_set_sadl() a boolean 'factory' argument that indicates
whether a link-layer address was assigned by the factory or some
other source.  In a comment, recommend using the factory address
for generating an EUI64, and update in6_get_hw_ifid() to prefer a
factory address to any other link-layer address.

Add a routing message, RTM_LLINFO_UPD, that tells protocols to
update the binding of network-layer addresses to link-layer addresses.
Implement this message in IPv4 and IPv6 by sending a gratuitous
ARP or a neighbor advertisement, respectively.  Generate RTM_LLINFO_UPD
messages on a change of an interface's link-layer address.

In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address
that is broadcast/multicast or equal to 00:00:00:00:00:00.

Make ether_ioctl() call ifioctl_common() to handle ioctls that it
does not understand.

In gif(4), initialize if_softc and use it, instead of assuming that
the gif_softc and ifp overlap.

Let ifioctl_common() handle SIOCGIFADDR.

Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels
that certain invariants on a struct route are satisfied.

In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit
about the ioctls that we do not allow on an agr(4) member interface.

bzero -> memset.  Delete unnecessary casts to void *.  Use
sockaddr_in_init() and sockaddr_in6_init().  Compare pointers with
NULL instead of "testing truth".  Replace some instances of (type
*)0 with NULL.  Change some K&R prototypes to ANSI C, and join
lines.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Aug 22 17:11:39 2008 UTC (15 years, 7 months ago) by adrianp
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, 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, 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-dm-base1
Branch point for: nick-hppapmap
Changes since 1.46: +7 -7 lines
Diff to previous 1.46 (colored) to selected 1.5 (colored)

Fix from matt@ for malformed ICMPv6 MLD query (CVE-2008-2464).

Revision 1.46 / (download) - annotate - [select for diffs], Thu May 22 01:06:40 2008 UTC (15 years, 10 months ago) by dyoung
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl
Branch point for: haad-dm
Changes since 1.45: +4 -6 lines
Diff to previous 1.45 (colored) to selected 1.5 (colored)

Don't cast to void * unnecessarily.

Revision 1.45 / (download) - annotate - [select for diffs], Thu Apr 24 11:38:38 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, yamt-nfs-mp-base, hpcarm-cleanup-nbase
Branch point for: yamt-nfs-mp, wrstuden-revivesa
Changes since 1.44: +9 -5 lines
Diff to previous 1.44 (colored) to selected 1.5 (colored)

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.44 / (download) - annotate - [select for diffs], Tue Apr 15 03:57:04 2008 UTC (16 years ago) by thorpej
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.43: +5 -4 lines
Diff to previous 1.43 (colored) to selected 1.5 (colored)

Make ip6 and icmp6 stats per-cpu.

Revision 1.43 / (download) - annotate - [select for diffs], Tue Apr 8 15:04:35 2008 UTC (16 years ago) by thorpej
Branch: MAIN
Changes since 1.42: +4 -4 lines
Diff to previous 1.42 (colored) to selected 1.5 (colored)

Change ICMP6 stats from a structure to an array of uint64_t's.

Note: This is ABI-compatible with the old icmp6stat structure; old netstat
binaries will continue to work properly.

Revision 1.42 / (download) - annotate - [select for diffs], Wed Feb 27 19:40:56 2008 UTC (16 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored) to selected 1.5 (colored)

Convert to ansi definitions from old-style definitons.
Remember that func() is not ansi, func(void) is.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Oct 16 20:31:33 2007 UTC (16 years, 6 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking2, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, mjf-devfs, matt-armv6-base, jmcneill-pm-base, jmcneill-base, hpcarm-cleanup-base, cube-autoconf-base, cube-autoconf, bouyer-xeni386-nbase, bouyer-xeni386-merge1, bouyer-xeni386-base, bouyer-xeni386, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.40: +9 -20 lines
Diff to previous 1.40 (colored) to selected 1.5 (colored)

Inline callout_t in struct in6_multi. This fixes a number of possible
memory leaks. Explicitly destroy the callout before freeing it.
Use callout_setfunc/callout_schedule instead of repeating it for
callout_reset.

Bump NetBSD version to 4.99.34 for kvm users.

Revision 1.40 / (download) - annotate - [select for diffs], Fri Aug 31 21:40:41 2007 UTC (16 years, 7 months ago) by dyoung
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, vmlocking-base, nick-csl-alignment-base5
Branch point for: yamt-x86pmap
Changes since 1.39: +4 -10 lines
Diff to previous 1.39 (colored) to selected 1.5 (colored)

Use sockaddr_in6_init().

Revision 1.39 / (download) - annotate - [select for diffs], Mon Jul 9 21:11:13 2007 UTC (16 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base, mjf-ufs-trans-base, matt-mips64-base, matt-mips64, hpcarm-cleanup
Branch point for: nick-csl-alignment, matt-armv6, jmcneill-pm
Changes since 1.38: +3 -3 lines
Diff to previous 1.38 (colored) to selected 1.5 (colored)

Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.38 / (download) - annotate - [select for diffs], Wed May 23 17:15:03 2007 UTC (16 years, 10 months ago) by christos
Branch: MAIN
Changes since 1.37: +21 -42 lines
Diff to previous 1.37 (colored) to selected 1.5 (colored)

Ansify + add a few comments, from Karl Sjödahl

Revision 1.37 / (download) - annotate - [select for diffs], Sun Mar 4 06:03:27 2007 UTC (17 years, 1 month ago) by christos
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup
Branch point for: vmlocking, mjf-ufs-trans
Changes since 1.36: +5 -5 lines
Diff to previous 1.36 (colored) to selected 1.5 (colored)

Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Nov 29 03:05:12 2006 UTC (17 years, 4 months ago) by dyoung
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, wrstuden-fixsa-base-1, post-newlock2-merge, newlock2-nbase, newlock2-base, 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, matt-nb4-arm-base, matt-nb4-arm, ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp, wrstuden-fixsa, netbsd-4-0, netbsd-4
Changes since 1.35: +18 -19 lines
Diff to previous 1.35 (colored) to selected 1.5 (colored)

Fix a spelling error.

Annotate a memory leak.

When copying one multicast address list to another, IFAREF before IFAFREE
to protect against using an ifaddr after (accidentally) freeing it.

LIST_REMOVE() a multicast address from its old list before
LIST_INSERT_HEAD() on its new list.

Do not count on in6_delmulti() removing its multicast-record argument
from the multicast address list that the record belongs to, because
clearly that is not what it (always) does.

Revision 1.35 / (download) - annotate - [select for diffs], Mon Nov 20 04:26:22 2006 UTC (17 years, 5 months ago) by dyoung
Branch: MAIN
Changes since 1.34: +40 -39 lines
Diff to previous 1.34 (colored) to selected 1.5 (colored)

Cosmetic: use LIST_ macros.  Shorten some staircases.

Defensive programming: set an in6_multi's ifaddr reference to NULL
after releasing it, to protect against reuse.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Nov 16 01:33:45 2006 UTC (17 years, 5 months ago) by christos
Branch: MAIN
Changes since 1.33: +3 -3 lines
Diff to previous 1.33 (colored) to selected 1.5 (colored)

__unused removal on arguments; approved by core.

Revision 1.33 / (download) - annotate - [select for diffs], Thu Oct 12 01:32:39 2006 UTC (17 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2
Changes since 1.32: +4 -7 lines
Diff to previous 1.32 (colored) to selected 1.5 (colored)

- sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386

Revision 1.32 / (download) - annotate - [select for diffs], Mon Mar 6 20:33:52 2006 UTC (18 years, 1 month ago) by rpaulo
Branch: MAIN
CVS Tags: yamt-splraiseipl-base, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, peter-altq-base, peter-altq, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-splraiseipl, newlock2
Changes since 1.31: +8 -8 lines
Diff to previous 1.31 (colored) to selected 1.5 (colored)

Rename local variables called delay that shadow the delay() decl.
Pointed out by Robert Swindells.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Mar 5 23:47:08 2006 UTC (18 years, 1 month ago) by rpaulo
Branch: MAIN
Changes since 1.30: +552 -133 lines
Diff to previous 1.30 (colored) to selected 1.5 (colored)

NDP-related improvements:
        RFC4191
	- supports host-side router-preference

	RFC3542
	- if DAD fails on a interface, disables IPv6 operation on the
          interface
	- don't advertise MLD report before DAD finishes

	Others
	- fixes integer overflow for valid and preferred lifetimes
	- improves timer granularity for MLD, using callout-timer.
	- reflects rtadvd's IPv6 host variable information into kernel
	  (router only)
	- adds a sysctl option to enable/disable pMTUd for multicast
          packets
	- performs NUD on PPP/GRE interface by default
	- Redirect works regardless of ip6_accept_rtadv
	- removes RFC1885-related code

From the KAME project via SUZUKI Shinsuke.
Reviewed by core.

Revision 1.30 / (download) - annotate - [select for diffs], Fri Mar 3 14:07:06 2006 UTC (18 years, 1 month ago) by rpaulo
Branch: MAIN
CVS Tags: yamt-pdpolicy-base
Branch point for: yamt-pdpolicy
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored) to selected 1.5 (colored)

Fix typos in comments.

From: the KAME project via SUZUKI Shinsuke.

Revision 1.29 / (download) - annotate - [select for diffs], Sat Jan 21 00:15:36 2006 UTC (18 years, 2 months ago) by rpaulo
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5
Branch point for: simonb-timecounters, rpaulo-netinet-merge-pcb
Changes since 1.28: +54 -41 lines
Diff to previous 1.28 (colored) to selected 1.5 (colored)

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.28 / (download) - annotate - [select for diffs], Sun Dec 11 12:25:02 2005 UTC (18 years, 4 months ago) by christos
Branch: MAIN
Branch point for: yamt-uio_vmspace
Changes since 1.27: +2 -2 lines
Diff to previous 1.27 (colored) to selected 1.5 (colored)

merge ktrace-lwp.

Revision 1.27 / (download) - annotate - [select for diffs], Sat Feb 26 22:45:12 2005 UTC (19 years, 1 month ago) by perry
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, yamt-km-base4, yamt-km-base3, thorpej-vnode-attr-base, thorpej-vnode-attr, 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, ktrace-lwp-base, kent-audio2-base
Branch point for: yamt-lazymbuf
Changes since 1.26: +3 -3 lines
Diff to previous 1.26 (colored) to selected 1.5 (colored)

nuke trailing whitespace

Revision 1.26 / (download) - annotate - [select for diffs], Sun Mar 28 08:28:50 2004 UTC (20 years ago) by christos
Branch: MAIN
CVS Tags: yamt-km-base2, yamt-km-base, 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-base, 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-0, netbsd-2, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Changes since 1.25: +2 -5 lines
Diff to previous 1.25 (colored) to selected 1.5 (colored)

no need for splsoftnet, because the caller does it already.

Revision 1.25 / (download) - annotate - [select for diffs], Fri Aug 22 21:53:09 2003 UTC (20 years, 7 months ago) by itojun
Branch: MAIN
Changes since 1.24: +3 -3 lines
Diff to previous 1.24 (colored) to selected 1.5 (colored)

change the additional arg to be passed to ip{,6}_output to struct socket *.

this fixes KAME policy lookup which was broken by the previous commit.

Revision 1.24 / (download) - annotate - [select for diffs], Fri Aug 22 20:20:10 2003 UTC (20 years, 7 months ago) by jonathan
Branch: MAIN
Changes since 1.23: +4 -3 lines
Diff to previous 1.23 (colored) to selected 1.5 (colored)

Replace the set_socket() method of passing an extra struct socket*
argument to ip6_output() with a new explicit struct in6pcb* argument.
(The underlying socket can be obtained via in6pcb->inp6_socket.)

In preparation for fast-ipsec.  Reviewed by itojun.

Revision 1.23 / (download) - annotate - [select for diffs], Thu Aug 7 16:33:29 2003 UTC (20 years, 8 months ago) by agc
Branch: MAIN
Changes since 1.22: +35 -3 lines
Diff to previous 1.22 (colored) to selected 1.5 (colored)

Move UCB-licensed code from 4-clause to 3-clause licence.

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

Revision 1.22 / (download) - annotate - [select for diffs], Fri Jun 6 08:13:44 2003 UTC (20 years, 10 months ago) by itojun
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.21: +76 -77 lines
Diff to previous 1.21 (colored) to selected 1.5 (colored)

- sync up MLD declaration with RFC3542 (s/MLD6/MLD/)
- routing header declaration with RFC3542
  (note: sizeof(ip6_rthdr0) has changed!)
  also, sync up with RFC2460 routing header definition (no "strict" source
  routing mode any more)

part of advanced API update (RFC2292 -> 3542).

Revision 1.21 / (download) - annotate - [select for diffs], Wed May 14 06:47:43 2003 UTC (20 years, 11 months ago) by itojun
Branch: MAIN
Changes since 1.20: +2 -7 lines
Diff to previous 1.20 (colored) to selected 1.5 (colored)

always use PULLDOWN_TEST codepath.

Revision 1.20 / (download) - annotate - [select for diffs], Sun Jun 9 14:43:13 2002 UTC (21 years, 10 months ago) by itojun
Branch: MAIN
CVS Tags: nathanw_sa_before_merge, nathanw_sa_base, kqueue-beforemerge, kqueue-base, kqueue-aftermerge, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, gehenna-devsw-base, fvdl_fs64_base
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (colored) to selected 1.5 (colored)

whitespace cleanup

Revision 1.19 / (download) - annotate - [select for diffs], Sat Jun 8 21:22:34 2002 UTC (21 years, 10 months ago) by itojun
Branch: MAIN
Changes since 1.18: +30 -19 lines
Diff to previous 1.18 (colored) to selected 1.5 (colored)

sync with latest KAME in6_ifaddr/prefix/default router manipulation.
behavior changes:
- two iocts used by ndp(8) are now obsolete (backward compat provided).
  use sysctl path instead.
- lo0 does not get ::1 automatically.  it will get ::1 when lo0 comes up.

Revision 1.18 / (download) - annotate - [select for diffs], Tue Jan 8 04:37:32 2002 UTC (22 years, 3 months ago) by itojun
Branch: MAIN
CVS Tags: newlock-base, newlock, netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, ifpoll-base, eeh-devprop-base, eeh-devprop
Branch point for: netbsd-1-6, gehenna-devsw
Changes since 1.17: +6 -2 lines
Diff to previous 1.17 (colored) to selected 1.5 (colored)

do not log() in per-packet input path.  sync w/kame

Revision 1.17 / (download) - annotate - [select for diffs], Tue Dec 18 03:04:04 2001 UTC (22 years, 4 months ago) by itojun
Branch: MAIN
Changes since 1.16: +4 -4 lines
Diff to previous 1.16 (colored) to selected 1.5 (colored)

reduce white space/cosmetic diffs w/kame.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Nov 13 00:57:04 2001 UTC (22 years, 5 months ago) by lukem
Branch: MAIN
Changes since 1.15: +4 -1 lines
Diff to previous 1.15 (colored) to selected 1.5 (colored)

add RCSIDs

Revision 1.15 / (download) - annotate - [select for diffs], Thu Oct 18 09:09:26 2001 UTC (22 years, 6 months ago) by itojun
Branch: MAIN
CVS Tags: thorpej-mips-cache-base, thorpej-mips-cache
Changes since 1.14: +13 -16 lines
Diff to previous 1.14 (colored) to selected 1.5 (colored)

simplify per-if stats.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Oct 16 06:24:45 2001 UTC (22 years, 6 months ago) by itojun
Branch: MAIN
Changes since 1.13: +3 -2 lines
Diff to previous 1.13 (colored) to selected 1.5 (colored)

more whitespace/comment sync with kame

Revision 1.13 / (download) - annotate - [select for diffs], Sat Feb 10 04:14:29 2001 UTC (23 years, 2 months ago) by itojun
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase, thorpej_scsipi_beforemerge, thorpej_scsipi_base, thorpej-devvp-base3, thorpej-devvp-base2, thorpej-devvp-base, thorpej-devvp, pre-chs-ubcperf, post-chs-ubcperf
Branch point for: nathanw_sa, kqueue
Changes since 1.12: +22 -19 lines
Diff to previous 1.12 (colored) to selected 1.5 (colored)

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.12 / (download) - annotate - [select for diffs], Wed Mar 1 12:49:48 2000 UTC (24 years, 1 month ago) by itojun
Branch: MAIN
CVS Tags: netbsd-1-5-base, netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2, netbsd-1-5, minoura-xpg4dl-base, minoura-xpg4dl
Changes since 1.11: +1 -5 lines
Diff to previous 1.11 (colored) to selected 1.5 (colored)

introduce m->m_pkthdr.aux to hold random data which needs to be passed
between protocol handlers.

ipsec socket pointers, ipsec decryption/auth information, tunnel
decapsulation information are in my mind - there can be several other usage.
at this moment, we use this for ipsec socket pointer passing.  this will
avoid reuse of m->m_pkthdr.rcvif in ipsec code.

due to the change, MHLEN will be decreased by sizeof(void *) - for example,
for i386, MHLEN was 100 bytes, but is now 96 bytes.
we may want to increase MSIZE from 128 to 256 for some of our architectures.

take caution if you use it for keeping some data item for long period
of time - use extra caution on M_PREPEND() or m_adj(), as they may result
in loss of m->m_pkthdr.aux pointer (and mbuf leak).

this will bump kernel version.

(as discussed in tech-net, tested in kame tree)

Revision 1.11 / (download) - annotate - [select for diffs], Sat Feb 26 08:39:20 2000 UTC (24 years, 1 month ago) by itojun
Branch: MAIN
Changes since 1.10: +47 -31 lines
Diff to previous 1.10 (colored) to selected 1.5 (colored)

bring in recent KAME changes (only important and stable ones, as usual).
- remove net.inet6.ip6.nd6_proxyall.  introduce proxy NDP code works
  just like "arp -s".
- revise source address selection.
  be more careful about use of yet-to-be-valid addresses as source.
- as router, transmit ICMP6_DST_UNREACH_BEYONDSCOPE against out-of-scope
  packet forwarding attempt.
- path MTU discovery takes care of routing header properly.
- be more strict about mbuf chain parsing.

Revision 1.10 / (download) - annotate - [select for diffs], Sun Feb 6 12:49:47 2000 UTC (24 years, 2 months ago) by itojun
Branch: MAIN
CVS Tags: chs-ubc2-newbase
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored) to selected 1.5 (colored)

fix include pathname for better rfc2292 compliance.

Revision 1.9 / (download) - annotate - [select for diffs], Thu Jan 6 15:46:10 2000 UTC (24 years, 3 months ago) by itojun
Branch: MAIN
Changes since 1.8: +1 -33 lines
Diff to previous 1.8 (colored) to selected 1.5 (colored)

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.8 / (download) - annotate - [select for diffs], Wed Dec 15 06:28:44 1999 UTC (24 years, 4 months ago) by itojun
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221
Changes since 1.7: +3 -2 lines
Diff to previous 1.7 (colored) to selected 1.5 (colored)

do not overwrite traffic class field when we write IPv6 version field.

Revision 1.7 / (download) - annotate - [select for diffs], Mon Dec 13 15:17:23 1999 UTC (24 years, 4 months ago) by itojun
Branch: MAIN
Changes since 1.6: +145 -99 lines
Diff to previous 1.6 (colored) to selected 1.5 (colored)

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.6 / (download) - annotate - [select for diffs], Sat Jul 31 18:41:17 1999 UTC (24 years, 8 months ago) by itojun
Branch: 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
Changes since 1.5: +3 -1 lines
Diff to previous 1.5 (colored)

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.5 / (download) - annotate - [selected], Fri Jul 9 22:57:29 1999 UTC (24 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).

Revision 1.4 / (download) - annotate - [select for diffs], Sun Jul 4 02:01:15 1999 UTC (24 years, 9 months ago) by itojun
Branch: MAIN
Changes since 1.3: +3 -3 lines
Diff to previous 1.3 (colored) to selected 1.5 (colored)

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.3 / (download) - annotate - [select for diffs], Sat Jul 3 21:30:19 1999 UTC (24 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.2: +2 -0 lines
Diff to previous 1.2 (colored) to selected 1.5 (colored)

RCS ID police.

Revision 1.2 / (download) - annotate - [select for diffs], Thu Jul 1 08:12:57 1999 UTC (24 years, 9 months ago) by itojun
Branch: MAIN
Branch point for: chs-ubc2
Changes since 1.1: +435 -0 lines
Diff to previous 1.1 (colored) to selected 1.5 (colored)

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, Mon Jun 28 06:37:06 1999 UTC (24 years, 9 months ago) by itojun
Branch: MAIN
Branch point for: kame
FILE REMOVED

file mld6.c was initially added on branch kame.

This form allows you to request diff's 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.




CVSweb <webmaster@jp.NetBSD.org>