History log of /barrelfish-master/usr/drivers/e10k/e10k_queue.h
Revision Date Author Comments
# ef1c9a7f 22-Jul-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

armv8: enable compilations of various network drivers

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 9bd8d1d5 03-Apr-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 5d059064 14-Dec-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: enabling advanced descriptors again

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 35ad9455 16-Aug-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: added missing memory barrier after writing descriptor

Seems to be that the Linux driver does memory barriers
and we did not. Might have been the reason for some
flaky behaviour

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# a3d6a0a3 14-Aug-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: added benchmarking queue more detailed

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 17bd5240 14-Jun-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: create correct net_filter interface endpoint (LMP/UMP)

Additionally some cleanup of msix variables that are no longer use

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 53ed165b 07-Jun-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: correctly compute VF number to queue number

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 7da53679 04-Jun-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: removed #define from queue header file

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 72e07594 03-Jun-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: fixed e10k_queue (merge was wrong)

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 217064b2 29-Mar-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: fixed descriptor ring buffer length

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# b1cf07f5 27-Mar-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: changed memory allocation to new iommu framework

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 922186b9 12-Mar-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: moving devif backend to driver folder

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 1637cfd2 12-Mar-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

e10k: driver remove unused files

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 69b41b96 18-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

Squashed changes of e89aa91..6ca6bdf (master as of 2016-04-18).

Take this commit out when merging

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 587a3ca3 09-Mar-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

Adding an option to warn about comparisions that are always true or false.

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# dfddb708 26-Nov-2014 Timothy Roscoe <troscoe@inf.ethz.ch>

Ensure all Mackerel files are included explicitly from dev/


# de906f69 28-Feb-2014 Simon Peter <simpeter@cs.washington.edu>

The Arrakis backport to Barrelfish.

Here are the macro changes:
* Made lwIP an optional network stack
* Moved lwIP headers out of the general include directory
* Parallel hake
* CPU-virtualized ("arrakis") applications
* libarrakis is a new libOS that uses CPU features directly
* arrakismon is a new monitor for Arrakis apps
* QEMU Multiboot support instead of GRUB (enables KVM)
* e10k virtual function driver
* Software virtual->physical mapping (substitutes IOMMU)
* To be replaced soon with an Intel IOMMU driver
* Better GDB and stack tracing support
* New POSIX support
* pthreads, inet_*(), usleep(), syslimits.h, sigaction(), mman.h,
* resource.h, sendmsg(), recvmsg(), mkfifo(), syslog.h, sysexits.h,
* fcntl(), getegid(), getgid(), pipe(), rlimits
* epoll support
* Separate waitset for interrupts
* Thread TLS key and ID support
* Moved PCRE headers to include/, where they usually are
* Intel performance counters support
* Handle boot-time RAM overflow (for machines with >=64GB RAM)
* Arranet network stack
* Fix for build of lib/barrelfish/arch/x86_64/dispatch.c without -O2
* New comandline options to pci daemon:
* maxvfs=x, x is number of virtual functions to create for each
* device supporting it
* skb_bridge_program=x, x is SKB bridge programming script to use
* bridge_bios is a script that uses the BIOS pre-set values, like Linux
* Correctly build machine-optimized newlib parts
* Library versions of e1000 and e10k drivers
* Support for virtualization in e10k driver
* e10k datacenter control plane daemon
* Modified hellotest to be both a Barrelfish and an Arrakis application

