summaryrefslogtreecommitdiff
path: root/sys/netinet/udp_var.h
Commit message (Collapse)AuthorAgeFilesLines
* Import rewrite of IPv4 socket multicast layer to support source-specificBruce M Simpson2007-06-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and protocol-independent host mode multicast. The code is written to accomodate IPv6, IGMPv3 and MLDv2 with only a little additional work. This change only pertains to FreeBSD's use as a multicast end-station and does not concern multicast routing; for an IGMPv3/MLDv2 router implementation, consider the XORP project. The work is based on Wilbert de Graaf's IGMPv3 code drop for FreeBSD 4.6, which is available at: http://www.kloosterhof.com/wilbert/igmpv3.html Summary * IPv4 multicast socket processing is now moved out of ip_output.c into a new module, in_mcast.c. * The in_mcast.c module implements the IPv4 legacy any-source API in terms of the protocol-independent source-specific API. * Source filters are lazy allocated as the common case does not use them. They are part of per inpcb state and are covered by the inpcb lock. * struct ip_mreqn is now supported to allow applications to specify multicast joins by interface index in the legacy IPv4 any-source API. * In UDP, an incoming multicast datagram only requires that the source port matches the 4-tuple if the socket was already bound by source port. An unbound socket SHOULD be able to receive multicasts sent from an ephemeral source port. * The UDP socket multicast filter mode defaults to exclusive, that is, sources present in the per-socket list will be blocked from delivery. * The RFC 3678 userland functions have been added to libc: setsourcefilter, getsourcefilter, setipv4sourcefilter, getipv4sourcefilter. * Definitions for IGMPv3 are merged but not yet used. * struct sockaddr_storage is now referenced from <netinet/in.h>. It is therefore defined there if not already declared in the same way as for the C99 types. * The RFC 1724 hack (specify 0.0.0.0/8 addresses to IP_MULTICAST_IF which are then interpreted as interface indexes) is now deprecated. * A patch for the Rhyolite.com routed in the FreeBSD base system is available in the -net archives. This only affects individuals running RIPv1 or RIPv2 via point-to-point and/or unnumbered interfaces. * Make IPv6 detach path similar to IPv4's in code flow; functionally same. * Bump __FreeBSD_version to 700048; see UPDATING. This work was financially supported by another FreeBSD committer. Obtained from: p4://bms_netdev Submitted by: Wilbert de Graaf (original work) Reviewed by: rwatson (locking), silence from fenner, net@ (but with encouragement) Notes: svn path=/head/; revision=170613
* Rename two identically named log_in_vain variables: tcp_input.c's staticRobert Watson2007-02-201-1/+1
| | | | | | | | | | log_in_vain to tcp_log_in_vain, and udp_usrreq's global log_in_vain to udp_log_in_vain. MFC after: 1 week Notes: svn path=/head/; revision=166842
* Gratuitous UDP restyling toward style(9) in 7.x.Robert Watson2007-02-201-30/+29
| | | | Notes: svn path=/head/; revision=166841
* /* -> /*- for license, minor formatting changesWarner Losh2005-01-071-1/+1
| | | | Notes: svn path=/head/; revision=139823
* White space cleanup for netinet before branch:Robert Watson2004-08-161-1/+1
| | | | | | | | | | | | | | - Trailing tab/space cleanup - Remove spurious spaces between or before tabs This change avoids touching files that Andre likely has in his working set for PFIL hooks changes for IPFW/DUMMYNET. Approved by: re (scottl) Submitted by: Xin LI <delphij@frontfree.net> Notes: svn path=/head/; revision=133874
* Remove advertising clause from University of California Regent'sWarner Losh2004-04-071-4/+0
| | | | | | | | | | license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson. Approved by: core, peter, alc, rwatson Notes: svn path=/head/; revision=128019
* Notify functions can destroy the pcb, so they have to return anJeffrey Hsu2002-06-141-1/+2
| | | | | | | | | | | indication of whether this happenned so the calling function knows whether or not to unlock the pcb. Submitted by: Jennifer Yang (yangjihui@yahoo.com) Bug reported by: Sid Carter (sidcarter@symonds.net) Notes: svn path=/head/; revision=98211
* Remove __P.Alfred Perlstein2002-03-191-5/+5
| | | | Notes: svn path=/head/; revision=92723
* Patches from Keiichi SHIMA <keiichi@iij.ad.jp>Julian Elischer2001-09-031-1/+1
| | | | | | | | | to make ip use the standard protosw structure again. Obtained from: Well, KAME I guess. Notes: svn path=/head/; revision=82884
* remove unused data structure definition, and corresponding macro into*()Luigi Rizzo2001-02-181-10/+0
| | | | Notes: svn path=/head/; revision=72631
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"Peter Wemm1999-12-291-1/+1
| | | | | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come. Notes: svn path=/head/; revision=55205
* udp IPv6 support, IPv6/IPv4 tunneling support in kernel,Yoshinobu Inoue1999-12-071-1/+1
| | | | | | | | | | | | | packet divert at kernel for IPv6/IPv4 translater daemon This includes queue related patch submitted by jburkhol@home.com. Submitted by: queue related patch from jburkhol@home.com Reviewed by: freebsd-arch, cvs-committers Obtained from: KAME project Notes: svn path=/head/; revision=54263
* KAME related header files additions and merges.Yoshinobu Inoue1999-11-051-3/+14
| | | | | | | | | | (only those which don't affect c source files so much) Reviewed by: cvs-committers Obtained from: KAME project Notes: svn path=/head/; revision=52904
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* This is the much-awaited cleaned up version of IPFW [ug]id support.Brian Feldman1999-06-191-1/+2
| | | | | | | All relevant changes have been made (including ipfw.8). Notes: svn path=/head/; revision=48023
* * Change sysctl from using linker_set to construct its tree using SLISTs.Doug Rabson1999-02-161-1/+3
| | | | | | | | | | | | | This makes it possible to change the sysctl tree at runtime. * Change KLD to find and register any sysctl nodes contained in the loaded file and to unregister them when the file is unloaded. Reviewed by: Archie Cobbs <archie@whistle.com>, Peter Wemm <peter@netplex.com.au> (well they looked at it anyway) Notes: svn path=/head/; revision=44078
* Remove stale references to ih_next and ih_prev.Doug Rabson1998-11-171-3/+1
| | | | | | | Pointed out by: Roman V. Palagin <romanp@wuppy.rcs.ru> Notes: svn path=/head/; revision=41208
* Convert socket structures to be type-stable and add a version number.Garrett Wollman1998-05-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | Define a parameter which indicates the maximum number of sockets in a system, and use this to size the zone allocators used for sockets and for certain PCBs. Convert PF_LOCAL PCB structures to be type-stable and add a version number. Define an external format for infomation about socket structures and use it in several places. Define a mechanism to get all PF_LOCAL and PF_INET PCB lists through sysctl(3) without blocking network interrupts for an unreasonable length of time. This probably still has some bugs and/or race conditions, but it seems to work well enough on my machines. It is now possible for `netstat' to get almost all of its information via the sysctl(3) interface rather than reading kmem (changes to follow). Notes: svn path=/head/; revision=36079
* Some staticized variables were still declared to be extern.Bruce Evans1997-09-071-4/+1
| | | | Notes: svn path=/head/; revision=29179
* Fix all areas of the system (or at least all those in LINT) to avoid storingGarrett Wollman1997-08-161-1/+12
| | | | | | | | | | | socket addresses in mbufs. (Socket buffers are the one exception.) A number of kernel APIs needed to get fixed in order to make this happen. Also, fix three protocol families which kept PCBs in mbufs to not malloc them instead. Delete some old compatibility cruft while we're at it, and add some new routines in the in_cksum family. Notes: svn path=/head/; revision=28270
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notPeter Wemm1997-02-221-1/+1
| | | | | | | ready for it yet. Notes: svn path=/head/; revision=22975
* Fix the mechanism for choosing wehether to save the slow-start thresholdGarrett Wollman1997-02-141-2/+1
| | | | | | | | | | | | | in the route. This allows us to remove the unconditional setting of the pipesize in the route, which should mean that SO_SNDBUF and SO_RCVBUF should actually work again. While we're at it: - Convert udp_usrreq from `mondo switch statement from Hell' to new-style. - Delete old TCP mondo switch statement from Hell, which had previously been diked out. Notes: svn path=/head/; revision=22719
* Make the long-awaited change from $Id$ to $FreeBSD$Jordan K. Hubbard1997-01-141-1/+1
| | | | | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise. Notes: svn path=/head/; revision=21673
* Instrument UDP PCB hashing to see how often the hash lookup is effectiveGarrett Wollman1996-06-051-1/+2
| | | | | | | for incoming packets. Notes: svn path=/head/; revision=16143
* Uniformized pr_ctlinput protosw functions. The third arg is now `voidBruce Evans1995-12-161-2/+2
| | | | | | | | | | *' instead of caddr_t and it isn't optional (it never was). Most of the netipx (and netns) pr_ctlinput functions abuse the second arg instead of using the third arg but fixing this is beyond the scope of this round of changes. Notes: svn path=/head/; revision=12881
* Fixed recent staticizations. Some protypes for static functions wereBruce Evans1995-11-161-3/+1
| | | | | | | left in headers and not staticized. Notes: svn path=/head/; revision=12325
* New style sysctl & staticize alot of stuff.Poul-Henning Kamp1995-11-141-2/+1
| | | | Notes: svn path=/head/; revision=12296
* Implemented PCB hashing. Includes new functions in_pcbinshash, in_pcbrehash,David Greenman1995-04-091-2/+3
| | | | | | | and in_pcblookuphash. Notes: svn path=/head/; revision=7684
* Add lots of useful MIB variables and a few not-so-useful ones forGarrett Wollman1995-02-161-4/+10
| | | | | | | completeness. Notes: svn path=/head/; revision=6472
* Made idempotent.Paul Richards1994-08-211-1/+6
| | | | | | | Submitted by: Paul Notes: svn path=/head/; revision=2169
* Added $Id$David Greenman1994-08-021-0/+1
| | | | Notes: svn path=/head/; revision=1817
* BSD 4.4 Lite Kernel SourcesRodney W. Grimes1994-05-241-0/+92
Notes: svn path=/head/; revision=1541