Age | Commit message (Collapse) | Author |
|
ok rzalamena@, visa@
|
|
send if the mbuf contains the complete IPv6 header. The old check
was wrong, it required one additional octet after the header. So
the source address selection was depending on the layout of the
mbuf chain.
OK mpi@
|
|
ok visa@
|
|
only once during init.
OK mpi@
|
|
|
|
whem timeout_set_proc(9) is what we need.
Found the hardway by and ok visa@, ok mikeb@, bluhm@
|
|
NET_LOCK().
ok bluhm@
|
|
ok mpi@
|
|
|
|
ok bluhm@
|
|
ok bluhm@
|
|
softnet assert failures. It is better to place the lock into
net_sysctl() where all the protocol sysctls are called via pr_sysctl.
As calling sysctl(2) is in the slow path, doing fine grained locking
has no benefit. Many sysctl cases copy out a struct. Having a
lock around that keeps the struct consistent. Put assertions in
the protocol sysctls that need it.
OK mpi@
|
|
ok bluhm@
|
|
of the network stack that are not yet ready to be executed in parallel or
where new sleeping points are not possible.
This first pass replace all the entry points leading to ip_output(). This
is done to not introduce new sleeping points when trying to acquire ART's
write lock, needed when a new L2 entry is created via the RT_RESOLVE.
Inputs from and ok bluhm@, ok dlg@
|
|
Move the corresponding code in in6_pcbselsrc(). This reduces
differences with IPv4 and will help us to get rid of 'struct route*'.
ok vgross@
|
|
This will allow to strengthen checks when userland adds a route.
ok phessler@, bluhm@
|
|
ok bluhm@
|
|
This removes multipe recursive splsoftnet()/splx() dances.
|
|
It's one more step towards splitting ip6_input() in two and it reduces
differences with v4.
ok bluhm@
|
|
|
|
While here use __func__ in debug strings to reduce noise when grepping.
|
|
While here us __func__ in debug strings to reduce noise when grepping.
|
|
This will allow us to keep locking simple as soon as we trade
splsoftnet() for a rwlock.
ok bluhm@, claudio@
|
|
each counter is identified by an enum value which correspond to the
original members of the udpstat struct.
udpstat_inc(udps_foo) replaces udpstat.udps_foo++ for the actual
updates. udpstat_inc is a thin wrapper around counters_inc.
counters are still returned to userland via the udpstat struct for
now.
ok mpi@ mikeb@ deraadt@
|
|
IPv4 dynamic route inherits the priority. Only clone from a valid
IPv6 route. Do not use splsoftnet() in IPv6. Some stylistic changes
to make the functions similar.
OK mpi@
|
|
From Rivo Nurges; OK claudio@ mpi@ phessler@
|
|
ok phessler@, bluhm@ as part of a larger diff.
|
|
In order to stop abusing lo0 for all rdomains, a new loopback interface
will be created every time a rdomain is created. The unit number will
be the same as the rdomain, i.e. lo1 will be attached to rdomain 1.
If this loopback interface is already in use it wont be possible to create
the corresponding rdomain.
In order to know which lo(4) interface is attached to a rdomain, its index
is stored in the rtable/rdomain map.
This is a long overdue since the introduction of rtable/rdomain. It also
fixes a recent regression due to resetting the rdomain of an incoming
packet reported by semarie@, Andreas Bartelt and Nils Frohberg.
ok claudio@
|
|
Timers configured via rt_timer_add(9) always run at IPL_SOFTNET, so
assert that rather than calling splsoftnet().
ok bluhm@
|
|
context.
Convert them to timeout_set_proc(9).
|
|
a port doesn't make sense for a raw socket.
I forgot to commit this hunk in the previous commit. Sorry about that.
|
|
in6_pcbaddrisavail() which does all the checking for us instead of
hand rolling half of it.
Input & OK bluhm@
bluhm@ also points out that this relaxes the check for valid addresses
a bit, deprecated addresses become valid for raw sockets. This should
be fine, it brings raw sockets in line with udp/tcp sockets and it
might be particularly interesting for debugging purposes.
|
|
just drop it. It can never overlap existing content, there is no
ambiguous payload. So save resources and do not try to insert it
into the queue. This makes our IPv6 stack behave like pf fragment
reassembly.
OK deraadt@
|
|
There's no need to insert an RTF_LOCAL route if it is already there, not
if a route with the same destination exist.
This fixes a KASSERT() triggered by adding an alias for an address already
present in the ARP cache as reported by weerd@ and Peter J. Philipp.
This should also fix a KASSERT() triggered by a NDP change reported by
Sebastien Marie.
ok bluhm@
|
|
time_second is unix time so it can be affected by clock changes.
time_uptime is monotonic so it isnt affected by clock changes. that
in turn means route expiries wont jump with clock changes if set
against time_uptime.
the expiry is translated into unix time for export to userland though.
Should fix mismatch between route timers that were already converted
and ND default routers that were still using time_second.
Tested by matthieu@ and sthen@
ok sthen@, dlg@
|
|
to previous behaviour of starting quick, exponentially backing off and
settling on every 60 seconds.
sthen@ noticed that this broke the backing off when we don't receive
an advertisment and so we would hammer the network every second which
is particularly bad on wifi networks.
OK sthen@
|
|
|
|
|
|
the ioff argument to pool_init() is unused and has been for many
years, so this replaces it with an ipl argument. because the ipl
will be set on init we no longer need pool_setipl.
most of these changes have been done with coccinelle using the spatch
below. cocci sucks at formatting code though, so i fixed that by hand.
the manpage and subr_pool.c bits i did myself.
ok tedu@ jmatthew@
@ipl@
expression pp;
expression ipl;
expression s, a, o, f, m, p;
@@
-pool_init(pp, s, a, o, f, m, p);
-pool_setipl(pp, ipl);
+pool_init(pp, s, a, ipl, f, m, p);
|
|
ok mikeb@ mpi@
|
|
ok vgross@ henning@
|
|
instead of creating a new one.
Having two addresses mean that the old, deprecated one, would be
selected instead of the new one. The issue could be triggered by
reducing the pltime/vltime values sent by a router advertisement
daemon.
Problem reported and fix tested by Jens Sauer on bugs@
|
|
thank you to everyone who helped reviewed these diffs
ok mpi@
|
|
This is done to stop using stale ifa attached to routes, which is
the easiest way to make rtisvalid(9) MP-safe.
sthen@ and henning@ like it, ok claudio@
|
|
else than AF_INET6.
Ok florian@
|
|
blindly always sending one every 60 seconds.
repeated prodding & input naddy
input & OK vgross
|
|
OK benno@
|
|
This check does not make sense since November 2000 when IPv6 autoconf
address deletion has been made independent from prefix lifetimes.
Fix a case when a route was added to the table but the corresponding
address was not, leaving v6 unusable.
Found the hardway by and ok sthen@
|
|
'struct route_in6 *'.
This is another little step towards deprecating 'struct route{,_in6}'
Inputs from and ok bluhm@
|
|
A single forwarding cache is not the answer. The answer is 42... err PF!
ok bluhm@
|