| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
m_leadingspace() and m_trailingspace(). Convert all callers to call
directly the functions and remove the defines.
OK krw@, mpi@
|
|
|
|
|
|
|
|
|
|
| |
which is shared with IPMI on HPE DL20 Gen9, its link state became down
a while or never became active again.
diff from FreeBSD through Naoki Fukaumi.
https://svnweb.freebsd.org/base?view=revision&revision=248226
ok mpi dlg
|
|
|
|
| |
ok mpi@ tom@ mikeb@
|
|
|
|
| |
this makes it consistent with the rest of the code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an ifq to transmit a packet is picked by the current traffic
conditioner (ie, priq or hfsc) by providing an index into an array
of ifqs. by default interfaces get a single ifq but can ask for
more using if_attach_queues().
the vast majority of our drivers still think there's a 1:1 mapping
between interfaces and transmit queues, so their if_start routines
take an ifnet pointer instead of a pointer to the ifqueue struct.
instead of changing all the drivers in the tree, drivers can opt
into using an if_qstart routine and setting the IFXF_MPSAFE flag.
the stack provides a compatability wrapper from the new if_qstart
handler to the previous if_start handlers if IFXF_MPSAFE isnt set.
enabling hfsc on an interface configures it to transmit everything
through the first ifq. any other ifqs are left configured as priq,
but unused, when hfsc is enabled.
getting this in now so everyone can kick the tyres.
ok mpi@ visa@ (who provided some tweaks for cnmac).
|
|
|
|
|
|
|
| |
this means packets are consistently counted in one place, unlike the
many and various ways that drivers thought they should do it.
ok mpi@ deraadt@
|
| |
|
|
|
|
|
| |
reviewed by jmatthew@
ok kettenis@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there are two things shared between the network stack and drivers
in the send path: the send queue and the IFF_OACTIVE flag. the send
queue is now protected by a mutex. this diff makes the oactive
functionality mpsafe too.
IFF_OACTIVE is part of if_flags. there are two problems with that.
firstly, if_flags is a short and we dont have any MI atomic operations
to manipulate a short. secondly, while we could make the IFF_OACTIVE
operates mpsafe, all changes to other flags would have to be made
safe at the same time, otherwise a read-modify-write cycle on their
updates could clobber the oactive change.
instead, this moves the oactive mark into struct ifqueue and provides
an API for changing it. there's ifq_set_oactive, ifq_clr_oactive,
and ifq_is_oactive. these are modelled on ifsq_set_oactive,
ifsq_clr_oactive, and ifsq_is_oactive in dragonflybsd.
this diff includes changes to all the drivers manipulating IFF_OACTIVE
to now use the ifsq_{set,clr_is}_oactive API too.
ok kettenis@ mpi@ jmatthew@ deraadt@
|
| |
|
|
|
|
|
|
| |
This has been masked because <sys/srp.h> is pulled unconditionally.
ok dlg@
|
|
|
|
|
|
| |
doesn't fire a few seconds later.
problem reported by Hrvoje Popovski, ok dlg@
|
|
|
|
|
|
|
| |
basically make sure there's enough space in the ring before dequeueing a
packet for it.
ok mpi@ jmatthew@
|
|
|
|
|
|
| |
Because of the VLAN hacks in mpw(4) this file still contains the definition
of "struct ifvlan" which depends on <sys/refcnt.h> which in turns pull
<sys/atomic.h>...
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
depending upon the chip capabilities, use it everywhere instead of hardcoding
one call to bge_writemem_ind() by mistake; this unbreaks the BCM5704 A3 found
on some xserve G5 (RackMac3,1).
Also tested on a few other bge(4) chip models by jmatthew@ (5703X, 5714),
mpi@ (5780), naddy@ (5761) and me (5701).
ok dlg@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make rxeof safe, use a separate ring refill timeout for each ring.
We activate the refill timeout for a ring when it's too empty to receive
packets, which ensures we won't attempt to refill it from interrupt context.
To make txeof safe, remove the list of dma maps and just allocate maps based on
the ring slots occupied by the packet, and use atomic operations to adjust
bge_txcnt. Rework some parts of the txeof and start loops so that we only
adjust bge_txcnt after exiting the loop, and only take actions such as setting
or clearing OACTIVE based on the final value.
tested on 5703, 5714, 5721 by me, 5753 by semarie@, 5761 by naddy@, and
also in snapshots for a while
ok mpi@, dlg@
|
|
|
|
|
|
|
|
| |
specific driver definition.
no logical change.
ok deraadt@
|
|
|
|
|
|
|
| |
Note that pseudo-drivers not using if_input() are not affected by this
conversion.
ok mikeb@, kettenis@, claudio@, dlg@
|
|
|
|
|
|
|
|
| |
BCM5718 Programmers Guide in chapter 7 "Device Control", section
"Device Reset Procedure" states that SEEPROM chips need a larger
timeout than Flash ones.
ok reyk
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
| |
|
|
|
|
|
|
|
|
|
| |
of a single mbuf. this forces us to batch work between the hardware
rx handlers and the stack.
this includes a converstion of bge from ether_input to if_input.
ok claudio@ pelikan@ mpi@
|
|
|
|
| |
some revisions of the chipsets.
|
| |
|
|
|
|
|
|
| |
chipsets.
ok mikeb@ "i think it should go in" dlg@
|
|
|
|
|
| |
index update code from the buf_get success path to the do it all
the time code path. Tested by millert; ok dlg, deraadt
|
|
|
|
|
|
| |
to use BGE_STD_RX_RING_CNT instead of BGE_JUMBO_RX_RING_CNT.
ok dlg@
|
| |
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
|
|
|
|
| |
to using if_rxr.
cut the reporting systat did over to the rxr ioctl.
tested as much as i can on alpha, amd64, and sparc64.
mpi@ has run it on macppc.
ok mpi@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in bge_encap to fail because the dmamap lacks space, not necessarily
because the ring is full. however, bge_encap failure sets the OACTIVE
flag on the interface and keeps the packet at the start of the send
queue.
the next time we try to fill the tx ring we'll try to load the same
packet and fail. an empty tx ring means bge_txeof hasnt got anything
which is where the OACTIVE condition is cleared.
this diff adds handling of fragmented packets via m_defrag.
this might fix the issues landry@ has been complaining about on his
bulk build machines. i can reproduce the above problem in contrived
circumstances here and this diff fixes it, so its going in so landry@
is forced to test it.
|
|
|
|
|
|
|
| |
tag from the received frame. Do not add the tag from the receive
descriptor in this case so that the packet isn't tagged twice.
Matches FreeBSD.
ok brad@
|
|
|
|
|
|
|
|
|
|
| |
It has been reported that the offload support is not working properly with
some of the newer ASICs, specifically BCM57780 and BCM57765. It is unknown
what the issue is whether it could be hw, the driver or the stack; so to
be on the safe side it is being disabled all together until the issue
can be investigated further.
ok deraadt@
|
|
|
|
|
|
|
| |
- Have the BGE_RXLP_LOCSTAT_IFIN_DROPS workaround cover for the BCM5762 ASIC.
From Linux
ok naddy@
|
|
|
|
|
|
|
|
|
| |
and part of it touched upon the link state handling for the BCM5700 B2
revision of chipset. The special casing of the BCM5700 B2 chipset for
link state handling is wrong and doesn't work. This special casing was
removed in rev 1.229.
ok naddy@
|
|
|
|
| |
ok naddy@
|
|
|
|
|
|
|
|
|
|
|
|
| |
of BCM5906 is used to provide a mechanism to control the bootcode execution and
to pick up configuration data stored inside the EEPROM. The bootcode of BCM5906
will check the BGE_VCPU_STATUS_DRV_RESET bit to decide which boot procedure to
choose. Datasheet indicates the VCPU of BCM5906 should set BGE_VCPU_STATUS_DRV_RESET
bit before VCPU reset or global reset.
From FreeBSD
ok naddy@
|
|
|
|
| |
(UDP is broken over both IPv4 and IPv6, verified on BCM5761.)
|
|
|
|
|
|
|
|
|
|
|
| |
chipsets
- Add support for the new BCM5762 ASIC (BCM5725 / BCM5727 / BCM57767)
- Add all of the newer PCI ids
Tested with BCM5719 / BCM5720 and BCM57765 / BCM57766 and a bunch of older
chipsets.
ok naddy@
|
|
|
|
|
|
|
|
| |
exception being the BCM5714 family for now.
Tested on a variety of newer chipsets.
ok sthen@
|
|
|
|
|
| |
drivers) activate functions at DVACT_RESUME time do not need to do
so, since their PHYs are repaired by IFF_UP.
|
|
|
|
|
|
| |
BCM57785.
Tested by Mark Rowland.
|
|
|
|
|
|
|
|
| |
kernel resumes normal (non-cold, able to run processes, etc) operation.
Previously we were relying on specific DVACT_RESUME op's in drivers
creating callback/threads themselves, but that has become too common,
indicating the need for a built-in mechanism.
ok dlg kettenis, tested by a sufficient amount of people
|
| |
|
|
|
|
| |
ok naddy@
|
| |
|
|
|
|
|
| |
don't have to. Just remove these include lines.
Compiled on amd64 i386 sparc64; OK henning@ mikeb@
|