| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
found by jsg@
|
|
|
|
|
|
|
| |
this is a bit funky cos we give up the ref while sleeping in tunread,
and have to get a new ref on wakeup.
ok claudio@
|
|
|
|
| |
From David Hill; OK mpi@; tested kspillner@; tweaks bluhm@
|
|
|
|
| |
OK mikeb@
|
|
|
|
|
|
|
|
|
|
|
| |
if_input() has been designed to be able to safely handle a batch of
packets from physical drivers to the network stack. Most of these
drivers have an interrupt routine executed at IPL_NET and the check
made sense during the conversion. However we also want to re-enqueue
packets with if_input() from the network stack currently running at
IPL_SOFTNET.
ok claudio@
|
|
|
|
| |
ok stsp mpi
|
|
|
|
| |
ok bluhm@, claudio@, dlg@
|
|
|
|
|
|
| |
talking about (*ifp->if_output)().
ok claudio@, dlg@
|
|
|
|
|
|
|
| |
Note that pseudo-drivers not using if_input() are not affected by this
conversion.
ok mikeb@, kettenis@, claudio@, dlg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
receiving interface in the packet header of every mbuf.
The interface pointer should now be retrieved when necessary with
if_get(). If a NULL pointer is returned by if_get(), the interface
has probably been destroy/removed and the mbuf should be freed.
Such mechanism will simplify garbage collection of mbufs and limit
problems with dangling ifp pointers.
Tested by jmatthew@ and krw@, discussed with many.
ok mikeb@, bluhm@, dlg@
|
|
|
|
|
|
| |
Tested by Norman Golisz and <mxb AT alumni DOT chalmers DOT se>, thanks!
ok bluhm@
|
|
|
|
|
|
|
|
| |
change it from feeding the ethertype of the packet (which is almost
certainly an ip packet or vlan packet, so not that variable) to the
number of packets about to be processed.
ok deraadt@ mpi@
|
|
|
|
|
|
| |
that later but all drivers should be adapated.
Should fix a double output packet accounting, reported by Hrvoje Popovski.
|
|
|
|
|
|
| |
introduced during the if_output() conversion.
Found by jsg@
|
| |
|
|
|
|
|
|
|
|
| |
a packet on the sending queue of an interface.
Tested by many, thanks a lot!
ok dlg@, claudio@
|
|
|
|
|
|
|
|
|
| |
descriptor during SIOCSIFFLAGS.
This prevent a use after free, triggered by the pool/malloc damage
finder being currently cooked by dlg@ and deraadt@.
ok deraadt@
|
|
|
|
|
| |
has destroyed or damaged the interface clone.
with mpi
|
|
|
|
|
|
| |
Should fix a panic reported by many on bugs@ and misc@.
ok dlg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with niqueues.
this change is so big because there's a lot of code that takes
pointers to different input queues (eg, ether_input picks between
ipv4, ipv6, pppoe, arp, and mpls input queues) and falls through
to code to enqueue packets against the pointer. if i changed only
one of the input queues id have to add sepearate code paths, one
for ifqueues and one for niqueues in each of these places
by flipping all these input queues at once i can keep the currently
common code common.
testing by mpi@ sthen@ and rafael zalamena
ok mpi@ sthen@ claudio@ henning@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
its only used for the ip and ip6 network stack input queues, so it
seems unfair that every instance of ifqueue has to carry a pointer
around for this specific use case.
this moves the congestion marker to a kernel global. if we detect
that we're congested, we assume the whole system is busy and punish
all input queues.
marking a system as congested is done by setting the global to the
current value of ticks. as the system moves away from that value,
it moves away from being congested until the comparison fails.
written at s2k15
ok henning@ beck@ bluhm@ claudio@
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
|
| |
- rename uiomove() to uiomovei() and update all its users.
- introduce uiomove(), which is similar to uiomovei() but with a size_t.
- rewrite uiomovei() as an uiomove() wrapper.
ok kettenis@
|
|
|
|
|
|
|
|
| |
for a couple decades. Keep the OSIOCGIFCONF ioctl to support COMPAT_LINUX
but move the rest of the Linux-specific ioctl() handling into linux_socket.c
This lets struct osockaddr finally move from sys/socket.h to protocols/talkd.h
ok krw@ deraadt@ mpi@
|
|
|
|
|
| |
long live the one true internet.
ok henning mikeb
|
|
|
|
|
|
| |
wasn't freeed when the interface is destroyed. Free it properly.
ok dlg
|
|
|
|
| |
ok miod@ mpi@
|
| |
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
|
|
|
|
| |
instead of relying on hacks in nd6_rtrequest() to add a route to
loopback for each address configured on such interfaces.
While here document that abusing lo0 for local traffic is not safe
for interfaces in a non-default rdomain.
Tested by claudio@, jca@ and sthen@, ok sthen@
|
|
|
|
| |
ok pelikan@, henning@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid the confusion by using an appropriate name for the variable.
Note that since routing domain IDs are a subset of the set of routing
table IDs, the following idiom is correct:
rtableid = rdomain
But to get the routing domain ID corresponding to a given routing table
ID, you must call rtable_l2(9).
claudio@ likes it, ok mikeb@
|
|
|
|
|
|
|
|
|
| |
struct ucred; struct process then directly links to the ucred
Based on a discussion at c2k10 or so before noting that FreeBSD and
NetBSD did this too.
ok matthew@
|
|
|
|
|
|
| |
global variables to in6.h.
ok deraadt@
|
|
|
|
|
|
| |
global variables to in.h.
ok mikeb@, deraadt@
|
|
|
|
|
|
| |
them ignore the SIOC{ADD,DEL}MULTI ioctls.
ok reyk@, claudio@
|
|
|
|
|
|
|
| |
created a bunch of useless dependencies. Remove this implicit
inclusion and do an explicit #include <netinet6/in6_var.h> when it
is needed.
OK mpi@ henning@
|
|
|
|
|
|
| |
makes no sense to let tun(4) handle it.
ok claudio@, haesbaert@
|
|
|
|
| |
IFF_LINK0 flag has been added; from form, ok deraadt claudio
|
|
|
|
|
| |
.h files to pull it in, if needed
ok tedu
|
|
|
|
| |
ok beck@, mikeb@
|
| |
|
|
|
|
|
| |
with this nothing in the tree fiddles if ifqueue internals any more, of
course except if.c and if.h (and some altq)
|
|
|
|
|
|
| |
the obvious cases to return EINVAL and ENXIO.
ok tedu deraadt
|
|
|
|
| |
"yup" deraadt@
|
|
|
|
| |
"Sure" deraadt@
|
|
|
|
|
|
|
| |
- pipex failed to lookup the radix tree because address and netmask
were not initialized.
- pipex used wrong place as a ip header because it didn't adjust
32bit address family header that are added at tun_output.
|
|
|
|
|
|
| |
link states. Additionally do not up the interface when opening the device.
Resulting in the same behaviour as on real ethernet interfaces.
OK sthen
|