| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The address filter is not affected by link parameter changes,
so its reprogramming can be skipped.
|
|
|
|
|
|
|
|
|
| |
Set up the DMAC filter in one go instead of doing it separately for
unicast and multicast DMACs. This attempts to make the code a little
more readable. The setup should now run a bit faster as well because
it now does fewer register accesses.
Tested on CN5020, CN6120 and CN7130.
|
|
|
|
|
|
| |
OK dlg@, bluhm@
No Opinion mpi@
Not against it claudio@
|
|
|
|
|
|
|
|
|
|
| |
This makes various receive and transmit event counters readable. This
additionally replaces the old, and somewhat unusual, way of updating
error counters in ifp.
Most of the hardware counters are 32 bits wide. Hence the code polls
them periodically and adds the values to 64-bit software counters.
The hardware counters are cleared when read.
|
| |
|
|
|
|
| |
ok dlg@ tobhe@
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
packets. Otherwise, a skosh of traffic may be handled using hardware
default settings. One of the consequences is that packets can end up
into a wrong POW group, causing a panic in cnmac_intr().
Panic reported by and testing help from Janne Johansson
|
|
|
|
| |
in many other NIC drivers. This reduces submission overhead.
|
|
|
|
| |
a layer of abstraction that would complicate upcoming changes.
|
|
|
|
|
| |
This is now possible because each port has a dedicated work queue
interrupt.
|
|
|
|
| |
This also makes the code a bit less noisy to read.
|
| |
|
| |
|
|
|
|
|
| |
the interrupt processing of each work group to one of the available
CPUs. This enables some parallelism in the early stages of packet Rx.
|
|
|
|
|
|
|
|
|
| |
using fdt. This lets the system utilize multiple MDIO controllers.
This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.
OK kettenis@, jmatthew@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
| |
interrupt drives all the cnmac ports.
ok stsp@
|
|
|
|
| |
Asked by and ok stsp@, ok jasper@
|
| |
|
|
|
|
| |
While here, remove unused PIP error code aliases.
|
| |
|
| |
|
|
|
|
| |
for jumbo frame support.
|
| |
|
|
|
|
|
|
|
| |
ports eth[0-3] on 8-port EdgeRouters. Currently, port eth0 maps to
network interface cnmac4, eth1 to cnmac5 etc.
ok dlg@, tested by martijn@
|
|
|
|
|
|
|
| |
driver-specific memory blocks. This lets the cnmac(4) RX path run
without an mbuf ext_free callback.
ok uebayasi@
|
|
|
|
| |
ok mpi@
|
| |
|
|
|
|
| |
ok mpi@
|
| |
|
|
|
|
|
|
|
| |
via unions, and we don't want to make it easy to control the target.
instead an integer index into an array of acceptable functions is used.
drivers using custom functions must register them to receive an index.
ok deraadt
|
|
|
|
| |
Feedback from dlg@, ok mpi@
|
|
|
|
| |
makes the number of buffers visible.
|
|
|
|
| |
early. octeon_eth_recv() will release them in case of packet drop.
|
|
|
|
| |
taken from the packet data pool.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|