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

  
 
  

home | help
rte_rawdev_pmd.h(3)		      DPDK		     rte_rawdev_pmd.h(3)

NAME
     rte_rawdev_pmd.h

SYNOPSIS
     #include <string.h>
     #include <dev_driver.h>
     #include <rte_malloc.h>
     #include <rte_log.h>
     #include <rte_common.h>
     #include 'rte_rawdev.h'

   Data Structures
     struct rte_rawdev_ops

   Typedefs
     typedef  int(* rawdev_info_get_t) (struct rte_rawdev *dev, rte_rawdev_obj_t
	 dev_info, size_t dev_private_size)
     typedef  int(*   rawdev_configure_t)   (const   struct   rte_rawdev   *dev,
	 rte_rawdev_obj_t config, size_t config_size)
     typedef int(* rawdev_start_t) (struct rte_rawdev *dev)
     typedef void(* rawdev_stop_t) (struct rte_rawdev *dev)
     typedef int(* rawdev_close_t) (struct rte_rawdev *dev)
     typedef int(* rawdev_reset_t) (struct rte_rawdev *dev)
     typedef  int(*  rawdev_queue_conf_get_t)  (struct rte_rawdev *dev, uint16_t
	 queue_id, rte_rawdev_obj_t queue_conf, size_t queue_conf_size)
     typedef  int(*  rawdev_queue_setup_t)  (struct  rte_rawdev  *dev,	uint16_t
	 queue_id, rte_rawdev_obj_t queue_conf, size_t queue_conf_size)
     typedef  int(*  rawdev_queue_release_t)  (struct  rte_rawdev *dev, uint16_t
	 queue_id)
     typedef uint16_t(* rawdev_queue_count_t) (struct rte_rawdev *dev)
     typedef  int(*  rawdev_enqueue_bufs_t)  (struct  rte_rawdev  *dev,   struct
	 rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context)
     typedef   int(*  rawdev_dequeue_bufs_t)  (struct  rte_rawdev  *dev,  struct
	 rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context)
     typedef int(* rawdev_dump_t) (struct rte_rawdev *dev, FILE *f)
     typedef  int(*  rawdev_get_attr_t)  (struct  rte_rawdev  *dev,  const  char
	 *attr_name, uint64_t *attr_value)
     typedef  int(*  rawdev_set_attr_t)  (struct  rte_rawdev  *dev,  const  char
	 *attr_name, const uint64_t attr_value)
     typedef int(* rawdev_xstats_get_t) (const struct rte_rawdev *dev, const un-
	 signed int ids[], uint64_t values[], unsigned int n)
     typedef  int(*  rawdev_xstats_reset_t)  (struct  rte_rawdev   *dev,   const
	 uint32_t ids[], uint32_t nb_ids)
     typedef  int(*  rawdev_xstats_get_names_t)  (const  struct rte_rawdev *dev,
	 struct rte_rawdev_xstats_name *xstats_names, unsigned int size)
     typedef uint64_t(* rawdev_xstats_get_by_name_t)  (const  struct  rte_rawdev
	 *dev, const char *name, unsigned int *id)
     typedef   int(*   rawdev_firmware_status_get_t)  (struct  rte_rawdev  *dev,
	 rte_rawdev_obj_t status_info)
     typedef  int(*  rawdev_firmware_version_get_t)  (struct  rte_rawdev   *dev,
	 rte_rawdev_obj_t version_info)
     typedef	int(*	 rawdev_firmware_load_t)    (struct   rte_rawdev   *dev,
	 rte_rawdev_obj_t firmware_buf)
     typedef int(* rawdev_firmware_unload_t) (struct rte_rawdev *dev)
     typedef int(* rawdev_selftest_t) (uint16_t dev_id)

   Functions
     static struct rte_rawdev * rte_rawdev_pmd_get_named_dev (const char *name)
     static struct rte_rawdev * rte_rawdev_pmd_get_dev (uint8_t dev_id)
     static unsigned rte_rawdev_pmd_is_valid_dev (uint8_t dev_id)
     struct rte_rawdev	*  rte_rawdev_pmd_allocate  (const  char  *name,  size_t
	 dev_private_size, int socket_id)
     int rte_rawdev_pmd_release (struct rte_rawdev *rawdev)
     struct  rte_rawdev * rte_rawdev_pmd_init (const char *name, size_t dev_pri-
	 vate_size, int socket_id)
     int rte_rawdev_pmd_uninit (const char *name)

