Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ENA(4)		       FreeBSD Kernel Interfaces Manual			ENA(4)

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

SYNOPSIS
     To	compile	this driver into the kernel, place the following line in the
     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 Ad-
     min 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	pro-
     cessing by	providing multiple Tx/Rx queue pairs (the maximum number is
     advertised	by the device via the Admin Queue), a dedicated	MSI-X inter-
     rupt vector per Tx/Rx queue pair, and CPU cacheline optimized data	place-
     ment.

     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 im-
     plemented for driver in future releases.

HARDWARE
     Supported PCI vendor ID/device IDs:

     +o	 1d0f:0ec2 - ENA PF
     +o	 1d0f:1ec2 - ENA PF with LLQ support
     +o	 1d0f:ec20 - ENA VF
     +o	 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 old and it is not	supported by the
     driver.

     ena%d: Invalid dma	width value %d

     The controller is able to request dma transaction 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	con-
     figured.
     Driver will not be	attached.

     ena%d: VLAN is in use, detach first

     VLANs are being used when trying to detach	the driver.
     VLANs must	be detached first and then detach routine have to 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.
     The device	will work with reduced 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, please 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.

FreeBSD	13.0			August 16, 2017			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | HARDWARE | DIAGNOSTICS | SUPPORT | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ena&sektion=4&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help