summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/nd6.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* The return value of nd6_cache_lladdr() is never used so make it a void.mpi2015-08-311-3/+2
| | | | Fewer "struct rtentry" left in the wild!
* nd6_prefix_add() is no longer used and die.mpi2015-08-241-3/+1
|
* Start moving away from the global prefix list by limiting its usage tompi2015-08-241-2/+2
| | | | | | | | | AUTOCONF'd addresses. This prevent the kernel from removing connected (/64) routes as soon as it configures an AUTOCONF'd address based on a RA. Tested by sebastia@, ok sthen@
* Rework the code to decide when to perform DAD to no longer rely on thempi2015-08-241-2/+2
| | | | | | | | | IN6_IFF_NODAD pseudo-flag not being set. This was just a flag for spaghetti code that should not exist in the first place. Tested by sebastia@, ok sthen@
* Call rtfree(9) when we no longer need the route entry rather thanmpi2015-08-181-3/+1
| | | | | | | | | | decrementing rt_refcnt just after rtrequest1(9). While here reduce the differences with rt_ifa_add(9). There's still an ambiguity about rtrequest1(9)'s return value, but bluhm@ will address that in a different diff. Discussed with and ok bluhm@
* Merge two identical chunks to add new prefixes to the global datampi2015-07-181-1/+4
| | | | | | structures into a function. ok florian@
* Properly layer Router Solicitation code.mpi2015-07-161-11/+6
| | | | Tweak and ok florian@
* Remove unused arguments and the associated code from nd6_nud_hint().mpi2015-07-091-2/+2
| | | | ok claudio@
* Rework the handling of interfaces and IPv6 addresses for local delivery.mpi2014-11-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | - Unicast packets sent to any local address will have their interface set to loobpack. - In order to differentiate traffic from interfaces having identical link-local addresses, provide the scoped addresses to pf(4). - Update the icmp6 state lookup logic to match scoped MLL addresses. - Remove a shortcut in ip6_input() that bypasses pf and always look for an RTF_LOCAL route. Packets sent to multicast addresses still retain their original interface due to the fact that local multicast packet delivering does not use if_output. This makes ping6 to link-local addresses work even with pf enabled and "set skip" on loopbacks, reported by Pieter Verberne. Debugged, analysed and tested with mikeb@. ok mikeb@, henning@, sthen@
* Do not pass an ifa pointer when we already have a DAD descriptor.mpi2014-11-101-2/+1
| | | | Tweaks and ok florian@
* Move sending of router solicitations to the kernel; receiving andflorian2014-08-251-1/+13
| | | | | | | | | | | | | | | processing of router advertisements was already in the kernel. With this rtsol{,d}(8) is no longer necessary. The kernel starts sending solicitations with # ifconfig $IF inet6 autoconf or inet6 autoconf in /etc/hostname.$IF. input stsp@ much help & OK mpi@ tweaks & OK bluhm@
* move IPv6 prefix adding from workq to taskq; as a happy benefit, weblambert2014-07-111-1/+5
| | | | | | | can delete 2 dozen or so lines that check to see if we've queued up a prefix addition multiple times. ok stsp@
* Kill the {nd6_,}useloopback buttons, using the loopback interface formpi2014-05-071-2/+1
| | | | | | local traffic is not optional. ok mikeb@, stsp@, jca@
* Propagate an rdomain number to the nd6_lookup independently frommikeb2014-01-071-3/+3
| | | | | the ifp pointer which can be NULL. This prevents a crash reported by David Hill <dhill at mindcry ! org>. OK bluhm
* More _KERNEL namespace cleanup, just in case something out therederaadt2013-10-251-45/+33
| | | | includes this.
* Remove unused argument from *rtrequest()mpi2013-08-281-2/+2
| | | | ok krw@, mikeb@
* No one uses the obsolete IPv6 ioctls SIOCGDRLST_IN6, SIOCGPRLST_IN6,bluhm2013-08-261-65/+1
| | | | | | | OSIOCGIFINFO_IN6 anymore. Remove them together with the structs in6_drlist, in6_oprlist, in6_prlist, in6_ondireq and the kernel implementation. OK mikeb@ henning@
* To control the lifetime of IPv6 addresses, prefixes and defaultbluhm2013-08-111-64/+38
| | | | | | | | | | | | | | routers, the kernel and ndp use a bunch of expire fields. Before they were int or u_long, convert expire to time_t in all structs. Move vltime and pltime to u_int32_t everywhere. Sort struct fields by size. Struct inet6_ndpr_msghdr is not used at all, so remove it. Binary compatibility of rtsold and ndp break with this change as rtsold uses in6_drlist and ndp uses in6_defrouter and in6_prefix to interact with the kernel. OK mpi@
* Do not access queue fields directly, use FOREACH() macro instead.bluhm2013-07-011-4/+1
| | | | | No binary change. OK mikeb@ mpi@
* Remove unused code manipulating a default interface and its index,mpi2013-03-111-5/+1
| | | | | | | This is a leftover from the on-link assumption behavior removal, which has been deprecated by RFC4861 anyway. ok mikeb@, bluhm@, florian@
* typo in comment.sthen2012-02-141-2/+2
|
* fix typos in commentsstsp2011-04-031-2/+2
| | | | ok deraadt henning sthen thib (though thib says he can't spell)
* Simple implementation of RFC4941, "Privacy Extensions for Statelessstsp2010-04-061-1/+6
| | | | | | | | | Address Autoconfiguration in IPv6". For those among us who are paranoid about broadcasting their MAC address to the IPv6 internet. Man page help from jmc, testing by weerd, arc4random API hints from djm. ok deraadt, claudio
* From KAME, allow adjustable limits on NDP entries and discovered routes.mcbride2008-06-111-1/+2
| | | | ok mpf naddy
* unifdef -U__otherBSD__itojun2003-07-081-5/+1
|
* split ND6 cache timer management to per-entry. increased accuracy,itojun2003-06-271-7/+10
| | | | no O(N) loop. sync w/ kame. marc tested, daniel ok
* gcitojun2002-06-081-3/+1
|
* sync with latest KAME in6_ifaddr/prefix/default router manipulation.itojun2002-06-081-35/+75
| | | | | | | 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.
* cope with cases where maxmtu == 0 (shouldn't happen)itojun2002-06-071-2/+2
|
* be sure to use L3 MTU, not L2 MTU, when specified in spec (affects FDDI/ARCnet)itojun2002-06-051-3/+5
|
* improve nd6_setmtu(), to warn too-small MTU on SIOCSIFMTU. sync w/kameitojun2002-05-301-2/+2
|
* no need to supply obsolete field name "receivedra"itojun2002-05-291-2/+1
|
* attach nd_ifinfo structure to if_afdata.itojun2002-05-291-6/+42
| | | | | split IPv6 MTU (advertised by RA) from real link MTU. sync with kame
* First round of __P removal in sysmillert2002-03-141-51/+51
|
* compatability -> compatibility.fgsch2002-01-231-2/+2
|
* garbage-collect stale ND entries (default: 1 day).itojun2001-02-231-1/+2
| | | | RFC 2461 5.3. sync with kame.
* remove unnecessary state, ND6_LLINFO_WAITDELETE, from neighbor cacheitojun2001-02-231-3/+10
| | | | | | | state machine. no need for RTF_REJECT on neighbor cache entires, they are leftover from ARP code. sync with kame.
* when chasing nd6_llinfo chain, make sure we do not touch danglingitojun2001-02-081-2/+2
| | | | | pointer (due to RTM_DELETE during default router list management). from kame
* use timeout_xx() throughout sys/netinet6. sync with kame.itojun2001-02-081-2/+5
|
* by default, don't bark on inbound ND messages, as outsider may be able toitojun2001-02-071-2/+6
| | | | | | | | fill up /var with bogus packets. setting net.inet6.icmp6.nd6_debug will re-enable kernel messages on invalid ND packet and other occasions. improve icmp6 stats.
* pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2 (UCB copyrighted).itojun2001-01-191-6/+1
| | | | | | | | | | | | | | | | | | | have sys/net/route.c:rtrequest1(), which takes rt_addrinfo * as the argument. pass rt_addrinfo all the way down to rtrequest, and ifa->ifa_rtrequest. 3rd arg of ifa->ifa_rtrequest is now rt_addrinfo * instead of sockaddr * (almost noone is using it anyways). benefit: the follwoing command now works. previously we need two route(8) invocations, "add" then "change". # route add -inet6 default ::1 -ifp gif0 remove unsafe typecast in rtrequest(), from rtentry * to sockaddr *. it was introduced by 4.3BSD-reno and never corrected. XXX is eon_rtrequest() change correct regarding to 3rd arg? eon_rtrequest() and rtrequest() were incorrect since 4.3BSD-reno, so i do not have correct answer in the source code. someone with more clue about netiso-over-ip, please help.
* - more icmp6/ip6 stats.itojun2000-07-061-3/+5
| | | | | | | | | - protect IPv6 ND from being hosed (due to neighbor unreachability detection hint) by wrong tcp traffic. still not sure if there's real attack, but it is good to be cautious. - avoid bitfield for router renumbering header decl. - implement packet-per-sec limitation for icmp6 errors, turn interval limit off (it is not very useful due to unix timer resolution).
* never forward packet with link-local address.itojun2000-05-191-4/+4
| | | | | | experimental support for new loopback packet handling (with FAKE_LOOPBACK_IF, rcvif will be set to real outgoing interface, not the loopback, to honor scope) sync with kame.
* perform NUD on p2p link, only if the destination/gateway is real neighbor.itojun2000-05-151-3/+3
| | | | this removes temporary workaround (no NUD on p2p link). KAME PR 245.
* revisit in6_ifattach(). (1) make it more persistent about initializaing anitojun2000-04-171-4/+7
| | | | | | | interface (2) cleanup interface id selection. run NUD on p2p interface (required by spec for bidir p2p interface). add "ndp -i interface" (can tweak per-interface ND flag). (sync with more recent kame)
* bring in recent KAME changes (only important and stable ones, as usual).itojun2000-02-281-6/+26
| | | | | | | | | | | | | | | | | | - 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. - nuke xxCTL_VARS #define, they are for BSDI. - disable SIOCSIFDSTADDR_IN6/SIOCSIFNETMASK_IN6 ioctl, they do not fit IPv6 model where multiple address on interface is normal. (kernel side supports them for a while for backward compat, the support will be nuked shortly) - introduce "default outgoing interface" (for spec conformance in very rare case)
* more coverage of in6_ifdetach()'s cleanup process.itojun2000-02-041-1/+2
| | | | bug fix in SIOCGIFADDR_IN6 (point to point case).
* use arc4random() instead of random for two reasons.deraadt2000-01-081-2/+2
| | | | | | 1) on some architectures, random() should only be used by the scheduler (ie. statintr() because it is uniformly distributed 2) arc4random() is actually strong, random() is not at all
* bring in KAME IPv6 code, dated 19991208.itojun1999-12-081-0/+307
replaces NRL IPv6 layer. reuses NRL pcb layer. no IPsec-on-v6 support. see sys/netinet6/{TODO,IMPLEMENTATION} for more details. GENERIC configuration should work fine as before. GENERIC.v6 works fine as well, but you'll need KAME userland tools to play with IPv6 (will be bringed into soon).