DPDK: Data Plane Development Kit

18.02.0-rc0
rte_devargs.h File Reference
#include <stdio.h>
#include <sys/queue.h>
#include <rte_bus.h>

Go to the source code of this file.

Data Structures

struct  rte_devargs

Enumerations

enum  rte_devtype

Functions

 TAILQ_HEAD (rte_devargs_list, rte_devargs)
int rte_eal_parse_devargs_str (const char *devargs_str, char **drvname, char **drvargs)
int rte_eal_devargs_parse (const char *dev, struct rte_devargs *da)
int rte_eal_devargs_insert (struct rte_devargs *da)
int rte_eal_devargs_add (enum rte_devtype devtype, const char *devargs_str)
int rte_eal_devargs_remove (const char *busname, const char *devname)
unsigned int rte_eal_devargs_type_count (enum rte_devtype devtype)
void rte_eal_devargs_dump (FILE *f)

Variables

struct rte_devargs_list devargs_list

Detailed Description

RTE devargs: list of devices and their user arguments

This file stores a list of devices and their arguments given by the user when a DPDK application is started. These devices can be PCI devices or virtual devices. These devices are stored at startup in a list of rte_devargs structures.

Definition in file rte_devargs.h.

Enumeration Type Documentation

Type of generic device

Definition at line 58 of file rte_devargs.h.

Function Documentation

TAILQ_HEAD ( rte_devargs_list  ,
rte_devargs   
)

user device double-linked queue type definition

int rte_eal_parse_devargs_str ( const char *  devargs_str,
char **  drvname,
char **  drvargs 
)

Parse a devargs string.

For PCI devices, the format of arguments string is "PCI_ADDR" or "PCI_ADDR,key=val,key2=val2,...". Examples: "08:00.1", "0000:5:00.0", "04:00.0,arg=val".

For virtual devices, the format of arguments string is "DRIVER_NAME*" or "DRIVER_NAME*,key=val,key2=val2,...". Examples: "net_ring", "net_ring0", "net_pmdAnything,arg=0:arg2=1".

The function parses the arguments string to get driver name and driver arguments.

Parameters
devargs_strThe arguments as given by the user.
drvnameThe pointer to the string to store parsed driver name.
drvargsThe pointer to the string to store parsed driver arguments.
Returns
  • 0 on success
  • A negative value on error
int rte_eal_devargs_parse ( const char *  dev,
struct rte_devargs da 
)

Parse a device string.

Verify that a bus is capable of handling the device passed in argument. Store which bus will handle the device, its name and the eventual device parameters.

Parameters
devThe device declaration string.
daThe devargs structure holding the device information.
Returns
  • 0 on success.
  • Negative errno on error.
int rte_eal_devargs_insert ( struct rte_devargs da)

Insert an rte_devargs in the global list.

Parameters
daThe devargs structure to insert.
Returns
  • 0 on success
  • Negative on error.
int rte_eal_devargs_add ( enum rte_devtype  devtype,
const char *  devargs_str 
)

Add a device to the user device list

For PCI devices, the format of arguments string is "PCI_ADDR" or "PCI_ADDR,key=val,key2=val2,...". Examples: "08:00.1", "0000:5:00.0", "04:00.0,arg=val".

For virtual devices, the format of arguments string is "DRIVER_NAME*" or "DRIVER_NAME*,key=val,key2=val2,...". Examples: "net_ring", "net_ring0", "net_pmdAnything,arg=0:arg2=1". The validity of the driver name is not checked by this function, it is done when probing the drivers.

Parameters
devtypeThe type of the device.
devargs_strThe arguments as given by the user.
Returns
  • 0 on success
  • A negative value on error
int rte_eal_devargs_remove ( const char *  busname,
const char *  devname 
)

Remove a device from the user device list. Its resources are freed. If the devargs cannot be found, nothing happens.

Parameters
busnamebus name of the devargs to remove.
devnamedevice name of the devargs to remove.
Returns
0 on success. <0 on error. >0 if the devargs was not within the user device list.
unsigned int rte_eal_devargs_type_count ( enum rte_devtype  devtype)

Count the number of user devices of a specified type

Parameters
devtypeThe type of the devices to counted.
Returns
The number of devices.
void rte_eal_devargs_dump ( FILE *  f)

This function dumps the list of user device and their arguments.

Parameters
fA pointer to a file for output
Examples:
examples/bond/main.c.

Variable Documentation

struct rte_devargs_list devargs_list

Global list of user devices