On 2/2/23 15:03, Thomas Monjalon wrote:
02/02/2023 12:55, Ivan Malov:
On Thu, 2 Feb 2023, Thomas Monjalon wrote:
OK we are progressing on this topic :)
Indeed we are.
02/02/2023 11:48, Ivan Malov:
I apologise, there was a typo in the previous mail: "PMD does
not need this API". Should read as "TESTPMD does not need it".
testpmd needs all ethdev API,
because its purpose is to test the whole all ethdev API.
Touché.
Maybe the use of this function is misplaced in testpmd.
It should be a specific command.
So.. indeed. A specific command which, as I said, is
invoked explicitly by the person operating testpmd.
By the way, what is the driver default if negotiation is not done?
The answer is in the question. It's the driver's default.
If the driver believes it shall NOT deliver metadata for
the sake of improved performance, default = all disabled.
If this delivery is a don't care to performance, then
the driver might want to enable everything by default.
This decision is made by a PMD maintainer, I take it.
I think it is better to have the same default for all drivers.
What others think?
Of course, it would be better since it would simplify
porting apps from one NIC to another.
The problem is that some NICs do not require negotiation
since corresponding data is always available.
If so, the same default should be to provide all Rx metadata
by default. However, it would decrease performance for NIC
NICs with default settings.
(Similar situation is with Rx checksum offload. Some NICs
always calculate Rx checksum and always provide results,
however, it is not a good reason to require it for all NICs.)