summaryrefslogtreecommitdiff
path: root/sys/netinet6
AgeCommit message (Collapse)Author
2014-02-17The device driver ioctl code can sleep, so calling it from a timeout is *not*Mark Kettenis
a good idea. Instead hand the work off expiring interface addresses off to a taskq. Fixes the "p->p_wchan == NULL" panics seen with usb ethernet adapters. tested by matthieu@ ok mpi@, stsp@
2014-02-13Another chunk of IPv6 dead code bites the dust.Martin Pieuchot
ok bluhm@, mikeb@
2014-02-12Kill a never defined old compatibility goo from 12 years ago.Martin Pieuchot
ok mikeb@, bluhm@
2014-02-05Kill some dead code.Martin Pieuchot
ok bluhm@
2014-01-29move the allocation of the mbuf copy to use for sending icmp errorsDavid Gwynne
above the reroute label that pf uses after it does dest addr rewriting on outgoing packets. previously rerouting caused an extra copy to be allocated, which caused the first copy to be leaked. this has been bugging me for over half a year probably. after i got some rudimental mbuf tracing in place it took me and alex wilson most of a work day to audit the stack. ok claudio@ on an earlier diff ok mpi@, who made my first diff better and was gracious enough to let me commit his because of the pain id been through finding this leak. ok pelikan@
2014-01-24Instead of calculating the ICMPv6 checksum here, just set the flag thatChristian Weisgerber
is needed and the lower parts of the stack will take care of it. ok henning@, lteo@
2014-01-23since the cksum rewrite the counters for hardware checksummed packetsHenning Brauer
are are lie, since the software engine emulates hardware offloading and that is later indistinguishable. so kill the hw cksummed counters. introduce software checksummed packet counters instead. tcp/udp handles ip & ipvshit, ip cksum covered, 6 has no ip layer cksum. as before we still have a miscounting bug for inbound with pf on, to be fixed in the next step. found by, prodding & ok naddy
2014-01-23Merge two chunks of code to inform listeners of a route change into aMartin Pieuchot
new function, rt_sendmsg(). While here, in the v6 cases, pass the same rtableid that was used for the request instead of dereferencing a pointer after checking for it to be NULL. ok krw@ on a previous version, ok bluhm@
2014-01-23put the in{,6}_delayed_cksum() and in{,6}_proto_cksum_out() prototypesChristian Weisgerber
into consistent locations; ok henning@
2014-01-22Split the checksum calculation for IPv6 like for IPv4:Christian Weisgerber
Always calculate the pseudo-header checksum. Complete the checksum if hardware offload is not available. Parts originally from NetBSD; ok henning@
2014-01-22There's no reason to pass a netmask argument when doing a RTF_HOSTMartin Pieuchot
request, so kill it along with the associated global variable. ok claudio@
2014-01-21Do not clean the multicast records of an interface when it is destroyedMartin Pieuchot
(unplugged). Even if it makes no sense to keep them around if the interface is no more, we cannot safely remove them since pcb multicast options might keep a pointer to them. Fixes a user after free introduced by the multicast address linking rewrite and reported by Alexey Suslikov, thanks! ok claudio@
2014-01-15Remove assigned but never read value.Martin Pieuchot
ok stsp@
2014-01-13Call all local valiables of type struct in6_ifaddr "ia6". This isAlexander Bluhm
consistent with struct ifaddr "ifa" and struct in_ifaddr "ia". OK mpi@
2014-01-10replace the rest of the obsolete radix macrosTed Unangst
sprinkle 0 -> NULL where obvious ok millert mpi
2014-01-09replace Bcopy macro with memmove and memcpy. ok mpiTed Unangst
2014-01-08Name the local variables for struct ifaddr consistently "ifa".Alexander Bluhm
OK mikeb@
2014-01-07Propagate an rdomain number to the nd6_lookup independently fromMike Belopuhov
the ifp pointer which can be NULL. This prevents a crash reported by David Hill <dhill at mindcry ! org>. OK bluhm
2014-01-07Some follow-up fixes for IFID collision handling in IPv6CP.Stefan Sperling
Really change the link-local address in the unlikely event of an IFID collision, instead of going into an infinite conf-nak loop with the peer. To make the netinet6 code use the IPv6CP IFID in a new link-local address, in6_ifattach_linklocal() must accept a provided IFID. Replace the unused 'altifp' parameter with a new 'ifid' parameter for this purpose. Always use the latest suggested address in IPv6CP replies, even if the task to update the interface's address hasn't run yet. Also, clear the ifindex (KAME hack) in addresses sent during IPv6CP. ok mpi
2014-01-06Make in6_ifdetach() remove the ff01::1 route for the detaching interface, too.Stefan Sperling
The route used to linger after an interface detached from IPv6. ok mikeb
2013-12-20Switch inpt_queue from CIRCLEQ to TAILQ. Thus ending use of CIRCLEQKenneth R Westerback
in the base. Ports fixes to follow shortly for the two ports (gkrellm and net-snmp) affected. ok zhuk@ millert@
2013-11-28Change the way protocol multicast addresses are linked to an interface.Martin Pieuchot
Instead of linking multicast records to the first configured address of the corresponding protocol, making this address and its position in the global list special, add them to a new list directly linked to the interface descriptor. This new multicast address list is similar to the address list, all its elements contain a protocol agnostic part. This design allows us to be able to join a multicast group without necessarily having a configured address. That means IPv6 multicast kludges are no longer needed. Another benefit is to be able to add and remove an IP address from an interface without worrying about multicast records. That means that the global IPv4 list is no longer needed since the first configured address of an interface is no longer special. This new list might also be extended in the future to contain the link-layer addresses used to configure hardware filters. Tested by sthen@ and weerd@, ok mikeb@
2013-11-22Remove unused proc argument in in6_control().Martin Pieuchot
ok henning@, mikeb@
2013-11-19Remove some FDDI/ATM leftovers.Martin Pieuchot
ok mikeb@, henning@, deraadt@, brad@, miod@
2013-11-15Rename the struct pf_divert variable in divert_packet() andLawrence Teo
divert6_packet() from "pd" to "divert" to match the rest of the source. I think "pd" was not a good name for a struct pf_divert because "pd" usually refers to a pf_pdesc. No object file change. OK benno@ bluhm@ henning@
2013-11-15After discussion with deraadt@ and Fernando Gont, it seems that theAlexander Bluhm
stack should still scan for IPv6 type 0 routing headers. There are OpenBSD routers running without pf and there are plenty of legacy implementations supporting RH0. Bring back the function ip6_check_rh0hdr() that I removed a month ago. As an improvement to the prevoius solution, only scan the header chain in ip6_input() if the packet has not been inspected by pf. Both implementations drop packets with RH0 anywhere in the extension header chain. OK mikeb@ henning@
2013-11-14Clean up tabs and a backslash which seemed to have sneeked in in r1.29.Patrick Wildt
"clean that little thingy up" deraadt@
2013-11-13In in6_update_ifa(), don't set the TENTATIVE flag on an IPv6 address thatStefan Sperling
is marked as NODAD. Since we're not gonna do duplicate address detection for this address, the TENTATIVE flag won't get cleared, rendering the address unusable. The existing logic only checked whether DAD was enabled for the interface, but DAD can be configured on a per-address basis. ok sthen@ as part of a larger diff
2013-11-11Replace most of our formating functions to convert IPv4/6 addresses fromMartin Pieuchot
network to presentation format to inet_ntop(). The few remaining functions will be soon converted. ok mikeb@, deraadt@ and moral support from henning@
2013-10-29remove left over bits of omrt6msg, and cleanup the yuckyTheo de Raadt
clone of fd_set for interfaces tested in ports tree build by naddy
2013-10-28kill kame version symbols and sysctlTheo de Raadt
ports tree grep run by sthen
2013-10-28tedu FDDI support and the 3 flavors the driver for DEC devices, evenMartin Pieuchot
miod@ cannot find two boards using the same media. With precious punctuation review from guenther@, thanks! ok deraadt@, henning@
2013-10-27delete UPCALL_TIMING debug code from a the dark agesTheo de Raadt
2013-10-25More _KERNEL namespace cleanup, just in case something out thereTheo de Raadt
includes this.
2013-10-25prettier #ifdef _KERNEL, more like other filesTheo de Raadt
(basically, if they are easier to compare visually for namespace issues, they they are easier to compare .... period!)
2013-10-24place _KERNEL block at endTheo de Raadt
2013-10-24Remove the number of in6_var.h inclusions by moving some functions andMartin Pieuchot
global variables to in6.h. ok deraadt@
2013-10-24Significant namespace cleanup of netinet6 symbols.Theo de Raadt
One worrying bit is in icmp6.h where some htols() and htonl() are added, which may affect compatibility down the line. This component can be reverted if issues show up. Ports tree greps indicate no issue. ok claudio mpi etc
2013-10-23Back when some NRL code was merged into KAME to create the *BSD IPV6Theo de Raadt
stack (factoid: by a bunch of people in my living room), some compatibility #define's were created to shim incompatible inpcb access methods. There was an understanding they would eventually be removed. Since they are error prone, and 1999 is a long time ago, now they die. ok mikeb claudio mpi
2013-10-22Compute the checksum in in_proto_cksum_out, just set the flag inChristian Weisgerber
the UDP stack. ok henning@
2013-10-21Remove comment regarding BSDI.Theo de Raadt
2013-10-21pretty up a disgusting chunkTheo de Raadt
2013-10-21Janitoring. No significant binary change.Theo de Raadt
2013-10-21no more #ifdef KERNELTheo de Raadt
2013-10-21There are gasps of shock! Add a pmtu delay sysctl BUTTON for netinet6,Theo de Raadt
making the code the same as netinet4 along the way. ok bluhm phessler
2013-10-21remove GET_TIME() wrapperTheo de Raadt
2013-10-21remove dangerous #ifdef BYTE_ORDERTheo de Raadt
2013-10-21only #ifdef _KERNEL, not #ifdef KERNELTheo de Raadt
2013-10-21Enable IPv6 routing domain supportPeter Hessler
Started by claudio@ for IPv4, lots of heavy work by sperreault@ My part started at s2k11, continued at n2k12, g2k12, c2k12 and n2k13. Lots of help and hints from claudio and bluhm OK claudio@, bluhm@
2013-10-21Sprinkle a lot more IPv6 routing domains support in the kernel.Peter Hessler
Mostly mechanical, setting and passing the rdomain and rtable correctly. Not yet enabled. Lots of help and hints from claudio and bluhm OK claudio@, bluhm@