#
1.104 |
|
16-Jun-2020 |
maxv |
remove unused
|
#
1.103 |
|
12-Jun-2020 |
roy |
Remove in-kernel handling of Router Advertisements
This is much better handled by a user-land tool. Proposed on tech-net here: https://mail-index.netbsd.org/tech-net/2020/04/22/msg007766.html
Note that the ioctl SIOCGIFINFO_IN6 no longer sets flags. That now needs to be done using the pre-existing SIOCSIFINFO_FLAGS ioctl.
Compat is fully provided where it makes sense, but trying to turn on RA handling will obviously throw an error as it no longer exists.
Note that if you use IPv6 temporary addresses, this now needs to be turned on in dhcpcd.conf(5) rather than in sysctl.conf(5).
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
|
#
1.102 |
|
18-Oct-2019 |
ozaki-r |
in6: reset the temporary address timer on a change of the interval period
|
#
1.101 |
|
16-Oct-2019 |
ozaki-r |
Reorganize in6_tmpaddrtimer stuffs
- Move the related functions to where in6_tmpaddrtimer_ch exists - Hide global variable in6_tmpaddrtimer_ch - Rename ip6_init2 to in6_tmpaddrtimer_init - Reduce callers of callout_reset - Use callout_schedule
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-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 phil-wifi-base pgoyette-compat-0625
|
#
1.100 |
|
29-May-2018 |
ozaki-r |
branches: 1.100.2; 1.100.6; Make a deletion of in6m in nd6_rtrequest atomic
|
#
1.99 |
|
29-May-2018 |
ozaki-r |
Improve atomicity of in6_leavegroup and in6_delmulti
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
#
1.98 |
|
19-Apr-2018 |
christos |
s/static inline/static __inline/g for consistency.
|
Revision tags: netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.97 |
|
02-Mar-2017 |
ozaki-r |
branches: 1.97.6; 1.97.12; Plug a race condition on accessing i6mm_maddr
|
#
1.96 |
|
02-Mar-2017 |
ozaki-r |
Fix racy in6m_sol
Relook up the entry instead of reusing it, which makes locking simple.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
branches: 1.89.2; Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.103 |
|
12-Jun-2020 |
roy |
Remove in-kernel handling of Router Advertisements
This is much better handled by a user-land tool. Proposed on tech-net here: https://mail-index.netbsd.org/tech-net/2020/04/22/msg007766.html
Note that the ioctl SIOCGIFINFO_IN6 no longer sets flags. That now needs to be done using the pre-existing SIOCSIFINFO_FLAGS ioctl.
Compat is fully provided where it makes sense, but trying to turn on RA handling will obviously throw an error as it no longer exists.
Note that if you use IPv6 temporary addresses, this now needs to be turned on in dhcpcd.conf(5) rather than in sysctl.conf(5).
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
|
#
1.102 |
|
18-Oct-2019 |
ozaki-r |
in6: reset the temporary address timer on a change of the interval period
|
#
1.101 |
|
16-Oct-2019 |
ozaki-r |
Reorganize in6_tmpaddrtimer stuffs
- Move the related functions to where in6_tmpaddrtimer_ch exists - Hide global variable in6_tmpaddrtimer_ch - Rename ip6_init2 to in6_tmpaddrtimer_init - Reduce callers of callout_reset - Use callout_schedule
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-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 phil-wifi-base pgoyette-compat-0625
|
#
1.100 |
|
29-May-2018 |
ozaki-r |
branches: 1.100.2; 1.100.6; Make a deletion of in6m in nd6_rtrequest atomic
|
#
1.99 |
|
29-May-2018 |
ozaki-r |
Improve atomicity of in6_leavegroup and in6_delmulti
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
#
1.98 |
|
19-Apr-2018 |
christos |
s/static inline/static __inline/g for consistency.
|
Revision tags: netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.97 |
|
02-Mar-2017 |
ozaki-r |
branches: 1.97.6; 1.97.12; Plug a race condition on accessing i6mm_maddr
|
#
1.96 |
|
02-Mar-2017 |
ozaki-r |
Fix racy in6m_sol
Relook up the entry instead of reusing it, which makes locking simple.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
branches: 1.89.2; Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.102 |
|
18-Oct-2019 |
ozaki-r |
in6: reset the temporary address timer on a change of the interval period
|
#
1.101 |
|
16-Oct-2019 |
ozaki-r |
Reorganize in6_tmpaddrtimer stuffs
- Move the related functions to where in6_tmpaddrtimer_ch exists - Hide global variable in6_tmpaddrtimer_ch - Rename ip6_init2 to in6_tmpaddrtimer_init - Reduce callers of callout_reset - Use callout_schedule
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-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 phil-wifi-base pgoyette-compat-0625
|
#
1.100 |
|
29-May-2018 |
ozaki-r |
Make a deletion of in6m in nd6_rtrequest atomic
|
#
1.99 |
|
29-May-2018 |
ozaki-r |
Improve atomicity of in6_leavegroup and in6_delmulti
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
#
1.98 |
|
19-Apr-2018 |
christos |
s/static inline/static __inline/g for consistency.
|
Revision tags: netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.97 |
|
02-Mar-2017 |
ozaki-r |
branches: 1.97.6; 1.97.12; Plug a race condition on accessing i6mm_maddr
|
#
1.96 |
|
02-Mar-2017 |
ozaki-r |
Fix racy in6m_sol
Relook up the entry instead of reusing it, which makes locking simple.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
branches: 1.89.2; Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.101 |
|
16-Oct-2019 |
ozaki-r |
Reorganize in6_tmpaddrtimer stuffs
- Move the related functions to where in6_tmpaddrtimer_ch exists - Hide global variable in6_tmpaddrtimer_ch - Rename ip6_init2 to in6_tmpaddrtimer_init - Reduce callers of callout_reset - Use callout_schedule
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-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 phil-wifi-base pgoyette-compat-0625
|
#
1.100 |
|
29-May-2018 |
ozaki-r |
Make a deletion of in6m in nd6_rtrequest atomic
|
#
1.99 |
|
29-May-2018 |
ozaki-r |
Improve atomicity of in6_leavegroup and in6_delmulti
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
#
1.98 |
|
19-Apr-2018 |
christos |
s/static inline/static __inline/g for consistency.
|
Revision tags: netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.97 |
|
02-Mar-2017 |
ozaki-r |
branches: 1.97.6; 1.97.12; Plug a race condition on accessing i6mm_maddr
|
#
1.96 |
|
02-Mar-2017 |
ozaki-r |
Fix racy in6m_sol
Relook up the entry instead of reusing it, which makes locking simple.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
branches: 1.89.2; Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
Revision tags: isaki-audio2-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 phil-wifi-base pgoyette-compat-0625
|
#
1.100 |
|
29-May-2018 |
ozaki-r |
Make a deletion of in6m in nd6_rtrequest atomic
|
#
1.99 |
|
29-May-2018 |
ozaki-r |
Improve atomicity of in6_leavegroup and in6_delmulti
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
#
1.98 |
|
19-Apr-2018 |
christos |
s/static inline/static __inline/g for consistency.
|
Revision tags: netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.97 |
|
02-Mar-2017 |
ozaki-r |
branches: 1.97.6; 1.97.12; Plug a race condition on accessing i6mm_maddr
|
#
1.96 |
|
02-Mar-2017 |
ozaki-r |
Fix racy in6m_sol
Relook up the entry instead of reusing it, which makes locking simple.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
branches: 1.89.2; Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.97 |
|
02-Mar-2017 |
ozaki-r |
Plug a race condition on accessing i6mm_maddr
|
#
1.96 |
|
02-Mar-2017 |
ozaki-r |
Fix racy in6m_sol
Relook up the entry instead of reusing it, which makes locking simple.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.95 |
|
02-Mar-2017 |
ozaki-r |
Protect ia6_memberships by in6_ifaddr_lock
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.94 |
|
01-Mar-2017 |
ozaki-r |
Provide in6_multi_group
Use it when checking if we belong to the group, instead of in6_lookup_multi.
No functional change.
|
#
1.93 |
|
23-Feb-2017 |
ozaki-r |
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.
|
#
1.92 |
|
22-Feb-2017 |
ozaki-r |
Stop using useless IN6_*_MULTI macros
|
Revision tags: nick-nhusb-base-20170204
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.91 |
|
16-Jan-2017 |
christos |
ip6_sprintf -> IN6_PRINT so that we pass the size.
|
#
1.90 |
|
16-Jan-2017 |
ryo |
Make ip6_sprintf(), in_fmtaddr(), lla_snprintf() and icmp6_redirect_diag() mpsafe.
Reviewed by ozaki-r@
|
Revision tags: bouyer-socketcan-base
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
#
1.89 |
|
10-Jan-2017 |
ozaki-r |
Enable some sysctl knobs on rump kernels for ifmcstat
|
Revision tags: pgoyette-localcount-20170107
|
#
1.88 |
|
04-Jan-2017 |
christos |
- kill NULL argument from in6_update_ifa - amend in6_update_ifa1 to return the ia, so that we can use it in pfil hooks to avoid NULL pointer crash.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004
|
#
1.87 |
|
14-Sep-2016 |
christos |
fix typo
|
Revision tags: localcount-20160914
|
#
1.86 |
|
13-Sep-2016 |
christos |
remove trailing spaces. userland does not catch this?
|
#
1.85 |
|
13-Sep-2016 |
christos |
add bits for address flags
|
Revision tags: pgoyette-localcount-20160806
|
#
1.84 |
|
01-Aug-2016 |
ozaki-r |
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 tags: pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.83 |
|
08-Jul-2016 |
ozaki-r |
branches: 1.83.2; 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.
|
#
1.82 |
|
08-Jul-2016 |
ozaki-r |
Kill remaining use of the old lists of IP addresses
|
#
1.81 |
|
06-Jul-2016 |
ozaki-r |
Move in6_ifaddr_list to a more proper place (from ip6_input.c to in6.c)
It's a similar place as the IPv4 address list, i.e., in.c.
More varibles will join together.
|
#
1.80 |
|
06-Jul-2016 |
ozaki-r |
Add missing IN6_ADDRLIST_ENTRY_DESTROY
|
#
1.79 |
|
04-Jul-2016 |
ozaki-r |
Fix userland compilations of those including in6_var.h
|
#
1.78 |
|
04-Jul-2016 |
ozaki-r |
Use pslist(9) for the global in6_ifaddr list
psz and psref will be applied in another commit.
No functional change intended.
|
#
1.77 |
|
22-Jun-2016 |
ozaki-r |
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 tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.76 |
|
04-Feb-2016 |
riastradh |
Declare in6_tmpaddrtimer_ch in in6_var.h.
Do not declare extern variables in .c files!
|
Revision tags: nick-nhusb-base-20151226
|
#
1.75 |
|
25-Nov-2015 |
ozaki-r |
Use lltable/llentry for NDP
lltable and llentry were introduced to replace ARP cache data structure for further restructuring of the routing table: L2 nexthop cache separation. This change replaces the NDP cache data structure (llinfo_nd6) with them as well as ARP.
One noticeable change is for neighbor cache GC mechanism that was introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh was the max number of caches that we store in the system. After introducing lltable/llentry, the value is changed to be per-interface basis because lltable/llentry stores neighbor caches in each interface separately. And the change brings one degradation; the old GC mechanism dropped exceeded packets based on LRU while the new implementation drops packets in order from the beginning of lltable (a hash table + linked lists). It would be improved in the future.
Added functions in in6.c come from FreeBSD (as of r286629) and are tweaked for NetBSD.
Proposed on tech-kern and tech-net.
|
Revision tags: nick-nhusb-base-20150921
|
#
1.74 |
|
06-Sep-2015 |
dholland |
More on PR 41200: headers that declare ioctls should include sys/ioccom.h. This covers (I think) all the MI headers outside of external/ (and dist/).
|
Revision tags: nick-nhusb-base-20150606
|
#
1.73 |
|
07-Apr-2015 |
roy |
Move in6if_do_dad() to if_do_dad() as the routine is not INET6 specific and could equally be used by INET.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.72 |
|
26-Feb-2015 |
roy |
Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket.
Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions.
rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix().
This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations.
|
Revision tags: nick-nhusb-base
|
#
1.71 |
|
05-Sep-2014 |
matt |
branches: 1.71.2; Don't nest structure definitions.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.70 |
|
01-Jul-2014 |
rtr |
fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
#
1.69 |
|
05-Jun-2014 |
rmind |
- Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.68 |
|
13-Jan-2014 |
roy |
branches: 1.68.2; Remove the now un-used function in6ifa_ifplocaladdr.
|
#
1.67 |
|
02-Jan-2014 |
pooka |
Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.66 |
|
11-Oct-2012 |
christos |
branches: 1.66.2; PR/47058: Antti Kantee: If the ipv6 flow code modifies the mbuf, pass the change up to the caller.
|
#
1.65 |
|
23-Jun-2012 |
christos |
branches: 1.65.2; 4 new sysctls to avoid ipv6 DoS attacks from OpenBSD
|
Revision tags: netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 rmind-uvmplock-base yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base mjf-devfs2-base
|
#
1.64 |
|
15-Jan-2009 |
christos |
branches: 1.64.14; 1.64.20; 1.64.24; mention that you'll need to update compat if you change the size of in6_ifreq.
|
#
1.63 |
|
15-Jan-2009 |
christos |
Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out.
|
#
1.62 |
|
15-Jan-2009 |
christos |
- switch the lifetime struct to time_t and provide compatibility for the old ioctl.
|
#
1.61 |
|
14-Jan-2009 |
christos |
Change back time_t in the lifetime struct to int32_t's for binary compatibily. Since this is just the number of seconds for lifetime of the address, it is not an issue.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base
|
#
1.60 |
|
20-Aug-2008 |
matt |
branches: 1.60.2; Make the sysctl routines take out softnet_lock before dealing with any data structures.
Change inet6ctlerrmap and zeroin6_addr to const.
|
#
1.59 |
|
31-Jul-2008 |
matt |
Generalize previous fix so that both NS and NA packets are checked.
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base
|
#
1.58 |
|
15-Apr-2008 |
thorpej |
branches: 1.58.4; 1.58.6; 1.58.10; Make ip6 and icmp6 stats per-cpu.
|
#
1.57 |
|
08-Apr-2008 |
thorpej |
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 tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-nbase mjf-devfs-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base reinoud-bufcleanup-base
|
#
1.56 |
|
05-Dec-2007 |
dyoung |
branches: 1.56.8; 1.56.12; Use IFADDR_FOREACH().
|
Revision tags: vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base
|
#
1.55 |
|
17-Oct-2007 |
jld |
branches: 1.55.4; 1.55.6; If callout_t is to be used, then <sys/callout.h> should be included. Fixes the build of ifconfig(8), which failed otherwise.
|
#
1.54 |
|
16-Oct-2007 |
joerg |
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 tags: yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.53 |
|
11-Sep-2007 |
gdt |
branches: 1.53.2; Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
|
Revision tags: nick-csl-alignment-base5 matt-mips64-base
|
#
1.52 |
|
19-Jul-2007 |
dyoung |
branches: 1.52.4; 1.52.6; 1.52.8; 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 tags: nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.51 |
|
07-Mar-2007 |
liamjfoy |
branches: 1.51.2; 1.51.10; Add IPv6 Fast Forward - the IPv4 counterpart:
If ip6_forward successfully forwards a packet, a cache, in this case a ip6flow struct entry, will be created. ether_input and friends will then be able to call ip6flow_fastforward with the packet which will then be passed to if_output (unless an issue is found - in that case the packet is passed back to ip6_input).
ok matt@ christos@ dyoung@ and joerg@
|
#
1.50 |
|
04-Mar-2007 |
christos |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.49 |
|
17-Feb-2007 |
dyoung |
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 tags: post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base
|
#
1.48 |
|
02-Dec-2006 |
dyoung |
branches: 1.48.2; 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 tags: wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
|
#
1.47 |
|
20-Nov-2006 |
dyoung |
branches: 1.47.2; 1.47.8; Use TAILQ_FOREACH().
|
Revision tags: yamt-splraiseipl-base2
|
#
1.46 |
|
17-Oct-2006 |
christos |
use portable bitfields.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.45 |
|
23-Jul-2006 |
ad |
branches: 1.45.4; 1.45.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base
|
#
1.44 |
|
18-May-2006 |
liamjfoy |
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base
|
#
1.43 |
|
05-Mar-2006 |
rpaulo |
branches: 1.43.4; 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 tags: yamt-pdpolicy-base
|
#
1.42 |
|
03-Mar-2006 |
rpaulo |
branches: 1.42.2; Fix typos in comments.
From: the KAME project via SUZUKI Shinsuke.
|
Revision tags: yamt-uio_vmspace-base5
|
#
1.41 |
|
21-Jan-2006 |
rpaulo |
branches: 1.41.2; 1.41.4; 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 tags: ktrace-lwp-base
|
#
1.40 |
|
10-Dec-2005 |
elad |
branches: 1.40.2; Multiple inclusion protection, as suggested by christos@ on tech-kern@ few days ago.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.39 |
|
29-May-2005 |
christos |
branches: 1.39.2; - avoid shadowed variables - sprinkle const.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE 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 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 kent-audio2-base
|
#
1.38 |
|
01-Feb-2005 |
drochner |
branches: 1.38.4; 1.38.6; 1.38.8; remove the unused in6_ifindex2scopeid() if at all, it works with site-local addresses whose fate is uncertain to say the least
|
Revision tags: yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.37 |
|
16-Jun-2004 |
itojun |
branches: 1.37.4; 1.37.6; insufficient paren in macro def. Patrick Latifi
|
Revision tags: netbsd-2-0-3-RELEASE 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-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-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-base
|
#
1.36 |
|
15-Oct-2003 |
itojun |
define struct prf_ra outside of in6_prflags, to be c++ friendly. sync w/kame
|
#
1.35 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.34 |
|
01-Feb-2003 |
thorpej |
branches: 1.34.2; Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.33 |
|
02-Nov-2002 |
perry |
/*CONTCOND*/ while (0)'ed macros
|
Revision tags: kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
|
#
1.32 |
|
08-Jun-2002 |
itojun |
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.
|
#
1.31 |
|
08-Jun-2002 |
itojun |
in6_len2mask is a duplicate of in6_prefixlen2mask. unify. sync w/kame
|
#
1.30 |
|
07-Jun-2002 |
fvdl |
Fix mistakes in previous.
|
#
1.29 |
|
07-Jun-2002 |
itojun |
style
|
#
1.28 |
|
07-Jun-2002 |
itojun |
consistency
|
#
1.27 |
|
29-May-2002 |
itojun |
attach nd_ifinfo structure into if_afdata. split IPv6 link MTU (advertised by RA) from real link MTU. sync with kame
|
#
1.26 |
|
29-May-2002 |
itojun |
move per-interface ip6/icmp6 stat to ifnet->if_afdata. sync w/kame
|
#
1.25 |
|
23-May-2002 |
itojun |
simplify conditions to do DAD. sync w/kame
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.24 |
|
21-Dec-2001 |
itojun |
branches: 1.24.8; whitespace/costmetic sync w/kame
|
#
1.23 |
|
20-Dec-2001 |
itojun |
centralize multicast group management (in6_join/leavegroup). have a flag for ip6_output() to fragment to minimum MTU. sync with kame
|
#
1.22 |
|
18-Dec-2001 |
itojun |
reduce white space/cosmetic diffs w/kame.
|
Revision tags: thorpej-mips-cache-base
|
#
1.21 |
|
18-Oct-2001 |
itojun |
reduce diffs with kame (mostly cosmetic). move IPV6_CHECKSUM processing to sys/netinet6/raw_ip6.c. constify a couple of places.
|
#
1.20 |
|
16-Oct-2001 |
itojun |
more whitespace/comment sync with kame
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
|
#
1.19 |
|
18-Jul-2001 |
itojun |
do not malloc() during interrupt context for IPv6 multicast kludge table. malloc() during interface initialization. sync with kame
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.18 |
|
10-Feb-2001 |
itojun |
branches: 1.18.2; 1.18.4; 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.
|
#
1.17 |
|
08-Feb-2001 |
itojun |
amove in6_{embed,recover}scope prototypes to in6_var.h (kernel only). add in6_clearscope. sync with kame
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
16-Apr-2000 |
itojun |
perform neighbor unreachability detection on p2p links (spec requires it for bidir p2p links). improve -i in ndp(8) to allow tweaking per-interface ND flag on. fix ndp(8) infinite loop on certain routing table setup.
|
#
1.15 |
|
16-Apr-2000 |
itojun |
better sync with latest kame (cosmetic only).
|
#
1.14 |
|
24-Mar-2000 |
itojun |
move ia6->ia6_dad_ch to dp->dad_timer_ch, to ease KAME code sharing. now in6_var.h does not need to pull sys/callout.h in.
|
#
1.13 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.12 |
|
26-Feb-2000 |
itojun |
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.
|
#
1.11 |
|
25-Feb-2000 |
itojun |
on SIOCS*_IN6, validate sockaddrs so that we never configure non-AF_INET6 addresses. (in_control has the same problem - I'll need to check it as well)
obsolete the following two ioctls, they do not fit well against IPv6 addressing model. (the kernel support them for some period of time, we'll remove them in the near future) SIOCSIFDSTADDR_IN6 SIOCSIFNETMASK_IN6
|
Revision tags: chs-ubc2-newbase
|
#
1.10 |
|
04-Feb-2000 |
itojun |
avoid calling in6_control(SIOCDIFADDR_IN6) from interrupt context. it is not supposed to work. logging fix: add "\n" to some of log() in in6_prefix.c.
improve in6_ifdetach(). now almost all structure depend on ifnet will be cleared up. possible loose ends: - cached route_in6 in static varaiables needs to be cleared as well - there are ifaddr manipulation without reference counting, which should be fixed we still see panics after card removal, though... not sure what is left.
(sync with kame)
|
#
1.9 |
|
02-Feb-2000 |
thorpej |
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.
|
#
1.8 |
|
02-Feb-2000 |
itojun |
implement in6_purgemkludge(). in6_ifdetach() calls it to avoid dangling kludge entries. the situation would occur if you take the following steps: - join multicast groups (default ones like linklocal all-node is fine) - remove all IPv6 addresses manually - remove pcmcia card
to thorpej: pls call in6_ifdetach() when PRU_PURGEIF is raised (just before removing ifnet). it should do the right thing (unable to perform real test though)
|
#
1.7 |
|
01-Feb-2000 |
thorpej |
First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
#
1.6 |
|
06-Jan-2000 |
itojun |
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 tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.5 |
|
13-Dec-1999 |
itojun |
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 tags: comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.4 |
|
22-Jul-1999 |
itojun |
branches: 1.4.2; 1.4.8; change unnecessary u_long/long into u_int32_t or something relevant. more fixes should follow.
|
#
1.3 |
|
03-Jul-1999 |
thorpej |
RCS ID police.
|
#
1.2 |
|
01-Jul-1999 |
itojun |
branches: 1.2.2; 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.
|
#
1.1 |
|
28-Jun-1999 |
itojun |
branches: 1.1.2; file in6_var.h was initially added on branch kame.
|