> -----Original Message----- > From: Wu, Jingjing > Sent: Sunday, March 20, 2016 4:57 PM > To: 'Thomas Monjalon' <thomas.monjalon at 6wind.com> > Cc: dev at dpdk.org; Richardson, Bruce <bruce.richardson at intel.com> > Subject: RE: [dpdk-dev] [PATCH v4 07/12] librte_ether: extend flow director > struct > > Hi, Thomas > > > > -----Original Message----- > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com] > > Sent: Friday, March 18, 2016 7:44 PM > > To: Wu, Jingjing <jingjing.wu at intel.com> > > Cc: dev at dpdk.org; Richardson, Bruce <bruce.richardson at intel.com> > > Subject: Re: [dpdk-dev] [PATCH v4 07/12] librte_ether: extend flow director > > struct > > > > Hi Jingjing, > > > > 2016-03-10 11:25, Jingjing Wu: > > > This patch changed rte_eth_fdir_flow from union to struct to > > > support more packets formats, for example, Vxlan and GRE tunnel > > > packets with IP inner frame. > > > > I think we need a lot more explanations about how it should work. > > From this point we should collect some acknowledgements from the > > maintainers of other drivers having this kind of flow steering need. > > Maybe that a better API, more generic, is possible. > > > > > This patch also add new RTE_FDIR_TUNNEL_TYPE_GRE enum. > > > > OK to add GRE to the existing API. > > > > > Signed-off-by: Jingjing Wu <jingjing.wu at intel.com> > > > Acked-by: Helin Zhang <helin.zhang at intel.com> > > [...] > > > /** > > > - * An union contains the inputs for all types of flow > > > + * A struct contains the inputs for all types of flow > > > */ > > > -union rte_eth_fdir_flow { > > > - struct rte_eth_l2_flow l2_flow; > > > - struct rte_eth_udpv4_flow udp4_flow; > > > - struct rte_eth_tcpv4_flow tcp4_flow; > > > - struct rte_eth_sctpv4_flow sctp4_flow; > > > - struct rte_eth_ipv4_flow ip4_flow; > > > - struct rte_eth_udpv6_flow udp6_flow; > > > - struct rte_eth_tcpv6_flow tcp6_flow; > > > - struct rte_eth_sctpv6_flow sctp6_flow; > > > - struct rte_eth_ipv6_flow ipv6_flow; > > > +struct rte_eth_fdir_flow { > > > + union { > > > + struct rte_eth_l2_flow l2_flow; > > > + struct rte_eth_udpv4_flow udp4_flow; > > > + struct rte_eth_tcpv4_flow tcp4_flow; > > > + struct rte_eth_sctpv4_flow sctp4_flow; > > > + struct rte_eth_ipv4_flow ip4_flow; > > > + struct rte_eth_udpv6_flow udp6_flow; > > > + struct rte_eth_tcpv6_flow tcp6_flow; > > > + struct rte_eth_sctpv6_flow sctp6_flow; > > > + struct rte_eth_ipv6_flow ipv6_flow; > > > + }; > > > struct rte_eth_mac_vlan_flow mac_vlan_flow; > > > struct rte_eth_tunnel_flow tunnel_flow; > > > }; > > > > Please explain somewhere how to use this API change in order to have more > > discussions with other maintainers. > > > > I'm sorry to comment this change only now. I took time to realize that > > we need more consensus about the filtering API to make it usable by > > more drivers. > > > > > For the 16.04 release, I suggest to remove this change from the series. > > Thanks for your understanding. > OK. Understand that we need to comments more on the change. And as you know, > the > whole patch set actually contains two changes on filter API: One the change > is in this patch, > which adds tunnel filtering using flow director, another one is the patch > "[PATCH v4,05/12] > i40e: extend flow director to filter by IP " > (http://www.dpdk.org/dev/patchwork/patch/11358/ ). If you are OK to the > latter one, I will > send another version which just contains the change and drops tunnel > supporting in 16.04 > release. Correct the mistake: The other change is "[v4,01/12] ethdev: extend flow director for input selection" http://www.dpdk.org/dev/patchwork/patch/11354/.
> And let's discuss more on the filtering API in future. > > Thanks > Jingjing