Detailed Description
     RTE RAW PMD APIs

     Note
	 Driver facing APIs for a raw device. These are not  to  be  called  di-
	 rectly by any application.

     Definition in file rte_rawdev_pmd.h.

Typedef Documentation
   typedef  int(*  rawdev_info_get_t)  (struct rte_rawdev *dev, rte_rawdev_obj_t
     dev_info, size_t dev_private_size)
     Definitions of all functions exported  by	a  driver  through  the  generic
     structure	of  type rawdev_ops supplied in the rte_rawdev structure associ-
     ated with a device. Get device information of a device.

     Parameters
	 dev Raw device pointer
	 dev_info Raw device information structure
	 dev_private_size  The	 size	of   the   structure   pointed	 to   by
	 dev_info->dev_private

     Returns
	 Returns 0 on success, negative error code on failure

     Definition at line 172 of file rte_rawdev_pmd.h.

   typedef    int(*   rawdev_configure_t)   (const   struct   rte_rawdev   *dev,
     rte_rawdev_obj_t config, size_t config_size)
     Configure a device.

     Parameters
	 dev Raw device pointer
	 config Void object containing device specific configuration
	 config_size Size of the memory allocated for the configuration

     Returns
	 Returns 0 on success

     Definition at line 189 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_start_t) (struct rte_rawdev *dev)
     Start a configured device.

     Parameters
	 dev Raw device pointer

     Returns
	 Returns 0 on success

     Definition at line 202 of file rte_rawdev_pmd.h.

   typedef void(* rawdev_stop_t) (struct rte_rawdev *dev)
     Stop a configured device.

     Parameters
	 dev Raw device pointer

     Definition at line 210 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_close_t) (struct rte_rawdev *dev)
     Close a configured device.

     Parameters
	 dev Raw device pointer

     Returns

	 * 0 on success

	 * (-EAGAIN) if can't close as device is busy

     Definition at line 222 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_reset_t) (struct rte_rawdev *dev)
     Reset a configured device.

     Parameters
	 dev Raw device pointer

     Returns
	 0 for success !0 for failure

     Definition at line 233 of file rte_rawdev_pmd.h.

   typedef int(*  rawdev_queue_conf_get_t)  (struct  rte_rawdev  *dev,	uint16_t
     queue_id, rte_rawdev_obj_t queue_conf, size_t queue_conf_size)
     Retrieve the current raw queue configuration.

     Parameters
	 dev Raw device pointer
	 queue_id Raw device queue index
	 queue_conf Raw device queue configuration structure
	 queue_conf_size Size of the memory allocated for the configuration

     Returns
	 Returns 0 on success, negative errno on failure

     Definition at line 250 of file rte_rawdev_pmd.h.

   typedef   int(*   rawdev_queue_setup_t)  (struct  rte_rawdev  *dev,	uint16_t
     queue_id, rte_rawdev_obj_t queue_conf, size_t queue_conf_size)
     Setup an raw queue.

     Parameters
	 dev Raw device pointer
	 queue_id Rawqueue index
	 queue_conf Rawqueue configuration structure
	 queue_conf_size Size of the memory allocated for the configuration

     Returns
	 Returns 0 on success.

     Definition at line 270 of file rte_rawdev_pmd.h.

   typedef  int(*  rawdev_queue_release_t)  (struct  rte_rawdev  *dev,	uint16_t
     queue_id)
     Release resources allocated by given raw queue.

     Parameters
	 dev Raw device pointer
	 queue_id Raw queue index

     Definition at line 283 of file rte_rawdev_pmd.h.

   typedef uint16_t(* rawdev_queue_count_t) (struct rte_rawdev *dev)
     Get the count of number of queues configured on this device.

     Another way to fetch this information is to fetch the device configuration.
     But,  that  assumes that the device configuration managed by the driver has
     that kind of information.

     This function helps in getting queue count supported, independently. It can
     help in cases where iterator needs to be implemented.

     Parameters
	 dev Raw device pointer

     Returns
	 Number of queues; 0 is assumed to be a valid response.

     Definition at line 301 of file rte_rawdev_pmd.h.

   typedef  int(*  rawdev_enqueue_bufs_t)  (struct   rte_rawdev   *dev,   struct
     rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context)
     Enqueue an array of raw buffers to the device.

     Buffer  being  used is opaque - it can be obtained from mempool or from any
     other source. Interpretation of buffer is responsibility of driver.

     Parameters
	 dev Raw device pointer
	 buffers array of buffers
	 count number of buffers passed
	 context an opaque object representing context of the call; for example,
	 an application can pass information about the queues on  which  enqueue
	 needs	to  be done. Or, the enqueue operation might be passed reference
	 to an object containing a callback (agreed upon between application and
	 driver).

     Returns
	 >=0 Count of buffers successfully enqueued (0: no buffers enqueued)  <0
	 Error count in case of error

     Definition at line 325 of file rte_rawdev_pmd.h.

   typedef   int(*   rawdev_dequeue_bufs_t)   (struct  rte_rawdev  *dev,  struct
     rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context)
     Dequeue an array of raw buffers from the device.

     Parameters
	 dev Raw device pointer
	 buffers array of buffers
	 count Max buffers expected to be dequeued
	 context an opaque object representing context of  the	call.  Based  on
	 this  object, the application and driver can coordinate for dequeue op-
	 eration involving agreed upon semantics. For  example,  queue	informa-
	 tion/id on which Dequeue needs to be performed.

     Returns
	 >0,  ~0:  Count  of buffers returned <0: Error Whether short dequeue is
	 success or failure is decided between app and driver.

     Definition at line 350 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_dump_t) (struct rte_rawdev *dev, FILE *f)
     Dump internal information

     Parameters
	 dev Raw device pointer
	 f A pointer to a file for output

     Returns
	 0 for success, !0 Error

     Definition at line 366 of file rte_rawdev_pmd.h.

   typedef  int(*  rawdev_get_attr_t)  (struct	rte_rawdev  *dev,   const   char
     *attr_name, uint64_t *attr_value)
     Get  an  attribute value from implementation. Attribute is an opaque handle
     agreed upon between application and PMD.

     Parameters
	 dev Raw device pointer
	 attr_name Opaque object representing an attribute in implementation.
	 attr_value [out] Opaque response to the attribute value. In case of er-
	 ror, this remains untouched. This is double pointer of void type.

     Returns
	 0 for success !0 Error; attr_value remains untouched in case of error.

     Definition at line 383 of file rte_rawdev_pmd.h.

   typedef  int(*  rawdev_set_attr_t)  (struct	rte_rawdev  *dev,   const   char
     *attr_name, const uint64_t attr_value)
     Set  an  attribute value. Attribute is an opaque handle agreed upon between
     application and PMD.

     Parameters
	 dev Raw device pointer
	 attr_name Opaque object representing an attribute in implementation.
	 attr_value Value of the attribute represented by attr_name

     Returns
	 0 for success !0 Error

     Definition at line 401 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_xstats_get_t) (const struct rte_rawdev *dev,  const  un-
     signed int ids[], uint64_t values[], unsigned int n)
     Retrieve  a  set  of  statistics from device. Note: Being a raw device, the
     stats are specific to the device being implemented thus represented as  xs-
     tats.

     Parameters
	 dev Raw device pointer
	 ids The stat ids to retrieve
	 values The returned stat values
	 n The number of id values and entries in the values array

     Returns
	 The number of stat values successfully filled into the values array

     Definition at line 421 of file rte_rawdev_pmd.h.

   typedef  int(* rawdev_xstats_reset_t) (struct rte_rawdev *dev, const uint32_t
     ids[], uint32_t nb_ids)
     Resets the statistic values in xstats for the device.

     Definition at line 427 of file rte_rawdev_pmd.h.

   typedef  int(*  rawdev_xstats_get_names_t)  (const  struct  rte_rawdev  *dev,
     struct rte_rawdev_xstats_name *xstats_names, unsigned int size)
     Get names of extended stats of an raw device

     Parameters
	 dev Raw device pointer
	 xstats_names Array of name values to be filled in
	 size Number of values in the xstats_names array

     Returns
	 When  size  >=  the  number  of stats, return the number of stat values
	 filled into the array. When size < the number of available  stats,  re-
	 turn  the  number of stats values, and do not fill in any data into xs-
	 tats_names.

     Definition at line 446 of file rte_rawdev_pmd.h.

   typedef  uint64_t(*	rawdev_xstats_get_by_name_t)  (const  struct  rte_rawdev
     *dev, const char *name, unsigned int *id)
     Get value of one stats and optionally return its id

     Parameters
	 dev Raw device pointer
	 name The name of the stat to retrieve
	 id  Pointer to an unsigned int where we store the stat-id. This pointer
	 may be null if the id is not required.

     Returns
	 The value of the stat, or (uint64_t)-1 if the stat is not found. If the
	 stat is not found, the id value will be returned as (unsigned)-1, if id
	 pointer is non-NULL

     Definition at line 465 of file rte_rawdev_pmd.h.

   typedef  int(*   rawdev_firmware_status_get_t)   (struct   rte_rawdev   *dev,
     rte_rawdev_obj_t status_info)
     Get firmware/device-stack status. Implementation to allocate buffer for re-
     turning information.

     Parameters
	 dev Raw device pointer
	 status_info void block containing device specific status information

     Returns
	 0 for success, !0 for failure, with undefined value in status_info

     Definition at line 481 of file rte_rawdev_pmd.h.

   typedef   int(*   rawdev_firmware_version_get_t)   (struct  rte_rawdev  *dev,
     rte_rawdev_obj_t version_info)
     Get firmware version information

     Parameters
	 dev Raw device pointer
	 version_info void pointer to version information returned by device

     Returns
	 0 for success, !0 for failure, with undefined value in version_info

     Definition at line 495 of file rte_rawdev_pmd.h.

   typedef    int(*    rawdev_firmware_load_t)	  (struct    rte_rawdev    *dev,
     rte_rawdev_obj_t firmware_buf)
     Load firmware from a buffer (DMA'able)

     Parameters
	 dev Raw device pointer
	 firmware_buf Pointer to firmware image

     Returns
	 >0, ~0: for successful load <0: for failure

     See also
	 Application  may  use	firmware_version_get for ascertaining successful
	 load

     Definition at line 512 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_firmware_unload_t) (struct rte_rawdev *dev)
     Unload firmware

     Parameters
	 dev Raw device pointer

     Returns
	 >0, ~0 for successful unloading <0 for failure in unloading

     Note: Application can use the firmware_status_get	or  firmware_version_get
     to get result of unload.

     Definition at line 527 of file rte_rawdev_pmd.h.

   typedef int(* rawdev_selftest_t) (uint16_t dev_id)
     Start rawdev selftest

     Returns
	 Return 0 on success

     Definition at line 535 of file rte_rawdev_pmd.h.

