Age | Commit message (Collapse) | Author |
|
ok kn@
|
|
|
|
|
|
it's the same, but there was a misleading comment on the same line
which this cleans up too.
|
|
this probably explains why ive seen a box decide not to use a
distributing port, even though the state machine and all the lacp
state flags say it's fine. it may also explain why jmatthew@ has
seen a port still transmitting after it's been removed from an
aggr(4).
|
|
|
|
|
|
|
|
make setting a trunkports mtu to its current mtu a nop. set a
trunkports mtu to the aggr mtu when the port is getting added. set
the mtu on all trunkports when the aggr mtu is set so things look
consistent. restore a trunkports mtu when it is removed from an
aggr.
this is mostly cosmetic since the mtu on trunkports isn't really
used anywhere.
|
|
802.1AX (formerly known as 802.3ad) describes the Link Aggregation
Control Protocol (LACP) and how to use it in a bunch of different
state machines to control when to bundle interfaces into an
aggregation.
technically the trunk(4) driver already implements support for
802.1AX, but it had a couple of problems i struggled to deal with
as part of that driver. firstly, i couldnt easily make the output
path in trunk mpsafe without getting bogged down, and the state
machine handling had a few hard to diagnose edge cases that i couldnt
figure out.
the new driver has an mpsafe output path, and implements ifq bypass
like vlan(4) does. this means output with aggr(4) is up to twice
as fast as trunk(4). the implementation of the state machines as
per the standard means the driver behaves more correctly in edge
cases like when a physical link looks like it is up, but is logically
unidirectional.
the code has been good enough for me to use in production, but it
does need more work. that can happen in tree now instead of carrying
a large diff around.
some testing by ccardenas@, hrvoje popovski, and jmatthew@
ok deraadt@ ccardenas@ jmatthew@
|
|
this will be used to prevent trunk and the upcoming aggr driver
from taking ownership of an Ethernet interface at the same time.
|
|
these values are used as the backpressure thresholds in the interface
rx q processing code. theyre being exposed as tunables to userland
while we are figuring out what the best values for them are.
ok visa@ deraadt@
|
|
hop interface configured with "route-to" was not used. Keep the
interface within the pf_src_node and use it when the record is used.
OK sashan
|
|
there are states which refer it.
OK sashan
|
|
instead of counting the number of packets on an ifiq, count the
number of times a nic has tried to queue packets before the stack
processes them.
this new semantic interacted badly with virtual interfaces like
vlan and trunk, but these interfaces have been tweaked to call
if_vinput instead of if_input so their packets are processed directly
because theyre already running inside the stack.
im putting this in so we can see what the effect is. if it goes
badly i'll back it out again.
ok cheloha@ proctor@ visa@
|
|
|
|
IF_WIRELESS_DEFAULT_PRIORITY and use it in umb(4) as default prio.
OK kettenis@, sthen@
|
|
passed though pf_test(). So there is no need to try to call
pf_pkt_addr_changed() instead just check that the PF statekey is NULL.
Initial problem of not including pf.h found by jsg@
OK jsg@ sashan@
|
|
address could trigger the "rt->rt_ifidx == ifp->if_index" assertion.
In rtflushclone() the ifp that is passed to rtdeletemsg() has been
changed from the route interface to the ifa interface. Restore the
old behavior and get the route ifp.
found by regress/sys/netinet/carp; OK mpi@
|
|
Re-challenge timeouts are made up of single scalar factors which are
multiplied with the time unit lcp.timeout to compute the timeout period.
Simply reduce that unit of 1 * hz [ticks] to 1 [s] and use the appropiate
API.
OK mpi
|
|
ok kn@
|
|
Instead of masking the difference between lower and upper bound to yield
a random summand that fits, instruct the API to limit their result
accordingly. 0x01fe = 510 = 810 - 300.
arc4random_uniform(upper_bound) returns `upper_bound - 1' as maximum, so
add one to make 810 a possible value for `i'.
OK deraadt
|
|
|
|
OK claudio semarie
|
|
rtable_walk(9) now passes a routing entry back to the caller when
a non zero value is returned and if it asked for it.
This allows us to call rtdeletemsg()/rtrequest_delete() from the
caller without creating a recursion because of rtflushclone().
Multicast code hasn't been adapted and is still possibly creating
recursions. However multicast route entries aren't cloned so if
a recursion exists it isn't because of rtflushclone().
Fix stack exhaustion triggered by the use of "-msave-args".
Issue reported by Dániel Lévai on bugs@ confirmed by and ok bluhm@.
|
|
ok reyk@
|
|
All ticks arguments to timeout_add() calls are positive multiple of hz, so
simply reduce it and use the appropiate function.
Also, (hz / 50) [ticks] = 1 / 50 [s] = 20 [ms].
OK mpi
|
|
ok kn@
|
|
ok anton@, sashan@
|
|
ok kn@
|
|
before adding it to the routing table. The rtable code is doing memcmp()
of those rt_dest sockaddrs so it is important that they are stored in a
canonical form. To do this struct domain is extended to include the
sockaddr size for this address family.
OK bluhm@ anton@
Reported-by: syzbot+10fe9cd8d0211c562ead@syzkaller.appspotmail.com
|
|
|
|
if_type is now immutable in tun(4) and tap(4)
ok claudio@ mpi@
|
|
ok semarie@, visa@
|
|
|
|
From Eygene Ryabinkin.
|
|
with bad address flags.
OK bluhm@ sthen@
|
|
OK mpi@
|
|
OK mpi@
|
|
ok claudio
|
|
The code for updating the laststate and timer is looking at laststate before
it's been updated.
From Mitchell Krome <mitchellkrome at gmail dot com>, thanks!
OK claudio
|
|
the cid thing was via jmatthew@
|
|
the cid was via jmatthew@
|
|
OK visa@, OK mpi@
|
|
This allows to set such flag after completing the initialization of a
bridge and still have bstp_tick() be scheduled from the begining.
Fix a regression reported by and ok markus@
|
|
Since `bif' are removed from the interface list before calling smr_barrier()
and the hash queue is cleaned up afterward, it is possible to find an ifidx
with bridge_rtlookup() that won't match to any `bif'.
Fix a panic reported by Hrvoje Popovski, ok visa@
|
|
This removes the KERNEL_LOCK() around the list iteration in bridge_enqueue().
Since the NET_LOCK() isn't protecting any data structure, release it early
in all the code paths coming from the Network Stack to prevent possible
deadlock situations with smr_barrier().
bridge_input() is still KERNEL_LOCK()ed as well as bridge_filterrule().
ok visa@
|
|
OK mpi@
|
|
|
|
Fix a regression introduced by the bridge(4) refactoring.
Found by and ok bluhm@
|