Re: [PATCH v3 1/3] fm10k: enable FTAG based forwarding
From: Thomas Monjalon <hidden>
Date: 2016-02-26 09:07:52
2016-02-26 04:31, Wang, Xiao W:
From: Richardson, Brucequoted
On Thu, Feb 25, 2016 at 03:45:45PM +0000, Chen, Jing D wrote:quoted
From: Richardson, Brucequoted
On Thu, Feb 25, 2016 at 10:04:02AM +0000, Chen, Jing D wrote:quoted
This feature is trying to use FTAG (a unique tech in fm10k) instead of mac/vlan to forward packets. App need a way to tell PMD driver that which forwarding style it would like to use.Why not just specify this in the port configuration at setup time?Please educate me. I think the port configuration flags are also common to all PMD Drivers. Is it possible to add a flag like "RTE_USE_FTAG"and pass to PMD driver?quoted
They are. For something PMD specific, like FTAG, it's always a challenge, and I don't know off the top of my head if there is a simple option. However, given the choice between an mbuf flag and a port config flag, I'd always choose the former. Other alternatives would be to have a fm10k specific API in the fm10k driver alone. I'll let Thomas as ethdev maintainer comment if he has other suggestions as to how to handle this case. I suspect this won't be the first device-specific piece of functionality we need to deal with. /BruceWhatever method we choose, we have to find a way for the user to express his need for FTAG, it maybe a build time config option, or a port config flag (no such flag now), or a fast path flag in mbuf (no such flag now) etc. For the customer Topsec's use case, they use FTAG for all the TX packets, so all the above methods (per build config, per port config, per mbuf config) can meet their need. Since the pmd frame work is for common, it's hard to add new fields only for one specific NIC, so I add a build time config and make an introduction in the doc. Thanks for the discussion, Thomas, do you have any suggestions?
I don't understand why you say this feature is specific to fm10k. Can we imagine another NIC having this capability? I think it must be an port configuration, as Bruce suggested. What about a field in struct rte_eth_conf?