Command Section
ENA(4)                 FreeBSD Kernel Interfaces Manual                 ENA(4)

     ena - FreeBSD kernel driver for Elastic Network Adapter (ENA) family

     To compile this driver into the kernel, place the following line in your
     kernel configuration file:

           device ena

     Alternatively, to load the driver as a module at boot time, place the
     following line in loader.conf(5):


     The ENA is a networking interface designed to make good use of modern CPU
     features and system architectures.

     The ENA device exposes a lightweight management interface with a minimal
     set of memory mapped registers and extendable command set through an
     Admin Queue.

     The driver supports a range of ENA devices, is link-speed independent
     (i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has a
     negotiated and extendable feature set.

     Some ENA devices support SR-IOV. This driver is used for both the SR-IOV
     Physical Function (PF) and Virtual Function (VF) devices.

     The ENA devices enable high speed and low overhead network traffic
     processing by providing multiple Tx/Rx queue pairs (the maximum number is
     advertised by the device via the Admin Queue), a dedicated MSI-X
     interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized data

     The ena driver supports industry standard TCP/IP offload features such as
     checksum offload and TCP transmit segmentation offload (TSO).  Receive-
     side scaling (RSS) is supported for multi-core scaling.

     The ena driver and its corresponding devices implement health monitoring
     mechanisms such as watchdog, enabling the device and driver to recover in
     a manner transparent to the application, as well as debug logs.

     Some of the ENA devices support a working mode called Low-latency Queue
     (LLQ), which saves several more microseconds. This feature will be
     implemented for driver in future releases.

     Supported PCI vendor ID/device IDs:

        1d0f:0ec2 - ENA PF
        1d0f:1ec2 - ENA PF with LLQ support
        1d0f:ec20 - ENA VF
        1d0f:ec21 - ENA VF with LLQ support

   Device initialization phase:
     ena%d: failed to init mmio read less

     Error occured during initialization of the mmio register read request.

     ena%d: Can not reset device

     Device could not be reset; device may not be responding or is already
     during reset.

     ena%d: device version is too low

     Version of the controller is too low and it is not supported by the

     ena%d: Invalid dma width value %d

     The controller is able to request dma transcation width. Device stopped
     responding or it demanded invalid value.

     ena%d: Can not initialize ena admin queue with device

     Initialization of the Admin Queue failed; device may not be responding or
     there was a problem with initialization of the resources.

     ena%d: Cannot get attribute for ena device rc: %d

     Failed to get attributes of the device from the controller.

     ena%d: Cannot configure aenq groups rc: %d

     Errors occured when trying to configure AENQ groups.

   Driver initialisation/shutdown phase:
     ena%d: PCI resource allocation failed!
     ena%d: allocating ena_dev failed
     ena%d: failed to pmap registers bar
     ena%d: Error while setting up bufring
     ena%d: Error with initialization of IO rings
     ena%d: can not allocate ifnet structure
     ena%d: Error with network interface setup
     ena%d: Failed to enable and set the admin interrupts
     ena%d: Failed to allocate %d, vectors %d
     ena%d: Failed to enable MSIX, vectors %d rc %d
     ena%d: Error with MSI-X enablement
     ena%d: could not allocate irq vector: %d
     ena%d: Unable to allocate bus resource: registers

     Resource allocation failed when initializing the device; driver will not
     be attached.

     ena%d: ENA device init failed (err: %d)

     Device initialization failed; driver will not be attached.

     ena%d: could not activate irq vector: %d

     Error occured when trying to activate interrupt vectors for Admin Queue.

     ena%d: failed to register interrupt handler for irq %ju: %d

     Error occured when trying to register Admin Queue interrupt handler.

     ena%d: Cannot setup mgmnt queue intr

     Error occured during configuration of the Admin Queue interrupts.

     ena%d: Enable MSI-X failed

     Configuration of the MSI-X for Admin Queue failed; there could be lack of
     resources or interrupts could not have been configured; driver will not
     be attached.

     ena%d: VLAN is in use, detach first

     VLANs are being used when trying to detach the driver; VLANs should be
     detached first and then detach routine should be called again.

     ena%d: Unmapped RX DMA tag associations
     ena%d: Unmapped TX DMA tag associations

     Error occured when trying to destroy RX/TX DMA tag.

     ena%d: Cannot init RSS
     ena%d: Cannot fill indirect table
     ena%d: Cannot fill indirect table
     ena%d: Cannot fill hash function
     ena%d: Cannot fill hash control
     ena%d: WARNING: RSS was not properly initialized, it will affect

     Error occured during initialization of one of RSS resources; device is
     still going to work but it will affect performance because all RX packets
     will be passed to queue 0 and there will be no hash information.

     ena%d: failed to tear down irq: %d
     ena%d: dev has no parent while releasing res for irq: %d  Release of the
     interrupts failed.

   Additional diagnostic:
     ena%d: Cannot get attribute for ena device

     This message appears when trying to change MTU and driver is unable to
     get attributes from the device.

     ena%d: Invalid MTU setting. new_mtu: %d

     Requested MTU value is not supported and will not be set.

     ena%d: keep alive watchdog timeout

     Device stopped responding and will be reset.

     ena%d: Found a Tx that wasn't completed on time, qid %d, index %d.

     Packet was pushed to the NIC but not sent within given time limit; it may
     be caused by hang of the IO queue.

     ena%d: The number of lost tx completion is aboce the threshold (%d > %d).
     Reset the device

     If too many Tx wasn't completed on time the device is going to be reset;
     it may be caused by hanged queue or device.

     ena%d: trigger reset is on

     Device will be reset; reset is triggered either by watchdog or if too
     many TX packets were not completed on time.

     ena%d: invalid value recvd

     Link status received from the device in the AENQ handler is invalid.

     ena%d: Allocation for Tx Queue %u failed
     ena%d: Allocation for Rx Queue %u failed
     ena%d: Unable to create Rx DMA map for buffer %d
     ena%d: Failed to create io TX queue #%d rc: %d
     ena%d: Failed to get TX queue handlers. TX queue num %d rc: %d
     ena%d: Failed to create io RX queue[%d] rc: %d
     ena%d: Failed to get RX queue handlers. RX queue num %d rc: %d
     ena%d: failed to request irq
     ena%d: could not allocate irq vector: %d
     ena%d: failed to register interrupt handler for irq %ju: %d

     IO resources initialization failed. Interface will not be brought up.

     ena%d: LRO[%d] Initialization failed!

     Initialization of the LRO for the RX ring failed.

     ena%d: failed to alloc buffer for rx queue
     ena%d: failed to add buffer for rx queue %d
     ena%d: refilled rx queue %d with %d pages only

     Allocation of resources used on RX path failed; if happened during
     initialization of the IO queue, the interface will not be brought up.

     ena%d: ioctl promisc/allmulti

     IOCTL request for the device to work in promiscuous/allmulti mode; see
     ifconfig(8) for more details.

     ena%d: too many fragments. Last fragment: %d!

     Packet with unsupported number of segments was queued for sending to the
     device; packet will be dropped.

     If an issue is identified with the released source code with a supported
     adapter email the specific information related to the issue to
     <[email protected]> and <[email protected]>.

     vlan(4), ifconfig(8)

     The ena driver was written by Semihalf.

FreeBSD 11.1-RELEASE-p4           May 4, 2017          FreeBSD 11.1-RELEASE-p4
Command Section