I've decided not to include the lwIP 1.4.1 code, as the port is
not finished and who wants to use lwIP anyway with the Arrakis
network stack and mTCP being released soon. If you want this,
let me know (it's hugely superior to lwIP 1.3.1).

I've made the code backwards-compatible with Barrelfish. The
default should do what Barrelfish does. One can specify
commandline options to the PCI daemon and e10k driver to
configure I/O virtualization and the optional arrakismon allows
loading CPU-virtualized "arrakis" programs.

There are more pending changes, such as support for hardware
rate limiting and weighted round robin packet scheduling, but
I'd like these to go in first, before I push the rest.


# 4f50b8e5 24-Jun-2013 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k, lwip: Implement hardware checksum verification
for IP/TCP/UDP
---
devices/e10k_q.dev | 53 ++++++++++++++++++++++++++++++++++++---
include/net_interfaces/flags.h | 11 ++++++++
lib/lwip/src/core/ipv4/ip.c | 4 ++-
lib/lwip/src/core/tcp_in.c | 5 +++-
lib/lwip/src/core/udp.c | 4 ++-
usr/drivers/e10k/e10k_qdriver.c | 8 +++---
usr/drivers/e10k/e10k_queue.h | 45 +++++++++++++++++++++++++++++++--
7 files changed, 118 insertions(+), 12 deletions(-)


# 979a7e1b 24-Jun-2013 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: Implement TX checksum offload for IP,TCP,UDP
Also modifies lwip to actually use these offloads (currently hardcoded)
---
include/ipv4/lwip/inet_chksum.h | 2 -
include/net_interfaces/flags.h | 2 +
lib/lwip/src/core/ipv4/icmp.c | 3 +-
lib/lwip/src/core/ipv4/inet_chksum.c | 3 --
lib/lwip/src/core/ipv4/ip.c | 3 +-
lib/lwip/src/core/tcp_out.c | 14 +++++--
lib/lwip/src/core/udp.c | 5 ++-
usr/drivers/e10k/e10k_qdriver.c | 52 ++++++++++++++++++++++++-
usr/drivers/e10k/e10k_queue.h | 70 ++++++++++++++++++++++++++++------
9 files changed, 129 insertions(+), 25 deletions(-)


# f4664267 24-Jun-2013 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: First (broken) attempt at implementing driver
side of RSC
If RSC is enabled the RX queue gets somehow stuck (skips a descriptor).
---
devices/e10k.dev | 5 +-
devices/e10k_q.dev | 5 +-
if/e10k.if | 3 +-
usr/drivers/e10k/e10k_cdriver.c | 38 ++++++++++++---
usr/drivers/e10k/e10k_qdriver.c | 31 +++++++++----
usr/drivers/e10k/e10k_queue.h | 97 ++++++++++++++++++++++++++++++++++-----
6 files changed, 148 insertions(+), 31 deletions(-)


# 62d9f03b 24-Jun-2013 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: First (broken) attempt at implementing driver
side of RSC
If RSC is enabled the RX queue gets somehow stuck (skips a descriptor).
---
devices/e10k.dev | 5 +-
devices/e10k_q.dev | 5 +-
if/e10k.if | 3 +-
usr/drivers/e10k/e10k_cdriver.c | 38 ++++++++++++---
usr/drivers/e10k/e10k_qdriver.c | 31 +++++++++----
usr/drivers/e10k/e10k_queue.h | 97 ++++++++++++++++++++++++++++++++++-----
6 files changed, 148 insertions(+), 31 deletions(-)


# 3b6338a3 24-Jun-2013 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: Modified driver to use advanced descriptor
format
---
devices/e10k_q.dev | 124 +++++++++++++++++++++++++++++++++++++--
usr/drivers/e10k/e10k_cdriver.c | 2 +-
usr/drivers/e10k/e10k_qdriver.c | 9 ++-
usr/drivers/e10k/e10k_queue.h | 55 +++++++++--------
usr/vmkitmon/pci_ethernet.c | 12 ++--
5 files changed, 160 insertions(+), 42 deletions(-)


# 5d0be51a 24-Jun-2013 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: Modified driver to use advanced descriptor
format
---
devices/e10k_q.dev | 124 +++++++++++++++++++++++++++++++++++++--
usr/drivers/e10k/e10k_cdriver.c | 2 +-
usr/drivers/e10k/e10k_qdriver.c | 9 ++-
usr/drivers/e10k/e10k_queue.h | 55 +++++++++--------
usr/vmkitmon/pci_ethernet.c | 12 ++--
5 files changed, 160 insertions(+), 42 deletions(-)


# 179d0aae 16-Apr-2012 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: Added support for TX head index write back
---
if/e10k.if | 1 +
usr/drivers/e10k/e10k_cdriver.c | 16 +++++++++++++++-
usr/drivers/e10k/e10k_qdriver.c | 31 +++++++++++++++++++++++++------
usr/drivers/e10k/e10k_queue.h | 17 ++++++++++++-----
4 files changed, 53 insertions(+), 12 deletions(-)


# d601b6c2 16-Apr-2012 Antoine Kaufmann <antoinek@student.ethz.ch>

e10k: Fix e10k_queue_free_txslots to provide the correct value
This function is used to implement the tx_free_slots call back for the
queue manager library (which is not used atm so it does not really
matter, but after my update of the TX interface it will be needed).
---
usr/drivers/e10k/e10k_queue.h | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)


# 5c08ea28 16-Apr-2012 Antoine Kaufmann <antoinek@student.ethz.ch>

Moved managing of RX buffers to net_queue_manager library
This step is necessary for hardware filtering, since there we need to
tell the card directly the addresses of the buffers in the bulk transfer
ring. But with SW filtering the library only allocates some intermediate
buffers, from where the packet is then copied to the right buffer.
---
include/net_queue_manager/net_queue_manager.h | 39 +++++++-
lib/net_queue_manager/net_soft_filters_srv_impl.c | 94 +++++++++++++++++-
lib/net_queue_manager/queue_manager.c | 13 ++-
lib/net_queue_manager/queue_manager_local.h | 8 ++-
usr/drivers/e1000/e1000n.c | 105 ++++-----------------
usr/drivers/e10k/e10k.c | 51 ++++------
usr/drivers/e10k/e10k_queue.h | 15 +++-
usr/drivers/rtl8029/rtl8029.c | 61 +++++++++----
8 files changed, 236 insertions(+), 150 deletions(-)


# 5f573658 27-Dec-2011 Antoine Kaufmann <antoinek@student.ethz.ch>

Initial commit of e10k driver (Intel 82599 10GbE Nic)