* Re: [dpdk-dev] [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute [not found] ` <221d1783-58c0-5cb4-eb0d-c6ff5648636f@nvidia.com> @ 2021-08-24 15:47 ` Ilya Maximets 2021-08-24 16:04 ` Eli Britstein 0 siblings, 1 reply; 3+ messages in thread From: Ilya Maximets @ 2021-08-24 15:47 UTC (permalink / raw) To: Eli Britstein, Finn, Emma, dev, Ilya Maximets Cc: Stokes, Ian, Sriharsha Basavapatna, Gaetan Rivet, Majd Dibbiny, Salem Sol, Andrew Rybchenko, Ori Kam, dev On 8/24/21 5:25 PM, Eli Britstein wrote: > > On 8/24/2021 6:08 PM, Finn, Emma wrote: >> External email: Use caution opening links or attachments >> >> >> -----Original Message----- >> From: Eli Britstein <elibr@nvidia.com> >> Sent: Monday 16 August 2021 14:55 >> To: dev@openvswitch.org; Ilya Maximets <i.maximets@ovn.org> >> Cc: Finn, Emma <emma.finn@intel.com>; Stokes, Ian <ian.stokes@intel.com>; Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>; Gaetan Rivet <gaetanr@nvidia.com>; Majd Dibbiny <majd@nvidia.com>; Eli Britstein <elibr@nvidia.com>; Salem Sol <salems@nvidia.com> >> Subject: [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute >> >> DPDK 20.11 introduced an ability to specify existance/non-existance of VLAN tag by [1]. >> Use this attribute. >> >> [1]: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items") >> >> Signed-off-by: Eli Britstein <elibr@nvidia.com> >> Reviewed-by: Salem Sol <salems@nvidia.com> >> >> Hi Eli, >> >> I tested this but currently we don't have support in the i40e pmd for the has_vlan match attribute and with these patches it is breaking offload for VLAN packets on Intel devices. > > Hi Emma, > > Thanks for testing. > > Is adding such support in your plans? > > How do you suggest to proceed? It is needed in order to fix OVS bug. > > Thanks, > > Eli The "Table 1.2 rte_flow items availability in networking drivers" here: https://doc.dpdk.org/guides/nics/overview.html says that both ixgbe and i40e has a full support for 'vlan' and 'eth' items. Is it a bug? Should it be 'partial' instead? In general, this sounds like a big limitation of rte_flow API. I mean the fact that there is no way to get what is implemented by a particular driver and what is not implemented in runtime. Someone should, probably, work on adding this kind of API to DPDK. Otherwise, we will stuck with inability to use certain actions/matches unless all the drivers supports them (which is also hard to check taking documentation issues into account). If I missed it and the API actually exists, we should definitely start using it. CC: dpdk-dev and rte_flow maintainers. Thoughts? Best regards, Ilya Maximets. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute 2021-08-24 15:47 ` [dpdk-dev] [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute Ilya Maximets @ 2021-08-24 16:04 ` Eli Britstein 2021-08-24 16:20 ` Ilya Maximets 0 siblings, 1 reply; 3+ messages in thread From: Eli Britstein @ 2021-08-24 16:04 UTC (permalink / raw) To: Ilya Maximets, Finn, Emma, dev Cc: Stokes, Ian, Sriharsha Basavapatna, Gaetan Rivet, Majd Dibbiny, Salem Sol, Andrew Rybchenko, Ori Kam, dev On 8/24/2021 6:47 PM, Ilya Maximets wrote: > External email: Use caution opening links or attachments > > > On 8/24/21 5:25 PM, Eli Britstein wrote: >> On 8/24/2021 6:08 PM, Finn, Emma wrote: >>> External email: Use caution opening links or attachments >>> >>> >>> -----Original Message----- >>> From: Eli Britstein <elibr@nvidia.com> >>> Sent: Monday 16 August 2021 14:55 >>> To: dev@openvswitch.org; Ilya Maximets <i.maximets@ovn.org> >>> Cc: Finn, Emma <emma.finn@intel.com>; Stokes, Ian <ian.stokes@intel.com>; Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>; Gaetan Rivet <gaetanr@nvidia.com>; Majd Dibbiny <majd@nvidia.com>; Eli Britstein <elibr@nvidia.com>; Salem Sol <salems@nvidia.com> >>> Subject: [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute >>> >>> DPDK 20.11 introduced an ability to specify existance/non-existance of VLAN tag by [1]. >>> Use this attribute. >>> >>> [1]: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items") >>> >>> Signed-off-by: Eli Britstein <elibr@nvidia.com> >>> Reviewed-by: Salem Sol <salems@nvidia.com> >>> >>> Hi Eli, >>> >>> I tested this but currently we don't have support in the i40e pmd for the has_vlan match attribute and with these patches it is breaking offload for VLAN packets on Intel devices. >> Hi Emma, >> >> Thanks for testing. >> >> Is adding such support in your plans? >> >> How do you suggest to proceed? It is needed in order to fix OVS bug. >> >> Thanks, >> >> Eli > The "Table 1.2 rte_flow items availability in networking drivers" > here: https://doc.dpdk.org/guides/nics/overview.html > says that both ixgbe and i40e has a full support for 'vlan' and > 'eth' items. Is it a bug? Should it be 'partial' instead? > > In general, this sounds like a big limitation of rte_flow API. > I mean the fact that there is no way to get what is implemented by > a particular driver and what is not implemented in runtime. > Someone should, probably, work on adding this kind of API to DPDK. > Otherwise, we will stuck with inability to use certain actions/matches > unless all the drivers supports them (which is also hard to check > taking documentation issues into account). If I missed it and the > API actually exists, we should definitely start using it. > > CC: dpdk-dev and rte_flow maintainers. > > Thoughts? There is such an API - rte_flow_validate(). However, in OVS, as each flow is independent and can have different matches and actions, we just call rte_flow_create(). The PMD (at least mlx5) first internally validates it (as if rte_flow_validate() is called), and bail out with a failure in case validate fails. Can you suggest an effective way to utilize it in OVS? In theory, if the API exists in rte_flow, OVS should not care if all PMDs support it or not. In practice, the "has_vlan" field was introduced only in 20.11, and apparently Intel has not adapted i40e PMD, so it breaks their offloads. I suspected this so I've added Emma and Ian to review it. I don't know i40e HW capabilities, but at least from PMD point of view, it can be silently ignored until a proper support is added. > > Best regards, Ilya Maximets. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute 2021-08-24 16:04 ` Eli Britstein @ 2021-08-24 16:20 ` Ilya Maximets 0 siblings, 0 replies; 3+ messages in thread From: Ilya Maximets @ 2021-08-24 16:20 UTC (permalink / raw) To: Eli Britstein, Ilya Maximets, Finn, Emma, dev Cc: Stokes, Ian, Sriharsha Basavapatna, Gaetan Rivet, Majd Dibbiny, Salem Sol, Andrew Rybchenko, Ori Kam, dev On 8/24/21 6:04 PM, Eli Britstein wrote: > > On 8/24/2021 6:47 PM, Ilya Maximets wrote: >> External email: Use caution opening links or attachments >> >> >> On 8/24/21 5:25 PM, Eli Britstein wrote: >>> On 8/24/2021 6:08 PM, Finn, Emma wrote: >>>> External email: Use caution opening links or attachments >>>> >>>> >>>> -----Original Message----- >>>> From: Eli Britstein <elibr@nvidia.com> >>>> Sent: Monday 16 August 2021 14:55 >>>> To: dev@openvswitch.org; Ilya Maximets <i.maximets@ovn.org> >>>> Cc: Finn, Emma <emma.finn@intel.com>; Stokes, Ian <ian.stokes@intel.com>; Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>; Gaetan Rivet <gaetanr@nvidia.com>; Majd Dibbiny <majd@nvidia.com>; Eli Britstein <elibr@nvidia.com>; Salem Sol <salems@nvidia.com> >>>> Subject: [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute >>>> >>>> DPDK 20.11 introduced an ability to specify existance/non-existance of VLAN tag by [1]. >>>> Use this attribute. >>>> >>>> [1]: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items") >>>> >>>> Signed-off-by: Eli Britstein <elibr@nvidia.com> >>>> Reviewed-by: Salem Sol <salems@nvidia.com> >>>> >>>> Hi Eli, >>>> >>>> I tested this but currently we don't have support in the i40e pmd for the has_vlan match attribute and with these patches it is breaking offload for VLAN packets on Intel devices. >>> Hi Emma, >>> >>> Thanks for testing. >>> >>> Is adding such support in your plans? >>> >>> How do you suggest to proceed? It is needed in order to fix OVS bug. >>> >>> Thanks, >>> >>> Eli >> The "Table 1.2 rte_flow items availability in networking drivers" >> here: https://doc.dpdk.org/guides/nics/overview.html >> says that both ixgbe and i40e has a full support for 'vlan' and >> 'eth' items. Is it a bug? Should it be 'partial' instead? >> >> In general, this sounds like a big limitation of rte_flow API. >> I mean the fact that there is no way to get what is implemented by >> a particular driver and what is not implemented in runtime. >> Someone should, probably, work on adding this kind of API to DPDK. >> Otherwise, we will stuck with inability to use certain actions/matches >> unless all the drivers supports them (which is also hard to check >> taking documentation issues into account). If I missed it and the >> API actually exists, we should definitely start using it. >> >> CC: dpdk-dev and rte_flow maintainers. >> >> Thoughts? > > There is such an API - rte_flow_validate(). > > However, in OVS, as each flow is independent and can have different matches and actions, we just call rte_flow_create(). The PMD (at least mlx5) first internally validates it (as if rte_flow_validate() is called), and bail out with a failure in case validate fails. > > Can you suggest an effective way to utilize it in OVS? This one is hard to use. And I guess, it's hard to determine what exactly is not supported as some things can be only supported in certain combinations or otherwise not supported in certain combinations. So, rte_flow_validate() doesn't seem to be suitable for checking particular features and alternating the flow construction based on that. If we had clear yes/no flags for all features that could be easily probed/verified or otherwise retrived from the driver, that would be better. But it seems to be a problem for current rte_flow implementations in actual drivers. > > In theory, if the API exists in rte_flow, OVS should not care if all PMDs support it or not. > > In practice, the "has_vlan" field was introduced only in 20.11, and apparently Intel has not adapted i40e PMD, so it breaks their offloads. I suspected this so I've added Emma and Ian to review it. > > I don't know i40e HW capabilities, but at least from PMD point of view, it can be silently ignored until a proper support is added. > >> >> Best regards, Ilya Maximets. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-08-24 16:20 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20210816135433.1922261-1-elibr@nvidia.com> [not found] ` <SN6PR11MB316556D38F83BA754D38C0BDEAC59@SN6PR11MB3165.namprd11.prod.outlook.com> [not found] ` <221d1783-58c0-5cb4-eb0d-c6ff5648636f@nvidia.com> 2021-08-24 15:47 ` [dpdk-dev] [PATCH V3 1/2] netdev-offload-dpdk: Use has_vlan match attribute Ilya Maximets 2021-08-24 16:04 ` Eli Britstein 2021-08-24 16:20 ` Ilya Maximets
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).