Function Documentation
   static  struct  rte_rawdev * rte_rawdev_pmd_get_named_dev (const char * name)
     [inline],	[static]
     The pool of rte_rawdev structures.  Get  the  rte_rawdev  structure  device
     pointer for the named device.

     Parameters
	 name device name to select the device structure.

     Returns

	 * The rte_rawdev structure pointer for the given device ID.

     Definition at line 87 of file rte_rawdev_pmd.h.

   static  struct rte_rawdev * rte_rawdev_pmd_get_dev (uint8_t dev_id) [inline],
     [static]
     Get the rte_rawdev structure device pointer for given device ID.

     Parameters
	 dev_id raw device index.

     Returns

	 * The rte_rawdev structure pointer for the given device ID.

     Definition at line 115 of file rte_rawdev_pmd.h.

   static unsigned rte_rawdev_pmd_is_valid_dev (uint8_t dev_id) [inline],  [sta-
     tic]
     Validate if the raw device index is a valid attached raw device.

     Parameters
	 dev_id raw device index.

     Returns

	 * If the device index is valid (1) or not (0).

     Definition at line 139 of file rte_rawdev_pmd.h.

   struct rte_rawdev  *  rte_rawdev_pmd_allocate  (const  char	*  name,  size_t
     dev_private_size, int socket_id)
     Allocates	a  new	rawdev slot for an raw device and returns the pointer to
     that slot for the driver to use.

     Parameters
	 name Unique identifier name for each device
	 dev_private_size  Size  of  private  data   memory   allocated   within
	 rte_rawdev  object.  Set to 0 to disable internal memory allocation and
	 allow for self-allocation.
	 socket_id Socket to allocate resources on.

     Returns

	 * Slot in the rte_dev_devices array for a new device;

   int rte_rawdev_pmd_release (struct rte_rawdev * rawdev)
     Release the specified rawdev device.

     Parameters
	 rawdev The rawdev pointer is the address of the rte_rawdev structure.

     Returns

	 * 0 on success, negative on error

   struct rte_rawdev * rte_rawdev_pmd_init (const char * name,	size_t	dev_pri-
     vate_size, int socket_id)
     Creates a new raw device and returns the pointer to that device.

     Parameters
	 name Pointer to a character array containing name of the device
	 dev_private_size Size of raw PMDs private data
	 socket_id Socket to allocate resources on.

     Returns

	 * Raw device pointer if device is successfully created.

	 * NULL if device cannot be created.

   int rte_rawdev_pmd_uninit (const char * name)
     Destroy a raw device

     Parameters
	 name Name of the device

     Returns

	 * 0 on success, negative on error

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026	     rte_rawdev_pmd.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rawdev_xstats_reset_t&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help