[dpdk-dev] [PATCH v5 2/6] net/mlx5: support basic flow items and actions
Adrien Mazarguil
adrien.mazarguil at 6wind.com
Wed Jan 4 19:42:22 CET 2017
Hi Ferruh,
On Wed, Jan 04, 2017 at 05:49:46PM +0000, Ferruh Yigit wrote:
> Hi Nelio,
>
> A quick question.
I'll reply since it's related to the API.
> On 12/29/2016 3:15 PM, Nelio Laranjeiro wrote:
> > Introduce initial software for rte_flow rules.
> >
> > VLAN, VXLAN are still not supported.
> >
> > Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>
> > Acked-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
>
> <...>
>
> > +static int
> > +priv_flow_validate(struct priv *priv,
> > + const struct rte_flow_attr *attr,
> > + const struct rte_flow_item items[],
> > + const struct rte_flow_action actions[],
> > + struct rte_flow_error *error,
> > + struct mlx5_flow *flow)
> > +{
> > + const struct mlx5_flow_items *cur_item = mlx5_flow_items;
>
> <...>
>
> > + for (; items->type != RTE_FLOW_ITEM_TYPE_END; ++items) {
> <...>
> > + }
> > + for (; actions->type != RTE_FLOW_ACTION_TYPE_END; ++actions) {
> <...>
> > + }
>
> Is it guarantied in somewhere that items or actions terminated with
> TYPE_END?
Yes, since it's now the only way to terminate items/actions lists [1][2].
There used to be a "max" value in the original draft but it seemed redundant
and proved annoying to use, and was therefore dropped.
END items/actions behave like a NUL terminator for C strings. They are
likewise defined with value 0 for convenience.
> And these fields are direct inputs from user.
> Is there a way to verify user provided values are with TYPE_END terminated?
No, applications must check for its presence (they normally add it
themselves) before feeding these lists to PMDs. I think that's safe enough.
Note the testpmd flow command does not allow entering a flow rule without
"end" tokens in both lists, there is no way around this restriction.
[1] http://dpdk.org/doc/guides/prog_guide/rte_flow.html#matching-pattern
[2] http://dpdk.org/doc/guides/prog_guide/rte_flow.html#actions
--
Adrien Mazarguil
6WIND
More information about the dev
mailing list