[dpdk-dev] [PATCH v10 06/11] net/failsafe: support flow API

Gaëtan Rivet gaetan.rivet at 6wind.com
Mon Jul 17 18:19:17 CEST 2017


On Mon, Jul 17, 2017 at 05:03:46PM +0100, Ferruh Yigit wrote:
> On 7/15/2017 6:57 PM, Gaetan Rivet wrote:
> > Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
> > Acked-by: Olga Shern <olgas at mellanox.com>
> 
> <...>
> 
> > +
> > +	flow = fs_flow_allocate(attr, patterns, actions);
> > +	FOREACH_SUBDEV_ST(sdev, i, dev, DEV_ACTIVE) {
> > +		flow->flows[i] = rte_flow_create(PORT_ID(sdev),
> > +				attr, patterns, actions, error);
> 
> Should SUB_ID(sdev) used here? And in related functions.
> flow->flows[SUB_ID(sdev)] = ...
> 

The SUB_ID(sdev) is the index in the sub_device array allocated in
private data for the fail-safe. It is also used for the sub_rte_flow in
the rte_flow (which sports an array of rte_flow pointers for each
sub_device).

PORT_ID(sdev) is the index in the rte_eth_devices array, meaning that
the rte_flow_create function is actually called using the public API on
the port.

This allows to trigger the additional operations usually done within the
ether API (storing the configuration in the eth_dev_data structure, some
side management), and following eventual changes automatically from the
fail-safe level.

> > +		if (flow->flows[i] == NULL) {
> > +			ERROR("Failed to create flow on sub_device %d",
> > +				i);
> > +			goto err;
> > +		}
> <...>
> 

-- 
Gaëtan Rivet
6WIND


More information about the dev mailing list