DPDK  19.08.0-rc0
Data Structures | Macros | Functions
rte_flow_driver.h File Reference
#include <stdint.h>
#include "rte_ethdev.h"
#include "rte_flow.h"

Go to the source code of this file.

Data Structures

struct  rte_flow_ops
 
struct  rte_flow_expand_node
 
struct  rte_flow_expand_rss
 

Macros

#define RTE_FLOW_EXPAND_RSS_NEXT(...)
 

Functions

const struct rte_flow_opsrte_flow_ops_get (uint16_t port_id, struct rte_flow_error *error)
 
int __rte_experimental rte_flow_expand_rss (struct rte_flow_expand_rss *buf, size_t size, const struct rte_flow_item *pattern, uint64_t types, const struct rte_flow_expand_node graph[], int graph_root_index)
 

Detailed Description

RTE generic flow API (driver side)

This file provides implementation helpers for internal use by PMDs, they are not intended to be exposed to applications and are not subject to ABI versioning.

Definition in file rte_flow_driver.h.

Macro Definition Documentation

◆ RTE_FLOW_EXPAND_RSS_NEXT

#define RTE_FLOW_EXPAND_RSS_NEXT (   ...)
Value:
(const int []){ \
__VA_ARGS__, 0, \
}

Helper macro to build input graph for rte_flow_expand_rss().

Definition at line 118 of file rte_flow_driver.h.

Function Documentation

◆ rte_flow_ops_get()

const struct rte_flow_ops* rte_flow_ops_get ( uint16_t  port_id,
struct rte_flow_error error 
)

Get generic flow operations structure from a port.

Parameters
port_idPort identifier to query.
[out]errorPointer to flow error structure.
Returns
The flow operations structure associated with port_id, NULL in case of error, in which case rte_errno is set and the error structure contains additional details.

◆ rte_flow_expand_rss()

int __rte_experimental rte_flow_expand_rss ( struct rte_flow_expand_rss buf,
size_t  size,
const struct rte_flow_item pattern,
uint64_t  types,
const struct rte_flow_expand_node  graph[],
int  graph_root_index 
)

Expand RSS flows into several possible flows according to the RSS hash fields requested and the driver capabilities.

EXPERIMENTAL: this API may change without prior notice

Parameters
[out]bufBuffer to store the result expansion.
[in]sizeBuffer size in bytes. If 0, buf can be NULL.
[in]patternUser flow pattern.
[in]typesRSS types to expand (see ETH_RSS_* definitions).
[in]graphInput graph to expand pattern according to types.
[in]graph_root_indexIndex of root node in graph, typically 0.
Returns
A positive value representing the size of buf in bytes regardless of size on success, a negative errno value otherwise and rte_errno is set, the following errors are defined:

-E2BIG: graph-depth graph is too deep.