Provided by: freebsd-manpages_12.0-1_all bug

NAME

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

SYNOPSIS

       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):

             if_ena_load="YES"

DESCRIPTION

       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 placement.

       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.

HARDWARE

       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

DIAGNOSTICS

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

       Error occurred 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 driver.

       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 occurred 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 occurred when trying to activate interrupt vectors for Admin Queue.

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

       Error occurred when trying to register Admin Queue interrupt handler.

       ena%d: Cannot setup mgmnt queue intr

       Error occurred 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 occurred 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 bandwidth

       Error  occurred  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.

SUPPORT

       If an issue is identified with the released source code with  a  supported  adapter  email  the  specific
       information related to the issue to ⟨mk@semihalf.com⟩ and ⟨mw@semihalf.com⟩.

SEE ALSO

       vlan(4), ifconfig(8)

AUTHORS

       The ena driver was written by Semihalf.

Debian                                            May 04, 2017                                            ENA(4)