| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
for failed route lookups. This is something that was maybe useful in the
90is but in this modern times it is just annoying and nothing expect it
anyway. OK mpi@, sthen@
|
|
|
|
|
|
|
| |
Deleting a RTF_CLONED entry without deleting its corresponding RTF_CLONING
entry wont help as it will be cloned the next time arplookup() is executed.
ok claudio@
|
|
|
|
| |
ok millert@, bluhm@
|
| |
|
|
|
|
| |
Tested by and ok sthen@,
|
|
|
|
|
|
|
| |
attached to a carp(4) or bridge(4) member, to not dereference rt_ifp
directly.
ok visa@
|
|
|
|
|
|
| |
for unlocking the ARP input path.
ok dlg@
|
|
|
|
|
|
| |
its descriptor. Get rid of a if_ref().
ok dlg@
|
|
|
|
|
|
| |
the sender address is a local IP. The arplookup() does this route
lookup anyway, so just check its result.
OK mpi@
|
|
|
|
|
|
|
| |
with route lookups. Check wether ARP sender or target protocol
address is a local IP address. Remove the loop that checks wether
any IPv4 address is configured on the receiving interface.
input, test, OK mpi@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
this is an interesting change because the loops have to decrement
the global hold count too. they looked like this:
while ((mh = ml_dequeue(&la->la_ml)) != NULL) {
la_hold_total--;
m_freem(mh);
}
because ml_purge returns how many mbufs were freed, we can do this:
la_hold_total -= ml_purge(&la->la_ml);
ok mpi@ bluhm@
|
|
|
|
|
|
|
|
|
| |
One of the keys of our MP work relies on making OpenBSD's kernel simpler!
In this case turning ARP processing MP-safe is quite complicated due to
the way carp(4) is hooked in arpinput() and nowadays you'd better run
kitchensinkd(9) anyway :)
ok bluhm@, claudio@, reyk@
|
|
|
|
|
|
| |
the other arp variables and nd6. Convert a hand-crafted loop to
LIST_FOREACH_SAFE.
OK mpi@
|
|
|
|
| |
OK mpi@
|
| |
|
|
|
|
| |
ok bluhm@
|
|
|
|
|
|
|
|
|
| |
L2 resolution depends on the protocol (encoded in the route entry) and
an ``ifp''. Not having to care about an ``ifa'' makes our life easier
in our MP effort. Fewer dependencies between data structures implies
fewer headaches.
Discussed with bluhm@, ok claudio@
|
| |
|
|
|
|
|
|
| |
entry is attached to this entry.
ok phessler@, bluhm@
|
|
|
|
|
|
| |
Instead of casts they check wether the incoming object has the
expected type. So introduce satosdl() and sdltosa() in the kernel.
OK mpi@
|
|
|
|
| |
ok claudio@, bluhm@, jsg@
|
|
|
|
|
|
|
|
| |
ARP entries with an expired timeout are now removed from the tree even
if they are cached somehwere else. This also reduces differences with
NDP.
ok bluhm@
|
| |
|
|
|
|
|
|
| |
callers rtfree(9) it.
ok bluhm@
|
|
|
|
|
| |
Issue _17 found by Maxime Villard Brainy scanner.
OK bluhm@
|
|
|
|
|
|
| |
needs to see lo0 in the output path.
ok claudio@
|
|
|
|
|
|
| |
the kernel lock.
"do it" claudio@ mpi@
|
|
|
|
|
|
|
|
|
| |
Use instead the RTF_LOCAL flag to loop local traffic back to the
corresponding protocol queue.
With this change rt_ifp is now always the same as rt_ifa->ifa_ifp.
ok claudio@
|
|
|
|
|
|
| |
to get nfs working.
ok claudio@
|
|
|
|
| |
ok claudio@
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is needed for proper refcounting of rtentries and reduce differences
with nd6_lookup().
Tweak and ok bluhm@
|
|
|
|
| |
some grep output noise.
|
|
|
|
|
|
|
|
|
|
| |
Code abusing the radix internals for the routing table should now
includes <net/rtable.h> and only deal with "struct rtentry".
Code using a radix tree for another purpose can still include
<net/radix.h>.
Inputs from and ok claudio@, mikeb@
|
|
|
|
|
|
|
| |
route and not during the SIOCSIFADDR ioctl. This way addresses are
not announced when an error occurs.
ok chris@, claudio@
|
| |
|
|
|
|
|
|
|
|
| |
Most of the ARP layer already take an ifp pointer and this makes clear
wich chunks of code are messing with ac_enaddr.
Note that our Ethernet code assume that these pointer are interchangeable
since the first element of the "struct arpcom" is a "struct ifnet".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
| |
annoying trailing, leading and embedded whitespace. No change to
.o files.
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has been done because historically routes to broadcast addresses
were cloned like any ARP entry. But for obvious reasons, no matching
Ethernet address could ever be resolved. That's why we played tricks
with the expire timer.
Now that a RTF_BROADCAST route is created per configured IPv4 address,
we need to differenciate duplicated one. And by not creating an ARP
entry we are allowed to write the IP address in the rt_gateway field,
which prevents MPATH conflicts.
This change is part of a fix to unbreak aliases since the kernel support
multiple connected routes for a subnet.
Found the hardway by djm@, ok claudio@
|
|
|
|
|
|
|
|
|
|
|
| |
Use the existing multipath code. Switch away from using the ifa address
when making the cloning route and instead put a dummy sockaddr_dl route
in. With this it is possible to use the same network on multiple interfaces
at the same time. So if wireless and ethernet share the same network
the system will use the wired connection as long as there is link.
Still missing is builtin proxy-arp for the other interface IPs to allow
hitless failover.
OK mpi@
|
|
|
|
|
|
|
| |
as la will be NULL when rt is uninitialised which should cause
the function to return, but makes the code easier to follow.
ok mpi@ miod@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
| |
resolution is completed to ml_init(9) API.
Tested by kspillner@, inputs & ok dlg@
|
|
|
|
|
| |
the Ethernet frame. Prevent an overflow reported by Henk Jan Agteresch
on bugs@.
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
|
|
|
|
| |
of memory.
The key (destination) is only set once, when the route is inserted in
the routing table, and does not need to change afterward. The gateway
might change and rt_setgate() will do all the checks for you.
ok claudio@
|
|
|
|
|
|
| |
ARP information is of a different kind.
ok sthen@, claudio@
|
|
|
|
|
|
| |
This unify some code and notify userland for free.
blambert@ agrees, ok bluhm@
|