History log of /barrelfish-master/include/net_queue_manager/net_queue_manager.h
Revision Date Author Comments
# 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>


# a135c2fc 20-Mar-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

network: replacing net_queue_manager with devif as a data path, still WIP so it'll probably break the network stack

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


# 87bf1cc9 24-Jan-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

net: splitting contmng and netbench libraries, simplyfing dependencies

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


# d29f9d41 31-Oct-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

network: replacing the continuation manager with simple queues
e1000: small performance tweaks

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


# ced110dd 26-Feb-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: x86_64: frame_identify returns size in bytes

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


# 878547ec 04-Jun-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

Merge of upstream arrakis code.

This merge includes the following:
* VT-d (IOMMU) support
* VMX (Intel CPU virtualization) support
* Parallel hake build
* MegaRAID driver
* Subways fast packet forwarding application
* Identify physical address of VNodes
* libstorage (VSIC & VSA support)
* POSIX support: poll, uname, nanosleep, fsync, poll, pthread attributes, syslog, wait3, ...
* TenaciousD (persistent data structures: log & queue)
* Hack to skip boot RAM when it's too large
* Arranet: Support for raw IP sockets, interrupts
* Removal of colorful debug output
* MegaRAID blockdevfs support
* Arrakis compile wrappers for Autoconf
* Patches to binutils & GCC to build Arrakis C++ applications

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Signed-off-by: Simon Peter <simpeter@cs.washington.edu>
Signed-off-by: Oleg Godunok <ogodunok@gmail.com>
Signed-off-by: Antoine Kaufmann <antoinek@cs.washington.edu>
Signed-off-by: Jialin Li <lijl@cs.washington.edu>
Signed-off-by: Dalton Black <dalton.m.black@gmail.com>
Signed-off-by: Taesoo Kim <taesoo@uw.edu>


# 6b70fc6a 20-Dec-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

reverted the code to support software filtering for chained incoming packets,
as that code was not working.


# 8b7f1e74 19-Nov-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Network stack is fixed now.
HTTPERF is working on both LMP and UMP communication channels.


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

Software filtering now supports chained packets
This does not yet work together with IP fragmentation
---
include/bfdmuxvm/vm.h | 3 +-
include/net_queue_manager/net_queue_manager.h | 4 +-
lib/bfdmuxvm/vm.c | 138 ++++++++++++++++-----
lib/lwip/src/barrelfish/idc_barrelfish.c | 19 ++-
lib/lwip/src/netif/bfeth.c | 21 +---
lib/net_queue_manager/frag.c | 8 +-
lib/net_queue_manager/net_soft_filters_srv_impl.c | 113 +++++++++++------
lib/net_queue_manager/queue_manager.c | 6 +-
8 files changed, 210 insertions(+), 102 deletions(-)


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

Changed net_queue_manager interface for receiving
buffer chains
---
if/net_queue_manager.if | 3 +-
include/net_interfaces/net_interfaces.h | 2 +-
include/net_queue_manager/net_queue_manager.h | 7 ++-
lib/lwip/src/barrelfish/idc_barrelfish.c | 8 +--
lib/net_interfaces/interface_raw.c | 5 +-
lib/net_queue_manager/net_soft_filters_srv_impl.c | 12 +++--
lib/net_queue_manager/queue_manager.c | 58 +++++++++++----------
lib/net_queue_manager/queue_manager_local.h | 4 +-
usr/bench/net_latency/elb/benchmark.c | 3 +-
usr/drivers/e1000/e1000n.c | 5 +-
usr/drivers/e10k/e10k_qdriver.c | 23 ++++++--
usr/drivers/rtl8029/rtl8029.c | 5 +-
usr/vmkitmon/pci_vmkitmon_eth.c | 5 +-
13 files changed, 90 insertions(+), 50 deletions(-)


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

Changed net_queue_manager interface to pass
opaque-value per buffer for tx
This simplifies the handling of buffer chains
---
include/net_queue_manager/net_queue_manager.h | 4 ++--
lib/net_queue_manager/net_soft_filters_srv_impl.c | 4 ++++
lib/net_queue_manager/queue_manager.c | 4 +++-
usr/drivers/e1000/e1000n.c | 5 ++---
usr/drivers/e10k/e10k_qdriver.c | 9 ++++-----
usr/drivers/lo/lo_qdriver.c | 13 ++++++++-----
usr/drivers/rtl8029/rtl8029.c | 7 ++++---
usr/vmkitmon/pci_vmkitmon_eth.c | 4 ++--
8 files changed, 29 insertions(+), 21 deletions(-)


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

