Lines Matching +full:industry +full:- +full:standard
1 .. SPDX-License-Identifier: GPL-2.0
17 The driver supports a range of ENA devices, is link-speed independent
21 Some ENA devices support SR-IOV. This driver is used for both the
22 SR-IOV Physical Function (PF) and Virtual Function (VF) devices.
26 is advertised by the device via the Admin Queue), a dedicated MSI-X
30 The ENA driver supports industry standard TCP/IP offload features such as
31 checksum offload. Receive-side scaling (RSS) is supported for multi-core
39 Some of the ENA devices support a working mode called Low-latency
54 ena_regs_defs.h Definition of ENA PCI memory-mapped (MMIO) registers.
66 - PCIe Configuration Space
67 - Device Registers
68 - Admin Queue (AQ) and Admin Completion Queue (ACQ)
69 - Asynchronous Event Notification Queue (AENQ)
79 vendor-specific extensions. Most of the management operations are
84 - Create I/O submission queue
85 - Create I/O completion queue
86 - Destroy I/O submission queue
87 - Destroy I/O completion queue
88 - Get feature
89 - Set feature
90 - Configure AENQ
91 - Get statistics
96 The Asynchronous Event Notification Queue (AENQ) is a uni-directional
110 Keep-Alive **X**
113 ACQ and AENQ share the same MSI-X vector.
115 Keep-Alive is a special mechanism that allows monitoring the device's health.
116 A Keep-Alive event is delivered by the device every second.
118 statistics. If the keep-alive events aren't delivered as expected the WD resets
133 - **Regular mode:**
138 - **Low Latency Queue (LLQ) mode or "push-mode":**
143 device memory BAR, which is mapped with write-combine capability.
151 The driver supports multi-queue for both Tx and Rx. This has various
154 - Reduced CPU/thread/process contention on a given Ethernet interface.
155 - Cache miss rate on completion is reduced, particularly for data
157 - Increased process-level parallelism when handling received packets.
158 - Increased data cache hit rate, by steering kernel processing of
161 - In hardware interrupt re-direction.
166 The driver assigns a single MSI-X vector per queue pair (for both Tx
167 and Rx directions). The driver assigns an additional dedicated MSI-X vector
171 probes the adapter, and it is de-registered when the adapter is
173 interface of the adapter is opened, and it is de-registered when the
178 ena-mgmnt@pci:<PCI domain:bus:slot.function>
182 <interface name>-Tx-Rx-<queue index>
184 The ENA device operates in auto-mask and auto-clear interrupt
185 modes. That is, once MSI-X is delivered to the host, its Cause bit is
198 parameters are supported by the driver: ``tx-usecs``, ``rx-usecs``
229 per-queue stats) from the device.
236 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-express.html#ena-express-monitor
251 - IPv4 header checksum offload
252 - TCP/UDP over IPv4/IPv6 checksum offloads
257 - The ENA device supports RSS that allows flexible Rx traffic
259 - Toeplitz and CRC32 hash functions are supported.
260 - Different combinations of L2/L3/L4 fields can be configured as
262 - The driver configures RSS settings using the AQ SetFeature command
265 - If the NETIF_F_RXHASH flag is set, the 32-bit result of the hash
268 - The user can provide a hash key, hash function, and configure the
275 --
279 - Maps data buffers (``skb->data`` and frags).
280 - Populates ``ena_buf`` for the push buffer (if the driver and device are
282 - Prepares ENA bufs for the remaining frags.
283 - Allocates a new request ID from the empty ``req_id`` ring. The request
285 out-of-order Tx completions.
286 - Adds the packet to the proper place in the Tx ring.
287 - Calls :code:`ena_com_prepare_tx()`, an ENA communication layer that converts
294 - Writes a doorbell to the ENA device.
295 - When the ENA device finishes sending the packet, a completion
297 - The interrupt handler schedules NAPI.
298 - The :code:`ena_clean_tx_irq()` function is called. This function handles the
309 --
311 - When a packet is received from the ENA device.
312 - The interrupt handler schedules NAPI.
313 - The :code:`ena_clean_rx_irq()` function is called. This function calls
317 - :code:`ena_rx_skb()` checks packet length:
323 - In this way the original data buffer is not passed to the stack
330 - The new SKB is updated with the necessary information (protocol,
335 ------------------------
347 1. Driver allocates page-sized RX buffer and passes it to hardware
348 +----------------------+
350 +----------------------+
355 HW as an RX buffer of size 4KB - 300Bytes = 3796 Bytes
356 +----+--------------------+
358 +----+--------------------+