[dpdk-dev] [PATCH v4 07/12] librte_ether: extend flow director struct

Wu, Jingjing jingjing.wu at intel.com
Sun Mar 20 10:02:51 CET 2016



> -----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


More information about the dev mailing list