Age | Commit message (Collapse) | Author |
|
to prevent the hwm growing beyond that. this allows the livelock mitigation
to do something where the hwm used to grow beyond twice the rx rings size.
ok kettenis@ claudio@
|
|
|
|
try again later.
tested by many
|
|
tested by many including henning@ sthen@ naddy@ krw@ robert@ jmc@ jsg@
weerd@ and ingo schwarze on a variety of machines include i386, amd64,
alpha, and sparc64.
|
|
from the individual drivers now that ether_ioctl() handles this.
Shrinks the i386 kernels by..
RAMDISK - 2176 bytes
RAMDISKB - 1504 bytes
RAMDISKC - 736 bytes
Tested by naddy@/okan@/sthen@/brad@/todd@/jmc@ and lots of users.
Build tested on almost all archs by todd@/brad@
ok naddy@
|
|
monkeys.
found by toby's bounce buffers.
ok krw deraadt uwe fwk matthieu, drahn, mbalmer, robert, yuo, ratchov,
claudio, rainer, art.
|
|
creates the VLAN encapsulation from the tag stored in the mbuf
header. Idea from FreeBSD, input from claudio@ and canacar@.
Switch all hardware VLAN enabled drivers to the new function.
ok claudio@
|
|
amount of memory and interrupt time each bge uses) without discussing
it with other people. lots of people are complaining about the lack
of communication in your process, and you are going to have to change
that.
|
|
whole ring.
|
|
|
|
whole ring.
|
|
chipsets.
From the Linux tg3 driver via FreeBSD.
Tested by Jordi Creix <jbcreix dot mail at gmail dot com>
|
|
Tested by naddy@
|
|
tag in the header. Convert TX tagging in the drivers.
Help and ok brad@
|
|
now the offset into the first mbuf of the target chain before copying
the source data over. From FreeBSD.
Convert drivers' use of m_devget(). Mostly from thib@.
Update mbuf(9) man page.
ok claudio@, thib@
|
|
Move calling ether_ioctl() from the top of the ioctl function, which
at the moment does absolutely nothing, to the default switch case.
Thus allowing drivers to define their own ioctl handlers and then
falling back on ether_ioctl(). The only functional change this results
in at the moment is having all Ethernet drivers returning the proper
errno of ENOTTY instead of EINVAL/ENXIO when encountering unknown
ioctl's.
Shrinks the i386 kernels by..
RAMDISK - 1024 bytes
RAMDISKB - 1120 bytes
RAMDISKC - 832 bytes
Tested by martin@/jsing@/todd@/brad@
Build tested on almost all archs by todd@/brad@
ok jsing@
|
|
code. No functional change.
ok krw@
|
|
stripping: Add a field to the mbuf pkthdr to hold the tag and an
mbuf flag that tells if the tag is valid. Inspired by FreeBSD.
Struct packing suggested by kettenis@. csum_flags is now 16 bits.
Adapt to this in the drivers.
ok reyk@, henning@
|
|
Really just the low-hanging fruit of (hopefully) forthcoming timeout
conversions.
ok art@, krw@
|
|
In some situations we were not clearing pending link state attentions.
Because of this we were not getting further interrupts for link state
changes, thus never went into iface UP state.
Force an interrupt at the end of bge_ifmedia_upd so we will call
bge_link_upd, clear the link state attention and get further
interrupts.
From FreeBSD
ok reyk@
|
|
ok deraadt@
|
|
has subsystem ids set to the same as the regular ids, so the heuristic does
not work. So look for the TAD,Viper machine name. When we get our hand on
a Bullfrog (with a PCI slot) we will need to revisit this.
ok kettenis
|
|
|
|
slightly different from the other chipsets using the BCM5705 ASIC.
ok jsg@
|
|
mode (4KB) for PCIe chips. This resolves the poor TX performance for
the PCIe chips. The result being a bit under double the TX performance
on a Gig connection (roughly 495 Mb/s -> 940 Mb/s).
Tested by reyk@, sthen@, brad@ and a few end users.
|
|
ok deraadt@
|
|
|
|
|
|
suggested by dlg@ awhile ago.
ok dlg@
|
|
|
|
ok dlg@
|
|
state transitions are noticed and the appropriate routing socket messages
are generated.
ok kettenis@ krw@
|
|
uses MII interrupts to detect link state transitions as is done for all of
the other BCM5700 revisions, without this change link state transitions
are not being detected at all.
ok kettenis@
|
|
ok krw@
|
|
messages are generated when links go down or come up. Works on available
devices, put in tree to encourage wide testing. Enables latest dhclient
changes to work their magic on bge.
Feedback from brad@
ok deraadt@ beck@ reyk@
|
|
in TBI mode for fiber adapters which causes problems for some systems.
Add code to detect when the special settings are necessary which helps
with some blade systems.
From FreeBSD
ok dlg@
|
|
revisions.
From Linux via FreeBSD.
ok dlg@
|
|
comments.
Tested by a number of users with a variety of chipsets.
From FreeBSD
ok kettenis@
|
|
adapters.
Tested by brad@ and johan@ to ensure flow control is still working for
copper adapters.
|
|
counter and out of receive buffer descriptors counter to the network stacks
input errors counter.
Based on a diff from mickey@ though updated for -current and added support
for BCM5705 or newer chipsets from brad@.
Tested it with BCM5704 on i386/amd64, BCM5700 on sparc64, BCM5701/BCM5751M
on i386 and BCM5721/BCM5780 on amd64.
ok krw@ sthen@ dlg@
|
|
fixes input errors on BCM5701/5702X/5704 and may avoid firmware hangs on
some cards if asf/ipmi support is added.
original diff from Oleg Bulyzhin in a freebsd-net post and ported by
mickey; included stats counter changes which don't apply to -current
so they are split out and not included here. "The rest of the diff
looks ok" brad.
tested on 5701/5702X/5703X/5704C/5721 by mpf naddy okan beck sthen
ok beck (before splitting out stats changes), krw, henning.
closes kernel/5699
|
|
Tested by brad@, chl@, sthen@, Johan Mson Lindman and Ian Lindsay <iml04@hampshire.edu>
ok dlg@
|
|
only cleared if there is enough slack space since bge_encap() will
return anyway and IFF_OACTIVE will be set again.
- Only reset the watchdog timer when all packets have been processed.
- Have bge_start() do a fast return if the adapter is not running or
the IFF_OACTIVE flag is set.
Tested by brad@, chl@, krw@, landry@, sthen@ and Johan Mson Lindman.
ok dlg@
|
|
- Add discarded RX packets to input errors for the BCM5705 or newer
chipsets. Unfortunately output errors cannot be added because the
equivalent to the ifOutDiscards register does not exist.
- Replace misleading and wrong BGE_RX_STATS/BGE_TX_STATS with
BGE_MAC_STATS. They were reversed but just happened to work.
From FreeBSD
Tested by chl@, landy@, sthen@, krw@, okan@ and brad@
ok dlg@
|
|
tested by Rodolfo Gouveia and marco@
ok kettenis@ marco@ dlg@
|
|
ok dlg@
|
|
ok deraadt@
|
|
OK dlg.
|
|
the multicast filter is programmed.
IFF_ALLMULTI is for use by the driver and only the driver, meaning that we
have to clear it when its not needed anymore.
now that the ethernet layer counts the number of multicast address ranges
we can check that early to determine if ALLMULTI is needed, rather than
doing the stupid goto allmulti dance as we iterate over the multicast
address list.
the imperfect multicast filter is a 16 byte wide bitfield, so we can use
the "setbit" macro to build it in memory, and then write it to the hardware
as a bus_space region. this simplifies the code a lot and avoids confusing
bitshifts on u_int32_ts to get the bits in the right place.
tested by krw on amd64, naddy on alpha, deraadt on sparc64, and beck on
various bits.
ok beck
|
|
problem also appears to be required on the BCM5754/5787 in the Dell
PowerEdge SC440 and OptiPlex GX745. dlg identified the problem and
came up with the fix.
Tested by dlg@, ckuethe@, reyk@; thanks.
ok dlg@ beck@ reyk@
|