| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
interfaces of type IFT_L2VLAN as well as IFT_ETHER during module load.
Submitted by: yar
|
| |
|
|
|
|
|
|
|
| |
4 bytes to the right on the alpha.
Tested by: Thomas Pornin <Thomas.Pornin@ens.fr>
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LISTENed for, return EEXISTS.
Only match the magic "*" service tag if no other LISTEN service tags
match.
Require an explicit LISTEN for an empty service tag in order to match
empty service requests.
Approved by: julian
MFC after: 3 days
|
|
|
|
|
|
|
|
|
|
| |
improved readability. The two real functional changes are that
netgraph now sees this as the "split" node type rather then the
"ng_split" node type and that meta data is passed through without
processing rather then being dropped.
Reviewed by: jhb, julian
MFC after: 7 weeks
|
| |
|
|
|
|
|
|
|
|
|
| |
sending it along a hook.
PR: 27906
Submitted by: Harti Brandt <brandt@fokus.gmd.de>
no MFC as code is different in 4.x
|
|
|
|
| |
475: warning: unsigned int format, long unsigned int arg (arg 3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
machines. The code formerly read:
long val;
if (val < (long)-0x80000000 || ...)
return EINVAL;
The constant 0x80000000 has type unsigned int. The unary `-'
operator does not change the type (or the value, in this case).
Therefore the promotion to long is done by 0-extension, giving
0x0000000080000000 instead of the desired 0xffffffff80000000. I
got rid of the `-' and changed the cast to (int32_t) to give proper
sign-extension on all architectures and to better reflect the fact
that we are range-checking a 32-bit value.
This commit also makes the analogous changes to ng_int{8,16}_parse
for consistency.
MFC after: 3 days
|
| |
|
|
|
|
| |
(same as in previous checkin, but in a different function).
|
|
|
|
|
| |
- <sys/mutex.h> now requires <sys/systm.h>
- <sys/mutex.h> and <sys/sx.h> now require <sys/lock.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change a prototype.
Add a function version of ng_ref_node() when debugging so
a breakpoint can be set on it.
ng_base.c:
add 'node' as an argument to ng_apply_item so that it is up
to the caller to take over and release the item's reference on
the node. If the release reports back that the node went away
due to the reference going to 0, the caller should cease referencing
the now defunct node. (e.g. the item was a 'kill node' message).
Alter ng_unref_node to report back the residual references as a result.
ng_pptpgre.c:
Don't reference a node after we dropped a reference to it.
(What if it was the last?)
Fixes a node leak reported by Harti Brandt <brandt@fokus.gmd.de>
which was due to an incorrect earlier attempt to fix the
"accessing node after dropping the last reference" problem.
|
|
|
|
| |
Reported by: Fabien THOMAS <fabient@netasq.com>
|
| |
|
|
|
|
| |
This took me 2 whole days to track down. (bleah)
|
|
|
|
| |
from the function that is calling the destructor.
|
|
|
|
| |
in the ifaddr list as well. Also change an error return in the base system.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
ehternet frames to a netgraph hook.
Submitted by: "Vitaly V. Belekhov" <vitaly@riss-telecom.ru>
translated to 5.0 by me. man page not yet written.
This node still needs a little work.. don't use yet. Not yet linked into
the build.
|
|
|
|
|
| |
Makes it easier for people if they can start with something
that actually compiles.
|
|
|
|
| |
Well, at least I think that's how it's done.
|
|
|
|
|
|
|
|
|
|
|
|
| |
and add a sysctl to pppoe to activate non standard ethertypes
so that idiot ISPs (apparently in France) who use
equipment from idiot suppliers (rumour says 3com)
who use nonstandard ethertypes can still connect.
"yep, sure we do pppoe, we use a different identifier to that dictated in
the standard, but sure it's pppoe!"
sysctl -w net.graph.stupid_isp=1 enables the changeover.
|
|
|
|
|
|
|
|
|
|
| |
packet flow into two unidirectional flows.
Part of a suite of nodes developed for packet flow control.
More to follow as I have time to port them to 5.x or
as others do so. The ipfw node will be the hardest..
Submitted by: "Vitaly V. Belekhov" <vitaly@riss-telecom.ru>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mtx_enter(lock, type) becomes:
mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks)
mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized)
similarily, for releasing a lock, we now have:
mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN.
We change the caller interface for the two different types of locks
because the semantics are entirely different for each case, and this
makes it explicitly clear and, at the same time, it rids us of the
extra `type' argument.
The enter->lock and exit->unlock change has been made with the idea
that we're "locking data" and not "entering locked code" in mind.
Further, remove all additional "flags" previously passed to the
lock acquire/release routines with the exception of two:
MTX_QUIET and MTX_NOSWITCH
The functionality of these flags is preserved and they can be passed
to the lock/unlock routines by calling the corresponding wrappers:
mtx_{lock, unlock}_flags(lock, flag(s)) and
mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN
locks, respectively.
Re-inline some lock acq/rel code; in the sleep lock case, we only
inline the _obtain_lock()s in order to ensure that the inlined code
fits into a cache line. In the spin lock case, we inline recursion and
actually only perform a function call if we need to spin. This change
has been made with the idea that we generally tend to avoid spin locks
and that also the spin locks that we do have and are heavily used
(i.e. sched_lock) do recurse, and therefore in an effort to reduce
function call overhead for some architectures (such as alpha), we
inline recursion for this case.
Create a new malloc type for the witness code and retire from using
the M_DEV type. The new type is called M_WITNESS and is only declared
if WITNESS is enabled.
Begin cleaning up some machdep/mutex.h code - specifically updated the
"optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN
and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently
need those.
Finally, caught up to the interface changes in all sys code.
Contributors: jake, jhb, jasone (in no particular order)
|
|
|
|
|
| |
space when it calls the disconnect PRU function without checking that it
there.
|
|
|
|
|
|
| |
also try implement teh documented behaviour in socket nodes
so that when there is only one hook, an unaddressed write/send
will DTRT and send the data to that hook.
|
|
|
|
| |
Forgotten by: me
|
|
|
|
|
|
| |
and while I'm there, clean up the worklist insertion and removal.
Inspired by: Harti Brandt <brandt@fokus.gmd.de>
|
|
|
|
|
|
| |
for the rcvdata() and rcvmsg() methods.
Also bring the man page up to sync with my last commit. (and this one)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(e.g. ethernet nodes are persistent until you rip out the hardware)
Use this support in the ethernet and sample nodes.
Add some more abstraction on the 'item's so that node and
hook reference counting can be checked easier.
Slight man page correction.
Make pppoe type dependent on ethernet type.
Clean up node shutdown a little.
Move a mutex from MTX_SPIN to MTX_DEF (oops)
Fix small ref-counting bug.
remove warning on one2many type.
|
|
|
|
| |
Submitted by: Peter Wemm <peter@freebsd.org>
|
|
|
|
|
|
|
|
|
| |
The new method is 'flood' (in addition to the old round-robin)
in which incoming packets are sent to more than one outgoing hook.
(I'm not sure what Rogier is using this for but it seems generally useful
and isn't much extra)
Submitted by: Rogier R. Mulhuijzen (drwilco@drwilco.net )
|
| |
|
|
|
|
|
|
| |
the free list.
Found by: Harti Brandt (address unknown)
|
|
|
|
| |
module with the wrong version number.
|
| |
|
|
|
|
| |
tripped over by: PHK
|
|
|
|
|
|
| |
Use it to implement (hopefully) SMP safe node/hook addition
and removal.
Fix some debug stuff.
|
|
|
|
| |
slight tweek to hook removal. (or is that tweak?)
|
| |
|
|
|
|
|
|
|
|
| |
from a node, but does it via the locking queue, thus ensuring that the
node is locked when it's hook is removed.
Add 'deadnode' and 'deadhook' structures for when a node or hook is
invalidated but not yet freed. (not yet freed)
|
| |
|
|
|
|
| |
Found by: Brian Sommers
|
| |
|
|
|
|
| |
Clever work by: Brian Sommers (Brian@freeBSD.org)
|
|
|
|
| |
Also some changes resulting from debug work done earlier.
|