17/02/2021 11:37, Ferruh Yigit:
On 2/17/2021 5:57 AM, Asaf Penso wrote:
From: Ferruh Yigit <ferruh.yi...@intel.com>
On 2/7/2021 10:52 AM, Asaf Penso wrote:
In http://doc.dpdk.org/guides/nics/overview.html, table 1.1 lists
all
supported features.
It has a single line for "Flow API" that refers to rte_flow support.
rte_flow is composed of many items and actions that are not expressed
in this single line.
The following new tables are suggested:
1. rte_flow items
2. rte_flow actions
Hi Asaf,
I understand the intention, but I am not sure about this.
The Flow API does not provide a capability or feature list in the API
level, by
design, because it is very hard to do it correct, but this patch
tries to do it in the
documentation level.
This will be missing lots of details, the flow items and actions
documented as
supported may and may not be supported based on the details.
Which missing details are you referring to? All flow items and all
actions are listed.
Patterns are complex, any rule can be valid or invalid based on provided
pattern
values (details), also any rule can be valid or invalid based on
previous rules
or configuration.
In practice this information is much more useful if it is provided by
API, but
we are not able to do it because of its complex nature, it should be
same level
of complexity to provide this information by documentation.
It will be very hard to read this table (when it becomes full), also
will be very hard
to maintain.
As part of any documentation change in rte_flow the developer would
also need to update this table.
Why would it be very hard to maintain?
>
Ahh, that sound so simple when you say like this :) In practice even
keeping
feature list requiring lots of effort, developers are
missing/neglecting/ignoring updating documentation when updating the
code.
And for this case is partially correct table a useful information? If
this is
not completely correct people won't rely on it and it will become just
useless.
So this feature should come with an automated way to detect if a rule
supported
but not documented, or even better this table should be generated from
code
automatically.
Let me start with a question, who do you think will be your consumer?
Who will benefit from this table and how?
We get a lot of questions from users regarding rte_flow support and we
do not have a single place with proper documentation.
I can ask the same about the overall feature table, right? There is a
value to document the support.
Let's discuss the feature table separately, I think that is a valid
question.
For the rte_flow, who is asking questions? End user, or application
developer?
So is this intended to be a marketing documentation or technical
documentation?
And what is the nature of the questions, if it is related to the
rte_flow, there
is already a proper documentation for it:
https://doc.dpdk.org/guides/prog_guide/rte_flow.html
If this question is if any specific rule supported by a specific PMD,
right now
only valid way to say this that I am aware of is, run
'rte_flow_validate()' and see.
Not sure if we can document this properly.
I think in general we are missing a big disclaimer
on top of this overview page:
Each feature may have some hardware limitations.
Then there is a need, both for application developers and end-users,
to know which feature can be supported by a PMD,
or which PMD can support a feature.
Yes there are complex limitations with hardware offloads in general.
Yes it would be nice to report some tested capabilities with a CI.
But it does not mean we should not try to document it in my opinion.