#
ec002fee |
| 20-Mar-2007 |
Bruce M Simpson <bms@FreeBSD.org> |
Implement reference counting for ifmultiaddr, in_multi, and in6_multi structures. Detect when ifnet instances are detached from the network stack and perform appropriate cleanup to prevent memory lea
Implement reference counting for ifmultiaddr, in_multi, and in6_multi structures. Detect when ifnet instances are detached from the network stack and perform appropriate cleanup to prevent memory leaks.
This has been implemented in such a way as to be backwards ABI compatible. Kernel consumers are changed to use if_delmulti_ifma(); in_delmulti() is unable to detect interface removal by design, as it performs searches on structures which are removed with the interface.
With this architectural change, the panics FreeBSD users have experienced with carp and pfsync should be resolved.
Obtained from: p4 branch bms_netdev Reviewed by: andre Sponsored by: Garance A Drosehn Idea from: NetBSD MFC after: 1 month
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
d9668414 |
| 28-Sep-2006 |
Bruce M Simpson <bms@FreeBSD.org> |
The IPv4 code should clean up multicast group state when an interface goes away. Without this change, it leaks in_multi (and often ether_multi state) if many clonable interfaces are created and destr
The IPv4 code should clean up multicast group state when an interface goes away. Without this change, it leaks in_multi (and often ether_multi state) if many clonable interfaces are created and destroyed in quick succession.
The concept of this fix is borrowed from KAME. Detailed information about this behaviour, as well as test cases, are available in the PR.
PR: kern/78227 MFC after: 1 week
show more ...
|
#
e2fd806b |
| 25-Sep-2006 |
Bruce M Simpson <bms@FreeBSD.org> |
Spleling
Submitted by: pjd
|
#
07ea6709 |
| 25-Sep-2006 |
Bruce M Simpson <bms@FreeBSD.org> |
Account for output IP datagrams on the ifaddr where they originated from, *not* the first ifaddr on the ifp. This is similar to what NetBSD does.
PR: kern/72936 Submitted by: alfred Reviewed by: a
Account for output IP datagrams on the ifaddr where they originated from, *not* the first ifaddr on the ifp. This is similar to what NetBSD does.
PR: kern/72936 Submitted by: alfred Reviewed by: andre
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
5d691e6d |
| 18-Jan-2006 |
Andre Oppermann <andre@FreeBSD.org> |
Return mbuf pointer or NULL from ip_fastforward() as the mbuf pointer may have changed by m_pullup() during fastforward processing.
While this is a bug it is actually never triggered in real world s
Return mbuf pointer or NULL from ip_fastforward() as the mbuf pointer may have changed by m_pullup() during fastforward processing.
While this is a bug it is actually never triggered in real world situations and it is not remotely exploitable.
Found by: Coverity Prevent(tm) Coverity ID: CID780 Sponsored by: TCP/IP Optimization Fundraise 2005
show more ...
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
dd5a318b |
| 03-Aug-2005 |
Robert Watson <rwatson@FreeBSD.org> |
Introduce in_multi_mtx, which will protect IPv4-layer multicast address lists, as well as accessor macros. For now, this is a recursive mutex due code sequences where IPv4 multicast calls into IGMP
Introduce in_multi_mtx, which will protect IPv4-layer multicast address lists, as well as accessor macros. For now, this is a recursive mutex due code sequences where IPv4 multicast calls into IGMP calls into ip_output(), which then tests for a multicast forwarding case.
For support macros in in_var.h to check multicast address lists, assert that in_multi_mtx is held.
Acquire in_multi_mtx around iteration over the IPv4 multicast address lists, such as in ip_input() and ip_output().
Acquire in_multi_mtx when manipulating the IPv4 layer multicast addresses, as well as over the manipulation of ifnet multicast address lists in order to keep the two layers in sync.
Lock down accesses to IPv4 multicast addresses in IGMP, or assert the lock when performing IGMP join/leave events.
Eliminate spl's associated with IPv4 multicast addresses, portions of IGMP that weren't previously expunged by IGMP locking.
Add in_multi_mtx, igmp_mtx, and if_addr_mtx lock order to hard-coded lock order in WITNESS, in that order.
Problem reported by: Ed Maste <emaste at phaedrus dot sandvine dot ca> MFC after: 10 days
show more ...
|
#
bccb4101 |
| 03-Aug-2005 |
Robert Watson <rwatson@FreeBSD.org> |
Modify network protocol consumers of the ifnet multicast address lists to lock if_addr_mtx.
Problem reported by: Ed Maste <emaste at phaedrus dot sandvine dot ca> MFC after: 1 week
|
Revision tags: release/5.4.0_cvs, release/5.4.0, release/4.11.0_cvs, release/4.11.0 |
|
#
c398230b |
| 07-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
969bb53e |
| 19-Oct-2004 |
Andre Oppermann <andre@FreeBSD.org> |
Properly declare the "net.inet" sysctl subtree.
|
#
a4f757cd |
| 16-Aug-2004 |
Robert Watson <rwatson@FreeBSD.org> |
White space cleanup for netinet before branch:
- Trailing tab/space cleanup - Remove spurious spaces between or before tabs
This change avoids touching files that Andre likely has in his working se
White space cleanup for netinet before branch:
- 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>
show more ...
|
Revision tags: release/4.10.0_cvs, release/4.10.0 |
|
#
f36cfd49 |
| 07-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson.
Approved by: core, peter, alc, rwatson
|
#
846840ba |
| 10-Mar-2004 |
Robert Watson <rwatson@FreeBSD.org> |
Scrub unused variable zeroin_addr.
|
Revision tags: release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0 |
|
#
9188b4a1 |
| 14-Nov-2003 |
Andre Oppermann <andre@FreeBSD.org> |
Introduce ip_fastforward and remove ip_flow.
Short description of ip_fastforward:
o adds full direct process-to-completion IPv4 forwarding code o handles ip fragmentation incl. hw support (ip_flo
Introduce ip_fastforward and remove ip_flow.
Short description of ip_fastforward:
o adds full direct process-to-completion IPv4 forwarding code o handles ip fragmentation incl. hw support (ip_flow did not) o sends icmp needfrag to source if DF is set (ip_flow did not) o supports ipfw and ipfilter (ip_flow did not) o supports divert, ipfw fwd and ipfilter nat (ip_flow did not) o returns anything it can't handle back to normal ip_input
Enable with sysctl -w net.inet.ip.fastforwarding=1
Reviewed by: sam (mentor)
show more ...
|
Revision tags: release/4.9.0_cvs, release/4.9.0 |
|
#
6c4b2ad3 |
| 20-Aug-2003 |
Robert Watson <rwatson@FreeBSD.org> |
Move from a custom-crafted singly-linked list to the SLIST_* macros from queue(3).
Improve vertical compactness by using a IGMP_PRINTF() macro rather than #ifdefing IGMP_DEBUG a large number of debu
Move from a custom-crafted singly-linked list to the SLIST_* macros from queue(3).
Improve vertical compactness by using a IGMP_PRINTF() macro rather than #ifdefing IGMP_DEBUG a large number of debugging printfs.
Reviewed by: mdodd (SLIST changes)
show more ...
|
Revision tags: release/5.1.0_cvs, release/5.1.0, release/4.8.0_cvs, release/4.8.0 |
|
#
1cafed39 |
| 05-Mar-2003 |
Jonathan Lemon <jlemon@FreeBSD.org> |
Update netisr handling; Each SWI now registers its queue, and all queue drain routines are done by swi_net, which allows for better queue control at some future point. Packets may also be directly d
Update netisr handling; Each SWI now registers its queue, and all queue drain routines are done by swi_net, which allows for better queue control at some future point. Packets may also be directly dispatched to a netisr instead of queued, this may be of interest at some installations, but currently defaults to off.
Reviewed by: hsu, silby, jayanth, sam Sponsored by: DARPA, NAI Labs
show more ...
|
Revision tags: release/5.0.0_cvs, release/5.0.0, release/4.7.0_cvs, release/4.6.2_cvs, release/4.6.2, release/4.6.1, release/4.6.0_cvs |
|
#
c1cd65ba |
| 24-Mar-2002 |
Bruce Evans <bde@FreeBSD.org> |
Fixed some style bugs in the removal of __P(()). Continuation lines were not outdented to preserve non-KNF lining up of code with parentheses. Switch to KNF formatting.
|
#
4d77a549 |
| 19-Mar-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove __P.
|
Revision tags: release/4.5.0_cvs, release/4.4.0_cvs |
|
#
01a5f190 |
| 29-Sep-2001 |
Jonathan Lemon <jlemon@FreeBSD.org> |
Nuke unused (and incorrect) #define of INADDR_HMASK.
Spotted by: ru
|
#
a931d7ed |
| 29-Sep-2001 |
Jonathan Lemon <jlemon@FreeBSD.org> |
Make the INADDR_TO_IFP macro use the IP address hash lookup instead of walking the entire list of IP addresses.
Pointed out by: bfumerola
|
#
ca925d9c |
| 29-Sep-2001 |
Jonathan Lemon <jlemon@FreeBSD.org> |
Add a hash table that contains the list of internet addresses, and use this in place of the in_ifaddr list when appropriate. This improves performance on hosts which have a large number of IP aliase
Add a hash table that contains the list of internet addresses, and use this in place of the in_ifaddr list when appropriate. This improves performance on hosts which have a large number of IP aliases.
show more ...
|
#
b40ce416 |
| 12-Sep-2001 |
Julian Elischer <julian@FreeBSD.org> |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is fu
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
show more ...
|
#
9f81cc84 |
| 17-Jul-2001 |
Ruslan Ermilov <ru@FreeBSD.org> |
Backout damage to the INADDR_TO_IFP() macro in revision 1.7.
This macro was supposed to only match local IP addresses of interfaces, and all consumers of this macro assume this as well. (See IP_MUL
Backout damage to the INADDR_TO_IFP() macro in revision 1.7.
This macro was supposed to only match local IP addresses of interfaces, and all consumers of this macro assume this as well. (See IP_MULTICAST_IF and IP_ADD_MEMBERSHIP socket options in the ip(4) manpage.)
This fixes a major security breach in IPFW-based firewalls where the `me' keyword would match the other end of a P2P link.
PR: kern/28567
show more ...
|
#
91854268 |
| 11-May-2001 |
Ruslan Ermilov <ru@FreeBSD.org> |
In in_ifadown(), differentiate between whether the interface goes down or interface address is deleted. Only delete static routes in the latter case.
Reported by: Alexander Leidinger <Alexander@lei
In in_ifadown(), differentiate between whether the interface goes down or interface address is deleted. Only delete static routes in the latter case.
Reported by: Alexander Leidinger <Alexander@leidinger.net>
show more ...
|
Revision tags: release/4.3.0_cvs, release/4.3.0 |
|
#
6817526d |
| 06-Feb-2001 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Convert if_multiaddrs from LIST to TAILQ so that it can be traversed backwards in the three drivers which want to do that.
Reviewed by: mikeh
|
#
ef9e85ab |
| 04-Feb-2001 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Use <sys/queue.h> macro API.
|