set ifp->if_link_state to LINK_STATE_DOWN in attach.
aq doesn't complete packet transmission if the link is down, so
aq_start uses LINK_STATE_IS_UP(ifp->if_link_state) to decide if it
should drop the queued packets or actually put them on the ring.
however, LINK_STATE_IS_UP() returns true if the link state is
LINK_STATE_UNKNOWN, which is the default value for the link state
in struct ifnet (because it's 0). this means if aq(4) is booted
without being plugged into the network, the link state handler
doesnt run and change the state to UP or DOWN, which leaves it
UNKNOWN. that's enough to confuse aq_start though.
defaulting the state to down properly represents the state of the
link, which in turn makes aq_start do the right thing with the
packets. if the network is plugged in on boot, the phy layer notices
and moves it to UP as expected.
found by Paul de Weerd on bugs@
[2 lines not shown]
Add RX queues/RSS/TSO support and update microcode for RTL8127.
On the RTL8127, the RX and TX descriptors use the 16-byte format
instead of the 32-byte one.
Fix TLV handling which lacks the check length checks for padding.
This could out-of-bounds memory write, stack disclosure, and SIGSEGV.
Reported and fix provided by Franz Bettag
For tree mode, hold a reference to prompt and other bits across command
to avoid crashing when killing the session with the mode's pane. GitHub
issue 5728.
swig port tweaks:
- add a note about issues with 4.5 dropping py2 api
- allow more tests to run by disabling some failing ones which trigger an exit
- move "don't run update-plist after make test" from a Makefile comment to
a post-test echo