DPDK  17.11.10
Data Structures | Macros | Typedefs | Functions
rte_kvargs.h File Reference

Go to the source code of this file.

Data Structures

struct  rte_kvargs_pair
 
struct  rte_kvargs
 

Macros

#define RTE_KVARGS_MAX   32
 
#define RTE_KVARGS_PAIRS_DELIM   ","
 
#define RTE_KVARGS_KV_DELIM   "="
 

Typedefs

typedef int(* arg_handler_t) (const char *key, const char *value, void *opaque)
 

Functions

struct rte_kvargsrte_kvargs_parse (const char *args, const char *const valid_keys[])
 
void rte_kvargs_free (struct rte_kvargs *kvlist)
 
int rte_kvargs_process (const struct rte_kvargs *kvlist, const char *key_match, arg_handler_t handler, void *opaque_arg)
 
unsigned rte_kvargs_count (const struct rte_kvargs *kvlist, const char *key_match)
 

Detailed Description

RTE Argument parsing

This module can be used to parse arguments whose format is key1=value1,key2=value2,key3=value3,...

The same key can appear several times with the same or a different value. Indeed, the arguments are stored as a list of key/values associations and not as a dictionary.

This file provides some helpers that are especially used by virtual ethernet devices at initialization for arguments parsing.

Definition in file rte_kvargs.h.

Macro Definition Documentation

#define RTE_KVARGS_MAX   32

Maximum number of key/value associations

Definition at line 58 of file rte_kvargs.h.

#define RTE_KVARGS_PAIRS_DELIM   ","

separator character used between each pair

Definition at line 61 of file rte_kvargs.h.

#define RTE_KVARGS_KV_DELIM   "="

separator character used between key and value

Definition at line 64 of file rte_kvargs.h.

Typedef Documentation

typedef int(* arg_handler_t) (const char *key, const char *value, void *opaque)

Type of callback function used by rte_kvargs_process()

Definition at line 67 of file rte_kvargs.h.

Function Documentation

struct rte_kvargs* rte_kvargs_parse ( const char *  args,
const char *const  valid_keys[] 
)

Allocate a rte_kvargs and store key/value associations from a string

The function allocates and fills a rte_kvargs structure from a given string whose format is key1=value1,key2=value2,...

The structure can be freed with rte_kvargs_free().

Parameters
argsThe input string containing the key/value associations
valid_keysA list of valid keys (table of const char *, the last must be NULL). This argument is ignored if NULL
Returns
  • A pointer to an allocated rte_kvargs structure on success
  • NULL on error
void rte_kvargs_free ( struct rte_kvargs kvlist)

Free a rte_kvargs structure

Free a rte_kvargs structure previously allocated with rte_kvargs_parse().

Parameters
kvlistThe rte_kvargs structure. No error if NULL.
int rte_kvargs_process ( const struct rte_kvargs kvlist,
const char *  key_match,
arg_handler_t  handler,
void *  opaque_arg 
)

Call a handler function for each key/value matching the key

For each key/value association that matches the given key, calls the handler function with the for a given arg_name passing the value on the dictionary for that key and a given extra argument.

Parameters
kvlistThe rte_kvargs structure. No error if NULL.
key_matchThe key on which the handler should be called, or NULL to process handler on all associations
handlerThe function to call for each matching key
opaque_argA pointer passed unchanged to the handler
Returns
  • 0 on success
  • Negative on error
unsigned rte_kvargs_count ( const struct rte_kvargs kvlist,
const char *  key_match 
)

Count the number of associations matching the given key

Parameters
kvlistThe rte_kvargs structure
key_matchThe key that should match, or NULL to count all associations
Returns
The number of entries