Carry flags with network packets sent and received
Intended for coordinating features like hardware checksumming etc.
between the driver and the network stack.
---
if/net_queue_manager.if | 5 ++-
include/lwip/pbuf.h | 3 ++
include/net_interfaces/flags.h | 18 +++++++++
include/net_interfaces/net_interfaces.h | 6 ++-
include/net_queue_manager/net_queue_manager.h | 12 ++++--
lib/lwip/src/barrelfish/idc_barrelfish.c | 9 +++--
lib/lwip/src/core/pbuf.c | 2 +
lib/net_interfaces/interface_raw.c | 21 ++++++----
lib/net_queue_manager/frag.c | 17 ++++----
lib/net_queue_manager/net_soft_filters_srv_impl.c | 44 +++++++++++----------
lib/net_queue_manager/queue_manager.c | 26 +++++++-----
lib/net_queue_manager/queue_manager_local.h | 3 +-
usr/bench/net_latency/elb/benchmark.c | 6 +--
usr/drivers/e1000/e1000n.c | 2 +-
usr/drivers/e10k/e10k_qdriver.c | 2 +-
usr/drivers/lo/lo_qdriver.c | 3 +-
usr/drivers/rtl8029/rtl8029.c | 3 +-
usr/vmkitmon/pci_vmkitmon_eth.c | 2 +-
18 files changed, 118 insertions(+), 66 deletions(-)
create mode 100644 include/net_interfaces/flags.h


# 2868618c 06-Jun-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

partially working version when everything is running on default core.
The current execution is **very** slow as everything is in the same core,
leading to large number of context switches.


# 97bac994 23-Apr-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

partially working version


# 60c50b5d 29-Apr-2012 pravin shindep@inf.ethz.ch <pravin shindep@inf.ethz.ch>

modified loopback driver to work with ump based interface.
Also removed all the code from queue_manager which was using bulk_transport


# 6d834aae 29-Apr-2012 pravin shindep@inf.ethz.ch <pravin shindep@inf.ethz.ch>

Added local loopback device


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

Extended queue manager library interface to allow for queue termination
This is not implemented yet, but it will be used in the ethernet latency
benchmark, so multiple runs can be done without reboots, might also be
useful in the future when queues are handled more dynamically.
---
include/net_queue_manager/net_queue_manager.h | 7 +++++--
lib/net_queue_manager/ethernet_latency_benchmark.c | 3 +++
lib/net_queue_manager/queue_manager.c | 1 +
usr/drivers/e1000/e1000n.c | 3 ++-
usr/drivers/e10k/e10k_qdriver.c | 13 ++++++++++---
usr/drivers/rtl8029/rtl8029.c | 2 +-
6 files changed, 22 insertions(+), 7 deletions(-)


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

Remove waiting_for_netd() from public queue manager interface
This stuff really has to be handled internally and transparent for the
driver.
---
include/net_queue_manager/net_queue_manager.h | 2 --
lib/net_queue_manager/queue_manager_local.h | 1 +
usr/drivers/e10k/e10k_qdriver.c | 5 -----
3 files changed, 1 insertions(+), 7 deletions(-)


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

Added ethersrv_argument() call for net_queue_manager interface
This method is inteded to be called by the driver on all command line
arguments it does parse itself. The idea is that driver independant
stuff like memory affinity etc. can be done in the library, also this
might be useful in connection with benchmarks.
---
include/net_queue_manager/net_queue_manager.h | 6 +++++
lib/net_queue_manager/queue_manager.c | 4 +++
usr/drivers/e1000/e1000n.c | 28 +++++++++---------------
usr/drivers/e10k/e10k_qdriver.c | 5 ++-
usr/drivers/rtl8029/rtl8029.c | 6 +++++
5 files changed, 30 insertions(+), 19 deletions(-)


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

Simplified TX path of net_queue_manager interface to driver
This is an attempt to simplify the driver interface and push the
complexity into the library, more precisely it removes the need for the
driver to know about the bulk transfer mechanism. This also simplifies
the future implementation of benchmarks using this interface directly.
---
include/net_queue_manager/net_queue_manager.h | 13 ++++-
lib/net_queue_manager/queue_manager.c | 52 +++++++++++++++++-
usr/drivers/e1000/e1000n.c | 69 +++++++------------------
usr/drivers/e10k/e10k_qdriver.c | 52 +++---------------
usr/drivers/rtl8029/rtl8029.c | 49 +++++-------------
5 files changed, 100 insertions(+), 135 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(-)


# 2a5c477d 02-Mar-2012 pravin shindep@inf.ethz.ch <pravin shindep@inf.ethz.ch>

Renamed interface ether_control to net_soft_filters.
Also, rearranged the code and renamed files to match with new interfaces.
Modified the hake/RulesDefs.h to simplify the dependency capturing for
net_queue_manager related code.

--HG--
rename : if/ether_control.if => if/net_soft_filters.if
rename : include/ethersrv/ethersrv.h => include/net_queue_manager/net_queue_manager.h
rename : lib/ethersrv/Hakefile => lib/net_queue_manager/Hakefile
rename : lib/ethersrv/ethersrv_support.c => lib/net_queue_manager/QM_benchmark.c
rename : lib/ethersrv/ethersrv_support.h => lib/net_queue_manager/QM_benchmark.h
rename : lib/ethersrv/frag.c => lib/net_queue_manager/frag.c
rename : lib/ethersrv/ethersrv_ctl.c => lib/net_queue_manager/net_soft_filters_impl.c
rename : lib/ethersrv/ethersrv.c => lib/net_queue_manager/queue_manager.c
rename : lib/ethersrv/ethersrv_debug.h => lib/net_queue_manager/queue_manager_debug.h
rename : lib/ethersrv/ethersrv_local.h => lib/net_queue_manager/queue_manager_local.h