#
70f89834 |
| 02-Apr-2010 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Merge svn+ssh://svn.freebsd.org/base/head@206063
|
#
5c100aea |
| 01-Apr-2010 |
Alexander Motin <mav@FreeBSD.org> |
Make ng_ksocket fulfill lower protocol stack layers alignment requirements on platforms with strict alignment constraints. This fixes kernel panics on arm and probably other architectures.
PR: spar
Make ng_ksocket fulfill lower protocol stack layers alignment requirements on platforms with strict alignment constraints. This fixes kernel panics on arm and probably other architectures.
PR: sparc64/80410
show more ...
|
Revision tags: release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0 |
|
#
10b3b545 |
| 17-Sep-2009 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Merge from head
|
#
09c817ba |
| 03-Jul-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- MFC
|
#
fe1d3f15 |
| 28-Jun-2009 |
Stanislav Sedov <stas@FreeBSD.org> |
- Turn the third (islocked) argument of the knote call into flags parameter. Introduce the new flag KNF_NOKQLOCK to allow event callers to be called without KQ_LOCK mtx held. - Modify VFS knote c
- Turn the third (islocked) argument of the knote call into flags parameter. Introduce the new flag KNF_NOKQLOCK to allow event callers to be called without KQ_LOCK mtx held. - Modify VFS knote calls to always use KNF_NOKQLOCK flag. This is required for ZFS as its getattr implementation may sleep.
Approved by: re (rwatson) Reviewed by: kib MFC after: 2 weeks
show more ...
|
#
7e857dd1 |
| 12-Jun-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- Merge from HEAD
|
#
74fb0ba7 |
| 01-Jun-2009 |
John Baldwin <jhb@FreeBSD.org> |
Rework socket upcalls to close some races with setup/teardown of upcalls. - Each socket upcall is now invoked with the appropriate socket buffer locked. It is not permissible to call soisconnected
Rework socket upcalls to close some races with setup/teardown of upcalls. - Each socket upcall is now invoked with the appropriate socket buffer locked. It is not permissible to call soisconnected() with this lock held; however, so socket upcalls now return an integer value. The two possible values are SU_OK and SU_ISCONNECTED. If an upcall returns SU_ISCONNECTED, then the soisconnected() will be invoked on the socket after the socket buffer lock is dropped. - A new API is provided for setting and clearing socket upcalls. The API consists of soupcall_set() and soupcall_clear(). - To simplify locking, each socket buffer now has a separate upcall. - When a socket upcall returns SU_ISCONNECTED, the upcall is cleared from the receive socket buffer automatically. Note that a SO_SND upcall should never return SU_ISCONNECTED. - All this means that accept filters should now return SU_ISCONNECTED instead of calling soisconnected() directly. They also no longer need to explicitly clear the upcall on the new socket. - The HTTP accept filter still uses soupcall_set() to manage its internal state machine, but other accept filters no longer have any explicit knowlege of socket upcall internals aside from their return value. - The various RPC client upcalls currently drop the socket buffer lock while invoking soreceive() as a temporary band-aid. The plan for the future is to add a new flag to allow soreceive() to be called with the socket buffer locked. - The AIO callback for socket I/O is now also invoked with the socket buffer locked. Previously sowakeup() would drop the socket buffer lock only to call aio_swake() which immediately re-acquired the socket buffer lock for the duration of the function call.
Discussed with: rwatson, rmacklem
show more ...
|
Revision tags: release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0 |
|
#
e57c2b13 |
| 04-Dec-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
integrate from head@185615
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
1ede983c |
| 23-Oct-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Retire the MALLOC and FREE macros. They are an abomination unto style(9).
MFC after: 3 months
|
#
6e7ed930 |
| 07-Mar-2008 |
Alexander Motin <mav@FreeBSD.org> |
Send only one incoming notification at a time to reduce queue trashing and improve performance. Remove waitflag argument from ng_ksocket_incoming2(), it means nothing as function call was queued by n
Send only one incoming notification at a time to reduce queue trashing and improve performance. Remove waitflag argument from ng_ksocket_incoming2(), it means nothing as function call was queued by netgraph. Remove node validity check, as node validity guarantied by netgraph. Update comments.
show more ...
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
4ae54e2f |
| 09-Feb-2007 |
Bruce M Simpson <bms@FreeBSD.org> |
In the output path, mask off M_BCAST|M_MCAST so as to prevent incorrect addressing if a packet is later re-encapsulated and sent to a non-broadcast, non-multicast destination after being received on
In the output path, mask off M_BCAST|M_MCAST so as to prevent incorrect addressing if a packet is later re-encapsulated and sent to a non-broadcast, non-multicast destination after being received on the ng_ksocket input hook.
PR: 106999 Submitted by: Kevin Lahey MFC after: 4 weeks
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
b0668f71 |
| 24-Jul-2006 |
Robert Watson <rwatson@FreeBSD.org> |
soreceive_generic(), and sopoll_generic(). Add new functions sosend(), soreceive(), and sopoll(), which are wrappers for pru_sosend, pru_soreceive, and pru_sopoll, and are now used univerally by soc
soreceive_generic(), and sopoll_generic(). Add new functions sosend(), soreceive(), and sopoll(), which are wrappers for pru_sosend, pru_soreceive, and pru_sopoll, and are now used univerally by socket consumers rather than either directly invoking the old so*() functions or directly invoking the protocol switch method (about an even split prior to this commit).
This completes an architectural change that was begun in 1996 to permit protocols to provide substitute implementations, as now used by UDP. Consumers now uniformly invoke sosend(), soreceive(), and sopoll() to perform these operations on sockets -- in particular, distributed file systems and socket system calls.
Architectural head nod: sam, gnn, wollman
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
aa00bc83 |
| 21-Feb-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Clear csum_flags after reading data from socket buffer. Otherwise, if ksocket is connected to an interface-type node somewhere later in the graph (e.g., ng_eiface or ng_iface), the csum_data may be
Clear csum_flags after reading data from socket buffer. Otherwise, if ksocket is connected to an interface-type node somewhere later in the graph (e.g., ng_eiface or ng_iface), the csum_data may be applied to a wrong packet (if we encapsulate Ethernet or IP).
MFC after: 3 days
show more ...
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
e71fefbe |
| 06-Sep-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
When we read data from socket buffer using soreceive() the socket layer does not clear m_nextpkt for us. The mbufs are sent into netgraph and then, if they contain a TCP packet delivered locally, the
When we read data from socket buffer using soreceive() the socket layer does not clear m_nextpkt for us. The mbufs are sent into netgraph and then, if they contain a TCP packet delivered locally, they will enter socket code again. They can pass the first assert in sbappendstream() because m_nextpkt may be set not in the first mbuf, but deeper in the chain. So the problem will trigger much later, when local program reads the data from socket, and an mbuf with m_nextpkt becomes a first one.
This bug was demasked by revision 1.54, when I made upcall queueable. Before revision 1.54 there was a very small probability to have 2 mbufs in GRE socket buffer, because ng_ksocket_incoming2() dequeued the first one immediately.
- in ng_ksocket_incoming2() clear m_nextpkt on all mbufs read from socket. - restore rev. 1.54 change in ng_ksocket_incoming().
PR: kern/84952 PR: kern/82413 In collaboration with: rwatson
show more ...
|
#
d7f56eab |
| 25-Aug-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Backout revision 1.54, because it exposes a worse problem, than it fixes. I believe the problem lives somewhere outside ng_ksocket, but until it is found, let the node be working.
PR: kern/84952 PR
Backout revision 1.54, because it exposes a worse problem, than it fixes. I believe the problem lives somewhere outside ng_ksocket, but until it is found, let the node be working.
PR: kern/84952 PR: kern/82413 MFC after: 3 days
show more ...
|
#
f6c9d18d |
| 16-May-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Catch up with new ng_send_fn1() interface.
|
#
0f4a3524 |
| 13-May-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
When used as divert socket we need to decouple stack when node is entered from socket side. Use ng_queue_fn() instead of ng_send_fn().
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
bc90ff47 |
| 18-Apr-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix panics with misconfigured routing: - Backout previous revision, the check is useless. - Turn node to queue mode, since it is edge node.
Reported by: sem
|
#
f1c6a420 |
| 19-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Reimplement recursion protection, checking whether current thread holds sockbuf mutex.
Reviewed by: rwatson
|
#
848a25c7 |
| 16-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove a recursion protection, which we inherited from splnet() netgraph times. Now several threads may write data to ng_ksocket. Locking of socket is done in sosend().
Reviewed by: archie, julian,
Remove a recursion protection, which we inherited from splnet() netgraph times. Now several threads may write data to ng_ksocket. Locking of socket is done in sosend().
Reviewed by: archie, julian, rwatson MFC after: 2 weeks
show more ...
|
#
d96bd8d1 |
| 12-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Allocate enough space for new tag.
Pointy hat to: glebius
|
#
b07785ef |
| 12-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
When netgraph(4) was converted to use mbuf_tags(9) instead of meta-data a definite setup was broken: two ng_ksockets are connected to each other, connect()ed to different remote hosts, and bind()ed t
When netgraph(4) was converted to use mbuf_tags(9) instead of meta-data a definite setup was broken: two ng_ksockets are connected to each other, connect()ed to different remote hosts, and bind()ed to different local interfaces. In this case one ng_ksocket is fooled with tag from the other one.
Put node id into tag. In rcvdata method utilize tag only if it has our own id inside or id equals zero. The latter case is added to support packets send by some third, not ng_ksocket node.
MFC after: 1 week
show more ...
|
Revision tags: 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 |
|
#
42ec1da4 |
| 02-Sep-2004 |
Robert Watson <rwatson@FreeBSD.org> |
In FreeBSD 5.x, curthread is always defined, so we don't need to to test and optionally use &thread0 if it's NULL.
Spotted by: julian
|
#
327b288e |
| 25-Jun-2004 |
Julian Elischer <julian@FreeBSD.org> |
Convert Netgraph to use mbuf tags to pass its meta information around. Thanks to Sam for importing tags in a way that allowed this to be done.
Submitted by: Gleb Smirnoff <glebius@cell.sick.ru> Also
Convert Netgraph to use mbuf tags to pass its meta information around. Thanks to Sam for importing tags in a way that allowed this to be done.
Submitted by: Gleb Smirnoff <glebius@cell.sick.ru> Also allow the sr and ar drivers to create netgraph versions of their modules. Document the change to the ksocket node.
show more ...
|